mirror of
https://github.com/xemu-project/xemu.git
synced 2024-12-18 09:19:53 +00:00
tcg: Push tcg_ctx into tcg_gen_callN
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
b7e8b17a77
commit
960c50e077
@ -9,7 +9,7 @@
|
|||||||
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
|
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
|
||||||
static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
|
static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
|
||||||
{ \
|
{ \
|
||||||
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 0, NULL); \
|
tcg_gen_callN(HELPER(name), dh_retvar(ret), 0, NULL); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
|
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
|
||||||
@ -17,7 +17,7 @@ static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
|
|||||||
dh_arg_decl(t1, 1)) \
|
dh_arg_decl(t1, 1)) \
|
||||||
{ \
|
{ \
|
||||||
TCGArg args[1] = { dh_arg(t1, 1) }; \
|
TCGArg args[1] = { dh_arg(t1, 1) }; \
|
||||||
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 1, args); \
|
tcg_gen_callN(HELPER(name), dh_retvar(ret), 1, args); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
|
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
|
||||||
@ -25,7 +25,7 @@ static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
|
|||||||
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2)) \
|
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2)) \
|
||||||
{ \
|
{ \
|
||||||
TCGArg args[2] = { dh_arg(t1, 1), dh_arg(t2, 2) }; \
|
TCGArg args[2] = { dh_arg(t1, 1), dh_arg(t2, 2) }; \
|
||||||
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 2, args); \
|
tcg_gen_callN(HELPER(name), dh_retvar(ret), 2, args); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
|
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
|
||||||
@ -33,7 +33,7 @@ static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
|
|||||||
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
|
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
|
||||||
{ \
|
{ \
|
||||||
TCGArg args[3] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3) }; \
|
TCGArg args[3] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3) }; \
|
||||||
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 3, args); \
|
tcg_gen_callN(HELPER(name), dh_retvar(ret), 3, args); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
|
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
|
||||||
@ -43,7 +43,7 @@ static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
|
|||||||
{ \
|
{ \
|
||||||
TCGArg args[4] = { dh_arg(t1, 1), dh_arg(t2, 2), \
|
TCGArg args[4] = { dh_arg(t1, 1), dh_arg(t2, 2), \
|
||||||
dh_arg(t3, 3), dh_arg(t4, 4) }; \
|
dh_arg(t3, 3), dh_arg(t4, 4) }; \
|
||||||
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 4, args); \
|
tcg_gen_callN(HELPER(name), dh_retvar(ret), 4, args); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
|
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
|
||||||
@ -53,7 +53,7 @@ static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
|
|||||||
{ \
|
{ \
|
||||||
TCGArg args[5] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
|
TCGArg args[5] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
|
||||||
dh_arg(t4, 4), dh_arg(t5, 5) }; \
|
dh_arg(t4, 4), dh_arg(t5, 5) }; \
|
||||||
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 5, args); \
|
tcg_gen_callN(HELPER(name), dh_retvar(ret), 5, args); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "helper.h"
|
#include "helper.h"
|
||||||
|
@ -974,9 +974,9 @@ bool tcg_op_supported(TCGOpcode op)
|
|||||||
/* Note: we convert the 64 bit args to 32 bit and do some alignment
|
/* Note: we convert the 64 bit args to 32 bit and do some alignment
|
||||||
and endian swap. Maybe it would be better to do the alignment
|
and endian swap. Maybe it would be better to do the alignment
|
||||||
and endian swap in tcg_reg_alloc_call(). */
|
and endian swap in tcg_reg_alloc_call(). */
|
||||||
void tcg_gen_callN(TCGContext *s, void *func, TCGArg ret,
|
void tcg_gen_callN(void *func, TCGArg ret, int nargs, TCGArg *args)
|
||||||
int nargs, TCGArg *args)
|
|
||||||
{
|
{
|
||||||
|
TCGContext *s = &tcg_ctx;
|
||||||
int i, real_args, nb_rets, pi;
|
int i, real_args, nb_rets, pi;
|
||||||
unsigned sizemask, flags;
|
unsigned sizemask, flags;
|
||||||
TCGHelperInfo *info;
|
TCGHelperInfo *info;
|
||||||
|
@ -951,8 +951,7 @@ do {\
|
|||||||
|
|
||||||
bool tcg_op_supported(TCGOpcode op);
|
bool tcg_op_supported(TCGOpcode op);
|
||||||
|
|
||||||
void tcg_gen_callN(TCGContext *s, void *func,
|
void tcg_gen_callN(void *func, TCGArg ret, int nargs, TCGArg *args);
|
||||||
TCGArg ret, int nargs, TCGArg *args);
|
|
||||||
|
|
||||||
void tcg_op_remove(TCGContext *s, TCGOp *op);
|
void tcg_op_remove(TCGContext *s, TCGOp *op);
|
||||||
TCGOp *tcg_op_insert_before(TCGContext *s, TCGOp *op, TCGOpcode opc, int narg);
|
TCGOp *tcg_op_insert_before(TCGContext *s, TCGOp *op, TCGOpcode opc, int narg);
|
||||||
|
Loading…
Reference in New Issue
Block a user