diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-05-06 11:16:35 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-05-06 11:16:35 +0100 |
commit | 38003aee196a96edccd4d64471beb1b67e9b2b17 (patch) | |
tree | e6cf9cb5107682511ffff265828240e0e1d81cb9 | |
parent | 233353ec93e4541fa7ab1c53a922a6d5c2bfce7a (diff) | |
parent | 00c8fa9ffeee7458e5ed62c962faf638156c18da (diff) |
Merge remote-tracking branch 'remotes/rth/tags/tcg-next-20150505' into staging
size reduction merge
# gpg: Signature made Wed May 6 00:21:43 2015 BST using RSA key ID 4DD0279B
# gpg: Good signature from "Richard Henderson <rth7680@gmail.com>"
# gpg: aka "Richard Henderson <rth@redhat.com>"
# gpg: aka "Richard Henderson <rth@twiddle.net>"
* remotes/rth/tags/tcg-next-20150505:
tcg: optimise memory layout of TCGTemp
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | tcg/tcg.h | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -417,20 +417,19 @@ static inline TCGCond tcg_high_cond(TCGCond c) } } -#define TEMP_VAL_DEAD 0 -#define TEMP_VAL_REG 1 -#define TEMP_VAL_MEM 2 -#define TEMP_VAL_CONST 3 +typedef enum TCGTempVal { + TEMP_VAL_DEAD, + TEMP_VAL_REG, + TEMP_VAL_MEM, + TEMP_VAL_CONST, +} TCGTempVal; -/* XXX: optimize memory layout */ typedef struct TCGTemp { - TCGType base_type; - TCGType type; - int val_type; - int reg; - tcg_target_long val; - int mem_reg; - intptr_t mem_offset; + unsigned int reg:8; + unsigned int mem_reg:8; + TCGTempVal val_type:8; + TCGType base_type:8; + TCGType type:8; unsigned int fixed_reg:1; unsigned int mem_coherent:1; unsigned int mem_allocated:1; @@ -438,6 +437,9 @@ typedef struct TCGTemp { basic blocks. Otherwise, it is not preserved across basic blocks. */ unsigned int temp_allocated:1; /* never used for code gen */ + + tcg_target_long val; + intptr_t mem_offset; const char *name; } TCGTemp; |