[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/27] tcg/tci: Merge identical cases in generation (conditional o
From: |
Richard Henderson |
Subject: |
[PULL 10/27] tcg/tci: Merge identical cases in generation (conditional opcodes) |
Date: |
Sat, 6 Mar 2021 13:35:56 -0800 |
Use CASE_32_64 and CASE_64 to reduce ifdefs and merge
cases that are identical between 32-bit and 64-bit hosts.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210217202036.1724901-5-richard.henderson@linaro.org>
[PMD: Split patch as 4/5]
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210218232840.1760806-5-f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/tci/tcg-target.c.inc | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)
diff --git a/tcg/tci/tcg-target.c.inc b/tcg/tci/tcg-target.c.inc
index 4a86a3bb46..f9893b9539 100644
--- a/tcg/tci/tcg-target.c.inc
+++ b/tcg/tci/tcg-target.c.inc
@@ -417,15 +417,18 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc,
const TCGArg *args,
}
set_jmp_reset_offset(s, args[0]);
break;
+
case INDEX_op_br:
tci_out_label(s, arg_label(args[0]));
break;
- case INDEX_op_setcond_i32:
+
+ CASE_32_64(setcond)
tcg_out_r(s, args[0]);
tcg_out_r(s, args[1]);
tcg_out_r(s, args[2]);
tcg_out8(s, args[3]); /* condition */
break;
+
#if TCG_TARGET_REG_BITS == 32
case INDEX_op_setcond2_i32:
/* setcond2_i32 cond, t0, t1_low, t1_high, t2_low, t2_high */
@@ -436,13 +439,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const
TCGArg *args,
tcg_out_r(s, args[4]);
tcg_out8(s, args[5]); /* condition */
break;
-#elif TCG_TARGET_REG_BITS == 64
- case INDEX_op_setcond_i64:
- tcg_out_r(s, args[0]);
- tcg_out_r(s, args[1]);
- tcg_out_r(s, args[2]);
- tcg_out8(s, args[3]); /* condition */
- break;
#endif
case INDEX_op_ld8u_i32:
case INDEX_op_ld8s_i32:
@@ -505,14 +501,12 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc,
const TCGArg *args,
tcg_out8(s, args[4]);
break;
-#if TCG_TARGET_REG_BITS == 64
- case INDEX_op_brcond_i64:
+ CASE_32_64(brcond)
tcg_out_r(s, args[0]);
tcg_out_r(s, args[1]);
tcg_out8(s, args[2]); /* condition */
tci_out_label(s, arg_label(args[3]));
break;
-#endif /* TCG_TARGET_REG_BITS == 64 */
CASE_32_64(neg) /* Optional (TCG_TARGET_HAS_neg_*). */
CASE_32_64(not) /* Optional (TCG_TARGET_HAS_not_*). */
@@ -556,12 +550,7 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const
TCGArg *args,
tcg_out_r(s, args[3]);
break;
#endif
- case INDEX_op_brcond_i32:
- tcg_out_r(s, args[0]);
- tcg_out_r(s, args[1]);
- tcg_out8(s, args[2]); /* condition */
- tci_out_label(s, arg_label(args[3]));
- break;
+
case INDEX_op_qemu_ld_i32:
tcg_out_r(s, *args++);
tcg_out_r(s, *args++);
--
2.25.1
- [PULL 08/27] tcg/tci: Merge identical cases in generation (exchange opcodes), (continued)
- [PULL 08/27] tcg/tci: Merge identical cases in generation (exchange opcodes), Richard Henderson, 2021/03/06
- [PULL 11/27] tcg/tci: Merge identical cases in generation (load/store opcodes), Richard Henderson, 2021/03/06
- [PULL 13/27] tcg/tci: Remove tci_read_r8s, Richard Henderson, 2021/03/06
- [PULL 14/27] tcg/tci: Remove tci_read_r16, Richard Henderson, 2021/03/06
- [PULL 15/27] tcg/tci: Remove tci_read_r16s, Richard Henderson, 2021/03/06
- [PULL 05/27] tcg: Split out tcg_raise_tb_overflow, Richard Henderson, 2021/03/06
- [PULL 07/27] tcg/tci: Merge identical cases in generation (arithmetic opcodes), Richard Henderson, 2021/03/06
- [PULL 06/27] tcg: Manage splitwx in tc_ptr_to_region_tree by hand, Richard Henderson, 2021/03/06
- [PULL 17/27] tcg/tci: Remove tci_read_r32s, Richard Henderson, 2021/03/06
- [PULL 18/27] tcg/tci: Reduce use of tci_read_r64, Richard Henderson, 2021/03/06
- [PULL 10/27] tcg/tci: Merge identical cases in generation (conditional opcodes),
Richard Henderson <=
- [PULL 16/27] tcg/tci: Remove tci_read_r32, Richard Henderson, 2021/03/06
- [PULL 21/27] tcg/tci: Merge bswap operations, Richard Henderson, 2021/03/06
- [PULL 20/27] tcg/tci: Merge extension operations, Richard Henderson, 2021/03/06
- [PULL 19/27] tcg/tci: Merge basic arithmetic operations, Richard Henderson, 2021/03/06
- [PULL 22/27] tcg/tci: Merge mov, not and neg operations, Richard Henderson, 2021/03/06
- [PULL 25/27] accel/tcg: drop the use of CF_HASH_MASK and rename params, Richard Henderson, 2021/03/06
- [PULL 26/27] include/exec: lightly re-arrange TranslationBlock, Richard Henderson, 2021/03/06
- [PULL 23/27] accel/tcg: rename tb_lookup__cpu_state and hoist state extraction, Richard Henderson, 2021/03/06
- [PULL 24/27] accel/tcg: move CF_CLUSTER calculation to curr_cflags, Richard Henderson, 2021/03/06
- [PULL 27/27] accel/tcg: Precompute curr_cflags into cpu->tcg_cflags, Richard Henderson, 2021/03/06