提交 38003aee 编写于 作者: P Peter Maydell

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: NPeter Maydell <peter.maydell@linaro.org>
...@@ -417,20 +417,19 @@ static inline TCGCond tcg_high_cond(TCGCond c) ...@@ -417,20 +417,19 @@ static inline TCGCond tcg_high_cond(TCGCond c)
} }
} }
#define TEMP_VAL_DEAD 0 typedef enum TCGTempVal {
#define TEMP_VAL_REG 1 TEMP_VAL_DEAD,
#define TEMP_VAL_MEM 2 TEMP_VAL_REG,
#define TEMP_VAL_CONST 3 TEMP_VAL_MEM,
TEMP_VAL_CONST,
} TCGTempVal;
/* XXX: optimize memory layout */
typedef struct TCGTemp { typedef struct TCGTemp {
TCGType base_type; unsigned int reg:8;
TCGType type; unsigned int mem_reg:8;
int val_type; TCGTempVal val_type:8;
int reg; TCGType base_type:8;
tcg_target_long val; TCGType type:8;
int mem_reg;
intptr_t mem_offset;
unsigned int fixed_reg:1; unsigned int fixed_reg:1;
unsigned int mem_coherent:1; unsigned int mem_coherent:1;
unsigned int mem_allocated:1; unsigned int mem_allocated:1;
...@@ -438,6 +437,9 @@ typedef struct TCGTemp { ...@@ -438,6 +437,9 @@ typedef struct TCGTemp {
basic blocks. Otherwise, it is not basic blocks. Otherwise, it is not
preserved across basic blocks. */ preserved across basic blocks. */
unsigned int temp_allocated:1; /* never used for code gen */ unsigned int temp_allocated:1; /* never used for code gen */
tcg_target_long val;
intptr_t mem_offset;
const char *name; const char *name;
} TCGTemp; } TCGTemp;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册