mirror of https://github.com/xemu-project/xemu.git
tcg: More use of TCGReg where appropriate
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
c807402320
commit
b663866231
26
tcg/tcg.c
26
tcg/tcg.c
|
@ -448,7 +448,7 @@ static inline TCGTemp *tcg_global_alloc(TCGContext *s)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tcg_global_reg_new_internal(TCGContext *s, TCGType type,
|
static int tcg_global_reg_new_internal(TCGContext *s, TCGType type,
|
||||||
int reg, const char *name)
|
TCGReg reg, const char *name)
|
||||||
{
|
{
|
||||||
TCGTemp *ts;
|
TCGTemp *ts;
|
||||||
|
|
||||||
|
@ -467,7 +467,7 @@ static int tcg_global_reg_new_internal(TCGContext *s, TCGType type,
|
||||||
return temp_idx(s, ts);
|
return temp_idx(s, ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tcg_set_frame(TCGContext *s, int reg, intptr_t start, intptr_t size)
|
void tcg_set_frame(TCGContext *s, TCGReg reg, intptr_t start, intptr_t size)
|
||||||
{
|
{
|
||||||
int idx;
|
int idx;
|
||||||
s->frame_start = start;
|
s->frame_start = start;
|
||||||
|
@ -476,7 +476,7 @@ void tcg_set_frame(TCGContext *s, int reg, intptr_t start, intptr_t size)
|
||||||
s->frame_temp = &s->temps[idx];
|
s->frame_temp = &s->temps[idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
TCGv_i32 tcg_global_reg_new_i32(int reg, const char *name)
|
TCGv_i32 tcg_global_reg_new_i32(TCGReg reg, const char *name)
|
||||||
{
|
{
|
||||||
TCGContext *s = &tcg_ctx;
|
TCGContext *s = &tcg_ctx;
|
||||||
int idx;
|
int idx;
|
||||||
|
@ -488,7 +488,7 @@ TCGv_i32 tcg_global_reg_new_i32(int reg, const char *name)
|
||||||
return MAKE_TCGV_I32(idx);
|
return MAKE_TCGV_I32(idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
TCGv_i64 tcg_global_reg_new_i64(int reg, const char *name)
|
TCGv_i64 tcg_global_reg_new_i64(TCGReg reg, const char *name)
|
||||||
{
|
{
|
||||||
TCGContext *s = &tcg_ctx;
|
TCGContext *s = &tcg_ctx;
|
||||||
int idx;
|
int idx;
|
||||||
|
@ -1609,7 +1609,8 @@ static void dump_regs(TCGContext *s)
|
||||||
|
|
||||||
static void check_regs(TCGContext *s)
|
static void check_regs(TCGContext *s)
|
||||||
{
|
{
|
||||||
int reg, k;
|
TCGReg reg;
|
||||||
|
int k;
|
||||||
TCGTemp *ts;
|
TCGTemp *ts;
|
||||||
char buf[64];
|
char buf[64];
|
||||||
|
|
||||||
|
@ -1662,7 +1663,7 @@ static void temp_allocate_frame(TCGContext *s, int temp)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* sync register 'reg' by saving it to the corresponding temporary */
|
/* sync register 'reg' by saving it to the corresponding temporary */
|
||||||
static inline void tcg_reg_sync(TCGContext *s, int reg)
|
static inline void tcg_reg_sync(TCGContext *s, TCGReg reg)
|
||||||
{
|
{
|
||||||
TCGTemp *ts;
|
TCGTemp *ts;
|
||||||
int temp;
|
int temp;
|
||||||
|
@ -1680,7 +1681,7 @@ static inline void tcg_reg_sync(TCGContext *s, int reg)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free register 'reg' by spilling the corresponding temporary if necessary */
|
/* free register 'reg' by spilling the corresponding temporary if necessary */
|
||||||
static void tcg_reg_free(TCGContext *s, int reg)
|
static void tcg_reg_free(TCGContext *s, TCGReg reg)
|
||||||
{
|
{
|
||||||
int temp;
|
int temp;
|
||||||
|
|
||||||
|
@ -1693,9 +1694,10 @@ static void tcg_reg_free(TCGContext *s, int reg)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a register belonging to reg1 & ~reg2 */
|
/* Allocate a register belonging to reg1 & ~reg2 */
|
||||||
static int tcg_reg_alloc(TCGContext *s, TCGRegSet reg1, TCGRegSet reg2)
|
static TCGReg tcg_reg_alloc(TCGContext *s, TCGRegSet reg1, TCGRegSet reg2)
|
||||||
{
|
{
|
||||||
int i, reg;
|
int i;
|
||||||
|
TCGReg reg;
|
||||||
TCGRegSet reg_ct;
|
TCGRegSet reg_ct;
|
||||||
|
|
||||||
tcg_regset_andnot(reg_ct, reg1, reg2);
|
tcg_regset_andnot(reg_ct, reg1, reg2);
|
||||||
|
@ -1960,7 +1962,8 @@ static void tcg_reg_alloc_op(TCGContext *s,
|
||||||
uint8_t sync_args)
|
uint8_t sync_args)
|
||||||
{
|
{
|
||||||
TCGRegSet allocated_regs;
|
TCGRegSet allocated_regs;
|
||||||
int i, k, nb_iargs, nb_oargs, reg;
|
int i, k, nb_iargs, nb_oargs;
|
||||||
|
TCGReg reg;
|
||||||
TCGArg arg;
|
TCGArg arg;
|
||||||
const TCGArgConstraint *arg_ct;
|
const TCGArgConstraint *arg_ct;
|
||||||
TCGTemp *ts;
|
TCGTemp *ts;
|
||||||
|
@ -2136,7 +2139,8 @@ static void tcg_reg_alloc_call(TCGContext *s, int nb_oargs, int nb_iargs,
|
||||||
const TCGArg * const args, uint16_t dead_args,
|
const TCGArg * const args, uint16_t dead_args,
|
||||||
uint8_t sync_args)
|
uint8_t sync_args)
|
||||||
{
|
{
|
||||||
int flags, nb_regs, i, reg;
|
int flags, nb_regs, i;
|
||||||
|
TCGReg reg;
|
||||||
TCGArg arg;
|
TCGArg arg;
|
||||||
TCGTemp *ts;
|
TCGTemp *ts;
|
||||||
intptr_t stack_offset;
|
intptr_t stack_offset;
|
||||||
|
|
|
@ -448,7 +448,7 @@ typedef enum TCGTempVal {
|
||||||
} TCGTempVal;
|
} TCGTempVal;
|
||||||
|
|
||||||
typedef struct TCGTemp {
|
typedef struct TCGTemp {
|
||||||
unsigned int reg:8;
|
TCGReg reg:8;
|
||||||
TCGTempVal val_type:8;
|
TCGTempVal val_type:8;
|
||||||
TCGType base_type:8;
|
TCGType base_type:8;
|
||||||
TCGType type:8;
|
TCGType type:8;
|
||||||
|
@ -628,12 +628,12 @@ void tcg_func_start(TCGContext *s);
|
||||||
|
|
||||||
int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf);
|
int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf);
|
||||||
|
|
||||||
void tcg_set_frame(TCGContext *s, int reg, intptr_t start, intptr_t size);
|
void tcg_set_frame(TCGContext *s, TCGReg reg, intptr_t start, intptr_t size);
|
||||||
|
|
||||||
int tcg_global_mem_new_internal(TCGType, TCGv_ptr, intptr_t, const char *);
|
int tcg_global_mem_new_internal(TCGType, TCGv_ptr, intptr_t, const char *);
|
||||||
|
|
||||||
TCGv_i32 tcg_global_reg_new_i32(int reg, const char *name);
|
TCGv_i32 tcg_global_reg_new_i32(TCGReg reg, const char *name);
|
||||||
TCGv_i64 tcg_global_reg_new_i64(int reg, const char *name);
|
TCGv_i64 tcg_global_reg_new_i64(TCGReg reg, const char *name);
|
||||||
|
|
||||||
TCGv_i32 tcg_temp_new_internal_i32(int temp_local);
|
TCGv_i32 tcg_temp_new_internal_i32(int temp_local);
|
||||||
TCGv_i64 tcg_temp_new_internal_i64(int temp_local);
|
TCGv_i64 tcg_temp_new_internal_i64(int temp_local);
|
||||||
|
|
Loading…
Reference in New Issue