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) | |
| download | focaccia-qemu-38003aee196a96edccd4d64471beb1b67e9b2b17.tar.gz focaccia-qemu-38003aee196a96edccd4d64471beb1b67e9b2b17.zip | |
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
diff --git a/tcg/tcg.h b/tcg/tcg.h index 3d004ba276..fbb3daf14c 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -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; |