mirror of
https://github.com/qemu/qemu.git
synced 2024-12-15 15:33:29 +08:00
tcg: Move tcg_temp_new_*, tcg_global_mem_new_* out of line
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20231029210848.78234-11-richard.henderson@linaro.org>
This commit is contained in:
parent
16edaee720
commit
4643f3e07e
@ -17,6 +17,17 @@ TCGv_i64 tcg_constant_i64(int64_t val);
|
||||
TCGv_vec tcg_constant_vec(TCGType type, unsigned vece, int64_t val);
|
||||
TCGv_vec tcg_constant_vec_matching(TCGv_vec match, unsigned vece, int64_t val);
|
||||
|
||||
TCGv_i32 tcg_temp_new_i32(void);
|
||||
TCGv_i64 tcg_temp_new_i64(void);
|
||||
TCGv_ptr tcg_temp_new_ptr(void);
|
||||
TCGv_i128 tcg_temp_new_i128(void);
|
||||
TCGv_vec tcg_temp_new_vec(TCGType type);
|
||||
TCGv_vec tcg_temp_new_vec_matching(TCGv_vec match);
|
||||
|
||||
TCGv_i32 tcg_global_mem_new_i32(TCGv_ptr reg, intptr_t off, const char *name);
|
||||
TCGv_i64 tcg_global_mem_new_i64(TCGv_ptr reg, intptr_t off, const char *name);
|
||||
TCGv_ptr tcg_global_mem_new_ptr(TCGv_ptr reg, intptr_t off, const char *name);
|
||||
|
||||
/* Generic ops. */
|
||||
|
||||
void gen_set_label(TCGLabel *l);
|
||||
|
@ -56,28 +56,9 @@ static inline void tcg_temp_free_vec(TCGv_vec arg)
|
||||
tcg_temp_free_internal(tcgv_vec_temp(arg));
|
||||
}
|
||||
|
||||
static inline TCGv_i32 tcg_temp_ebb_new_i32(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_I32, TEMP_EBB);
|
||||
return temp_tcgv_i32(t);
|
||||
}
|
||||
|
||||
static inline TCGv_i64 tcg_temp_ebb_new_i64(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_I64, TEMP_EBB);
|
||||
return temp_tcgv_i64(t);
|
||||
}
|
||||
|
||||
static inline TCGv_i128 tcg_temp_ebb_new_i128(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_I128, TEMP_EBB);
|
||||
return temp_tcgv_i128(t);
|
||||
}
|
||||
|
||||
static inline TCGv_ptr tcg_temp_ebb_new_ptr(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_PTR, TEMP_EBB);
|
||||
return temp_tcgv_ptr(t);
|
||||
}
|
||||
TCGv_i32 tcg_temp_ebb_new_i32(void);
|
||||
TCGv_i64 tcg_temp_ebb_new_i64(void);
|
||||
TCGv_ptr tcg_temp_ebb_new_ptr(void);
|
||||
TCGv_i128 tcg_temp_ebb_new_i128(void);
|
||||
|
||||
#endif /* TCG_TEMP_FREE_H */
|
||||
|
@ -795,57 +795,6 @@ void tb_target_set_jmp_target(const TranslationBlock *, int,
|
||||
|
||||
void tcg_set_frame(TCGContext *s, TCGReg reg, intptr_t start, intptr_t size);
|
||||
|
||||
TCGTemp *tcg_global_mem_new_internal(TCGType, TCGv_ptr,
|
||||
intptr_t, const char *);
|
||||
TCGTemp *tcg_temp_new_internal(TCGType, TCGTempKind);
|
||||
TCGv_vec tcg_temp_new_vec(TCGType type);
|
||||
TCGv_vec tcg_temp_new_vec_matching(TCGv_vec match);
|
||||
|
||||
static inline TCGv_i32 tcg_global_mem_new_i32(TCGv_ptr reg, intptr_t offset,
|
||||
const char *name)
|
||||
{
|
||||
TCGTemp *t = tcg_global_mem_new_internal(TCG_TYPE_I32, reg, offset, name);
|
||||
return temp_tcgv_i32(t);
|
||||
}
|
||||
|
||||
static inline TCGv_i32 tcg_temp_new_i32(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_I32, TEMP_TB);
|
||||
return temp_tcgv_i32(t);
|
||||
}
|
||||
|
||||
static inline TCGv_i64 tcg_global_mem_new_i64(TCGv_ptr reg, intptr_t offset,
|
||||
const char *name)
|
||||
{
|
||||
TCGTemp *t = tcg_global_mem_new_internal(TCG_TYPE_I64, reg, offset, name);
|
||||
return temp_tcgv_i64(t);
|
||||
}
|
||||
|
||||
static inline TCGv_i64 tcg_temp_new_i64(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_I64, TEMP_TB);
|
||||
return temp_tcgv_i64(t);
|
||||
}
|
||||
|
||||
static inline TCGv_i128 tcg_temp_new_i128(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_I128, TEMP_TB);
|
||||
return temp_tcgv_i128(t);
|
||||
}
|
||||
|
||||
static inline TCGv_ptr tcg_global_mem_new_ptr(TCGv_ptr reg, intptr_t offset,
|
||||
const char *name)
|
||||
{
|
||||
TCGTemp *t = tcg_global_mem_new_internal(TCG_TYPE_PTR, reg, offset, name);
|
||||
return temp_tcgv_ptr(t);
|
||||
}
|
||||
|
||||
static inline TCGv_ptr tcg_temp_new_ptr(void)
|
||||
{
|
||||
TCGTemp *t = tcg_temp_new_internal(TCG_TYPE_PTR, TEMP_TB);
|
||||
return temp_tcgv_ptr(t);
|
||||
}
|
||||
|
||||
#define TCG_CT_CONST 1 /* any constant of register size */
|
||||
|
||||
typedef struct TCGArgConstraint {
|
||||
|
64
tcg/tcg.c
64
tcg/tcg.c
@ -1572,8 +1572,8 @@ void tcg_set_frame(TCGContext *s, TCGReg reg, intptr_t start, intptr_t size)
|
||||
= tcg_global_reg_new_internal(s, TCG_TYPE_PTR, reg, "_frame");
|
||||
}
|
||||
|
||||
TCGTemp *tcg_global_mem_new_internal(TCGType type, TCGv_ptr base,
|
||||
intptr_t offset, const char *name)
|
||||
static TCGTemp *tcg_global_mem_new_internal(TCGv_ptr base, intptr_t offset,
|
||||
const char *name, TCGType type)
|
||||
{
|
||||
TCGContext *s = tcg_ctx;
|
||||
TCGTemp *base_ts = tcgv_ptr_temp(base);
|
||||
@ -1632,7 +1632,25 @@ TCGTemp *tcg_global_mem_new_internal(TCGType type, TCGv_ptr base,
|
||||
return ts;
|
||||
}
|
||||
|
||||
TCGTemp *tcg_temp_new_internal(TCGType type, TCGTempKind kind)
|
||||
TCGv_i32 tcg_global_mem_new_i32(TCGv_ptr reg, intptr_t off, const char *name)
|
||||
{
|
||||
TCGTemp *ts = tcg_global_mem_new_internal(reg, off, name, TCG_TYPE_I32);
|
||||
return temp_tcgv_i32(ts);
|
||||
}
|
||||
|
||||
TCGv_i64 tcg_global_mem_new_i64(TCGv_ptr reg, intptr_t off, const char *name)
|
||||
{
|
||||
TCGTemp *ts = tcg_global_mem_new_internal(reg, off, name, TCG_TYPE_I64);
|
||||
return temp_tcgv_i64(ts);
|
||||
}
|
||||
|
||||
TCGv_ptr tcg_global_mem_new_ptr(TCGv_ptr reg, intptr_t off, const char *name)
|
||||
{
|
||||
TCGTemp *ts = tcg_global_mem_new_internal(reg, off, name, TCG_TYPE_PTR);
|
||||
return temp_tcgv_ptr(ts);
|
||||
}
|
||||
|
||||
static TCGTemp *tcg_temp_new_internal(TCGType type, TCGTempKind kind)
|
||||
{
|
||||
TCGContext *s = tcg_ctx;
|
||||
TCGTemp *ts;
|
||||
@ -1696,6 +1714,46 @@ TCGTemp *tcg_temp_new_internal(TCGType type, TCGTempKind kind)
|
||||
return ts;
|
||||
}
|
||||
|
||||
TCGv_i32 tcg_temp_new_i32(void)
|
||||
{
|
||||
return temp_tcgv_i32(tcg_temp_new_internal(TCG_TYPE_I32, TEMP_TB));
|
||||
}
|
||||
|
||||
TCGv_i32 tcg_temp_ebb_new_i32(void)
|
||||
{
|
||||
return temp_tcgv_i32(tcg_temp_new_internal(TCG_TYPE_I32, TEMP_EBB));
|
||||
}
|
||||
|
||||
TCGv_i64 tcg_temp_new_i64(void)
|
||||
{
|
||||
return temp_tcgv_i64(tcg_temp_new_internal(TCG_TYPE_I64, TEMP_TB));
|
||||
}
|
||||
|
||||
TCGv_i64 tcg_temp_ebb_new_i64(void)
|
||||
{
|
||||
return temp_tcgv_i64(tcg_temp_new_internal(TCG_TYPE_I64, TEMP_EBB));
|
||||
}
|
||||
|
||||
TCGv_ptr tcg_temp_new_ptr(void)
|
||||
{
|
||||
return temp_tcgv_ptr(tcg_temp_new_internal(TCG_TYPE_PTR, TEMP_TB));
|
||||
}
|
||||
|
||||
TCGv_ptr tcg_temp_ebb_new_ptr(void)
|
||||
{
|
||||
return temp_tcgv_ptr(tcg_temp_new_internal(TCG_TYPE_PTR, TEMP_EBB));
|
||||
}
|
||||
|
||||
TCGv_i128 tcg_temp_new_i128(void)
|
||||
{
|
||||
return temp_tcgv_i128(tcg_temp_new_internal(TCG_TYPE_I128, TEMP_TB));
|
||||
}
|
||||
|
||||
TCGv_i128 tcg_temp_ebb_new_i128(void)
|
||||
{
|
||||
return temp_tcgv_i128(tcg_temp_new_internal(TCG_TYPE_I128, TEMP_EBB));
|
||||
}
|
||||
|
||||
TCGv_vec tcg_temp_new_vec(TCGType type)
|
||||
{
|
||||
TCGTemp *t;
|
||||
|
Loading…
Reference in New Issue
Block a user