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:
Richard Henderson 2017-10-15 12:19:01 -07:00
parent b7e8b17a77
commit 960c50e077
3 changed files with 9 additions and 10 deletions

View File

@ -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"

View File

@ -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;

View File

@ -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);