Message ID | 20250415192515.232910-164-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | tcg: Convert to TCGOutOp structures | expand |
On 4/15/25 12:25, Richard Henderson wrote: > All integer opcodes are now converted to TCGOutOp. > > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > tcg/tcg.c | 12 +++--------- > tcg/aarch64/tcg-target.c.inc | 7 ------- > tcg/arm/tcg-target.c.inc | 7 ------- > tcg/i386/tcg-target.c.inc | 7 ------- > tcg/loongarch64/tcg-target.c.inc | 7 ------- > tcg/mips/tcg-target.c.inc | 7 ------- > tcg/ppc/tcg-target.c.inc | 7 ------- > tcg/riscv/tcg-target.c.inc | 7 ------- > tcg/s390x/tcg-target.c.inc | 7 ------- > tcg/sparc64/tcg-target.c.inc | 7 ------- > tcg/tci/tcg-target.c.inc | 7 ------- > 11 files changed, 3 insertions(+), 79 deletions(-) > > diff --git a/tcg/tcg.c b/tcg/tcg.c > index 823bcc6cfc..35a30f893d 100644 > --- a/tcg/tcg.c > +++ b/tcg/tcg.c > @@ -138,9 +138,6 @@ static void tcg_out_mb(TCGContext *s, unsigned bar); > static void tcg_out_br(TCGContext *s, TCGLabel *l); > static void tcg_out_set_carry(TCGContext *s); > static void tcg_out_set_borrow(TCGContext *s); > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]); > #if TCG_TARGET_MAYBE_vec > static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, > TCGReg dst, TCGReg src); > @@ -5918,12 +5915,9 @@ static void tcg_reg_alloc_op(TCGContext *s, const TCGOp *op) > break; > > default: > - if (def->flags & TCG_OPF_VECTOR) { > - tcg_out_vec_op(s, op->opc, type - TCG_TYPE_V64, > - TCGOP_VECE(op), new_args, const_args); > - } else { > - tcg_out_op(s, op->opc, type, new_args, const_args); > - } > + tcg_debug_assert(def->flags & TCG_OPF_VECTOR); > + tcg_out_vec_op(s, op->opc, type - TCG_TYPE_V64, > + TCGOP_VECE(op), new_args, const_args); > break; > } > > diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc > index be1ca74bc4..e56dc135b6 100644 > --- a/tcg/aarch64/tcg-target.c.inc > +++ b/tcg/aarch64/tcg-target.c.inc > @@ -2897,13 +2897,6 @@ static const TCGOutOpStore outop_st = { > .out_r = tcg_out_st, > }; > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, > unsigned vecl, unsigned vece, > const TCGArg args[TCG_MAX_OP_ARGS], > diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc > index 014a441420..447e43583e 100644 > --- a/tcg/arm/tcg-target.c.inc > +++ b/tcg/arm/tcg-target.c.inc > @@ -2640,13 +2640,6 @@ static const TCGOutOpStore outop_st = { > .out_r = tcg_out_st, > }; > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static TCGConstraintSetIndex > tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) > { > diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc > index 7b78ab67f4..2d7598d755 100644 > --- a/tcg/i386/tcg-target.c.inc > +++ b/tcg/i386/tcg-target.c.inc > @@ -3602,13 +3602,6 @@ static const TCGOutOpStore outop_st = { > .out_i = tgen_st_i, > }; > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static int const umin_insn[4] = { > OPC_PMINUB, OPC_PMINUW, OPC_PMINUD, OPC_VPMINUQ > }; > diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.c.inc > index 49522dcd72..b5d00876cb 100644 > --- a/tcg/loongarch64/tcg-target.c.inc > +++ b/tcg/loongarch64/tcg-target.c.inc > @@ -2030,13 +2030,6 @@ static const TCGOutOpStore outop_st = { > .out_r = tcg_out_st, > }; > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, > TCGReg rd, TCGReg rs) > { > diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc > index 1f12500344..2c0457e588 100644 > --- a/tcg/mips/tcg-target.c.inc > +++ b/tcg/mips/tcg-target.c.inc > @@ -2444,13 +2444,6 @@ static const TCGOutOpStore outop_st = { > }; > > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static TCGConstraintSetIndex > tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) > { > diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc > index 824cced94a..2e94778104 100644 > --- a/tcg/ppc/tcg-target.c.inc > +++ b/tcg/ppc/tcg-target.c.inc > @@ -3828,13 +3828,6 @@ static const TCGOutOpStore outop_st = { > }; > > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece) > { > switch (opc) { > diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc > index eca1283742..f9417d15f7 100644 > --- a/tcg/riscv/tcg-target.c.inc > +++ b/tcg/riscv/tcg-target.c.inc > @@ -2642,13 +2642,6 @@ static const TCGOutOpStore outop_st = { > }; > > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, > unsigned vecl, unsigned vece, > const TCGArg args[TCG_MAX_OP_ARGS], > diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc > index 123e74290a..c0dd9636d9 100644 > --- a/tcg/s390x/tcg-target.c.inc > +++ b/tcg/s390x/tcg-target.c.inc > @@ -3160,13 +3160,6 @@ static const TCGOutOpStore outop_st = { > }; > > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, > TCGReg dst, TCGReg src) > { > diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.c.inc > index 49a4f4f281..09380799e9 100644 > --- a/tcg/sparc64/tcg-target.c.inc > +++ b/tcg/sparc64/tcg-target.c.inc > @@ -2069,13 +2069,6 @@ static const TCGOutOpStore outop_st = { > }; > > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static TCGConstraintSetIndex > tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) > { > diff --git a/tcg/tci/tcg-target.c.inc b/tcg/tci/tcg-target.c.inc > index 50e205211d..35c66a4836 100644 > --- a/tcg/tci/tcg-target.c.inc > +++ b/tcg/tci/tcg-target.c.inc > @@ -1235,13 +1235,6 @@ static const TCGOutOpQemuLdSt2 outop_qemu_st2 = { > TCG_TARGET_REG_BITS == 64 ? NULL : tgen_qemu_st2, > }; > > -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, > - const TCGArg args[TCG_MAX_OP_ARGS], > - const int const_args[TCG_MAX_OP_ARGS]) > -{ > - g_assert_not_reached(); > -} > - > static void tcg_out_st(TCGContext *s, TCGType type, TCGReg val, TCGReg base, > intptr_t offset) > { Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff --git a/tcg/tcg.c b/tcg/tcg.c index 823bcc6cfc..35a30f893d 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -138,9 +138,6 @@ static void tcg_out_mb(TCGContext *s, unsigned bar); static void tcg_out_br(TCGContext *s, TCGLabel *l); static void tcg_out_set_carry(TCGContext *s); static void tcg_out_set_borrow(TCGContext *s); -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]); #if TCG_TARGET_MAYBE_vec static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, TCGReg dst, TCGReg src); @@ -5918,12 +5915,9 @@ static void tcg_reg_alloc_op(TCGContext *s, const TCGOp *op) break; default: - if (def->flags & TCG_OPF_VECTOR) { - tcg_out_vec_op(s, op->opc, type - TCG_TYPE_V64, - TCGOP_VECE(op), new_args, const_args); - } else { - tcg_out_op(s, op->opc, type, new_args, const_args); - } + tcg_debug_assert(def->flags & TCG_OPF_VECTOR); + tcg_out_vec_op(s, op->opc, type - TCG_TYPE_V64, + TCGOP_VECE(op), new_args, const_args); break; } diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc index be1ca74bc4..e56dc135b6 100644 --- a/tcg/aarch64/tcg-target.c.inc +++ b/tcg/aarch64/tcg-target.c.inc @@ -2897,13 +2897,6 @@ static const TCGOutOpStore outop_st = { .out_r = tcg_out_st, }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType ext, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, unsigned vecl, unsigned vece, const TCGArg args[TCG_MAX_OP_ARGS], diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index 014a441420..447e43583e 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -2640,13 +2640,6 @@ static const TCGOutOpStore outop_st = { .out_r = tcg_out_st, }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static TCGConstraintSetIndex tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) { diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index 7b78ab67f4..2d7598d755 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -3602,13 +3602,6 @@ static const TCGOutOpStore outop_st = { .out_i = tgen_st_i, }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static int const umin_insn[4] = { OPC_PMINUB, OPC_PMINUW, OPC_PMINUD, OPC_VPMINUQ }; diff --git a/tcg/loongarch64/tcg-target.c.inc b/tcg/loongarch64/tcg-target.c.inc index 49522dcd72..b5d00876cb 100644 --- a/tcg/loongarch64/tcg-target.c.inc +++ b/tcg/loongarch64/tcg-target.c.inc @@ -2030,13 +2030,6 @@ static const TCGOutOpStore outop_st = { .out_r = tcg_out_st, }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, TCGReg rd, TCGReg rs) { diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc index 1f12500344..2c0457e588 100644 --- a/tcg/mips/tcg-target.c.inc +++ b/tcg/mips/tcg-target.c.inc @@ -2444,13 +2444,6 @@ static const TCGOutOpStore outop_st = { }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static TCGConstraintSetIndex tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) { diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index 824cced94a..2e94778104 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -3828,13 +3828,6 @@ static const TCGOutOpStore outop_st = { }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type, unsigned vece) { switch (opc) { diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index eca1283742..f9417d15f7 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -2642,13 +2642,6 @@ static const TCGOutOpStore outop_st = { }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, unsigned vecl, unsigned vece, const TCGArg args[TCG_MAX_OP_ARGS], diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc index 123e74290a..c0dd9636d9 100644 --- a/tcg/s390x/tcg-target.c.inc +++ b/tcg/s390x/tcg-target.c.inc @@ -3160,13 +3160,6 @@ static const TCGOutOpStore outop_st = { }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static bool tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece, TCGReg dst, TCGReg src) { diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.c.inc index 49a4f4f281..09380799e9 100644 --- a/tcg/sparc64/tcg-target.c.inc +++ b/tcg/sparc64/tcg-target.c.inc @@ -2069,13 +2069,6 @@ static const TCGOutOpStore outop_st = { }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static TCGConstraintSetIndex tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags) { diff --git a/tcg/tci/tcg-target.c.inc b/tcg/tci/tcg-target.c.inc index 50e205211d..35c66a4836 100644 --- a/tcg/tci/tcg-target.c.inc +++ b/tcg/tci/tcg-target.c.inc @@ -1235,13 +1235,6 @@ static const TCGOutOpQemuLdSt2 outop_qemu_st2 = { TCG_TARGET_REG_BITS == 64 ? NULL : tgen_qemu_st2, }; -static void tcg_out_op(TCGContext *s, TCGOpcode opc, TCGType type, - const TCGArg args[TCG_MAX_OP_ARGS], - const int const_args[TCG_MAX_OP_ARGS]) -{ - g_assert_not_reached(); -} - static void tcg_out_st(TCGContext *s, TCGType type, TCGReg val, TCGReg base, intptr_t offset) {