[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 09/76] target/arm: Drop new_tmp_a64_zero
From: |
Richard Henderson |
Subject: |
[PATCH v2 09/76] target/arm: Drop new_tmp_a64_zero |
Date: |
Sun, 26 Feb 2023 19:23:58 -1000 |
Only the use within cpu_reg requires a writable temp,
so inline new_tmp_a64_zero there. All other uses are
fine with a constant temp, so use tcg_constant_i64(0).
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/translate-a64.h | 1 -
target/arm/translate-a64.c | 41 +++++++++++++++++---------------------
2 files changed, 18 insertions(+), 24 deletions(-)
diff --git a/target/arm/translate-a64.h b/target/arm/translate-a64.h
index 8ac126991f..0576c4ea12 100644
--- a/target/arm/translate-a64.h
+++ b/target/arm/translate-a64.h
@@ -18,7 +18,6 @@
#ifndef TARGET_ARM_TRANSLATE_A64_H
#define TARGET_ARM_TRANSLATE_A64_H
-TCGv_i64 new_tmp_a64_zero(DisasContext *s);
TCGv_i64 cpu_reg(DisasContext *s, int reg);
TCGv_i64 cpu_reg_sp(DisasContext *s, int reg);
TCGv_i64 read_cpu_reg(DisasContext *s, int reg, int sf);
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 04872d9925..b5d6508cbc 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -408,13 +408,6 @@ static void gen_goto_tb(DisasContext *s, int n, int64_t
diff)
}
}
-TCGv_i64 new_tmp_a64_zero(DisasContext *s)
-{
- TCGv_i64 t = tcg_temp_new_i64();
- tcg_gen_movi_i64(t, 0);
- return t;
-}
-
/*
* Register access functions
*
@@ -433,7 +426,9 @@ TCGv_i64 new_tmp_a64_zero(DisasContext *s)
TCGv_i64 cpu_reg(DisasContext *s, int reg)
{
if (reg == 31) {
- return new_tmp_a64_zero(s);
+ TCGv_i64 t = tcg_temp_new_i64();
+ tcg_gen_movi_i64(t, 0);
+ return t;
} else {
return cpu_X[reg];
}
@@ -1532,7 +1527,7 @@ static void handle_hint(DisasContext *s, uint32_t insn,
case 0b11000: /* PACIAZ */
if (s->pauth_active) {
gen_helper_pacia(cpu_X[30], cpu_env, cpu_X[30],
- new_tmp_a64_zero(s));
+ tcg_constant_i64(0));
}
break;
case 0b11001: /* PACIASP */
@@ -1543,7 +1538,7 @@ static void handle_hint(DisasContext *s, uint32_t insn,
case 0b11010: /* PACIBZ */
if (s->pauth_active) {
gen_helper_pacib(cpu_X[30], cpu_env, cpu_X[30],
- new_tmp_a64_zero(s));
+ tcg_constant_i64(0));
}
break;
case 0b11011: /* PACIBSP */
@@ -1554,7 +1549,7 @@ static void handle_hint(DisasContext *s, uint32_t insn,
case 0b11100: /* AUTIAZ */
if (s->pauth_active) {
gen_helper_autia(cpu_X[30], cpu_env, cpu_X[30],
- new_tmp_a64_zero(s));
+ tcg_constant_i64(0));
}
break;
case 0b11101: /* AUTIASP */
@@ -1565,7 +1560,7 @@ static void handle_hint(DisasContext *s, uint32_t insn,
case 0b11110: /* AUTIBZ */
if (s->pauth_active) {
gen_helper_autib(cpu_X[30], cpu_env, cpu_X[30],
- new_tmp_a64_zero(s));
+ tcg_constant_i64(0));
}
break;
case 0b11111: /* AUTIBSP */
@@ -2285,7 +2280,7 @@ static void disas_uncond_b_reg(DisasContext *s, uint32_t
insn)
if (op4 != 0x1f) {
goto do_unallocated;
}
- modifier = new_tmp_a64_zero(s);
+ modifier = tcg_constant_i64(0);
}
if (s->pauth_active) {
dst = tcg_temp_new_i64();
@@ -3550,10 +3545,10 @@ static void disas_ldst_pac(DisasContext *s, uint32_t
insn,
if (s->pauth_active) {
if (use_key_a) {
gen_helper_autda(dirty_addr, cpu_env, dirty_addr,
- new_tmp_a64_zero(s));
+ tcg_constant_i64(0));
} else {
gen_helper_autdb(dirty_addr, cpu_env, dirty_addr,
- new_tmp_a64_zero(s));
+ tcg_constant_i64(0));
}
}
@@ -5628,7 +5623,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_pacia(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_pacia(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x09): /* PACIZB */
@@ -5636,7 +5631,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_pacib(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_pacib(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x0a): /* PACDZA */
@@ -5644,7 +5639,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_pacda(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_pacda(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x0b): /* PACDZB */
@@ -5652,7 +5647,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_pacdb(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_pacdb(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x0c): /* AUTIZA */
@@ -5660,7 +5655,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_autia(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_autia(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x0d): /* AUTIZB */
@@ -5668,7 +5663,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_autib(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_autib(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x0e): /* AUTDZA */
@@ -5676,7 +5671,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_autda(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_autda(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x0f): /* AUTDZB */
@@ -5684,7 +5679,7 @@ static void disas_data_proc_1src(DisasContext *s,
uint32_t insn)
goto do_unallocated;
} else if (s->pauth_active) {
tcg_rd = cpu_reg(s, rd);
- gen_helper_autdb(tcg_rd, cpu_env, tcg_rd, new_tmp_a64_zero(s));
+ gen_helper_autdb(tcg_rd, cpu_env, tcg_rd, tcg_constant_i64(0));
}
break;
case MAP(1, 0x01, 0x10): /* XPACI */
--
2.34.1
- [PATCH v2 01/76] tcg: Remove tcg_check_temp_count, tcg_clear_temp_count, (continued)
- [PATCH v2 01/76] tcg: Remove tcg_check_temp_count, tcg_clear_temp_count, Richard Henderson, 2023/02/27
- [PATCH v2 04/76] target/arm: Remove arm_free_cc, a64_free_cc, Richard Henderson, 2023/02/27
- [PATCH v2 02/76] accel/tcg: Remove translator_loop_temp_check, Richard Henderson, 2023/02/27
- [PATCH v2 05/76] target/arm: Remove value_global from DisasCompare, Richard Henderson, 2023/02/27
- [PATCH v2 06/76] target/arm: Drop tcg_temp_free from translator.c, Richard Henderson, 2023/02/27
- [PATCH v2 03/76] target/alpha: Drop tcg_temp_free, Richard Henderson, 2023/02/27
- [PATCH v2 08/76] target/arm: Drop new_tmp_a64, Richard Henderson, 2023/02/27
- [PATCH v2 07/76] target/arm: Drop DisasContext.tmp_a64, Richard Henderson, 2023/02/27
- [PATCH v2 10/76] target/arm: Drop tcg_temp_free from translator-a64.c, Richard Henderson, 2023/02/27
- [PATCH v2 12/76] target/arm: Drop tcg_temp_free from translator-mve.c, Richard Henderson, 2023/02/27
- [PATCH v2 09/76] target/arm: Drop new_tmp_a64_zero,
Richard Henderson <=
- [PATCH v2 11/76] target/arm: Drop tcg_temp_free from translator-m-nocp.c, Richard Henderson, 2023/02/27
- [PATCH v2 13/76] target/arm: Drop tcg_temp_free from translator-neon.c, Richard Henderson, 2023/02/27
- [PATCH v2 14/76] target/arm: Drop tcg_temp_free from translator-sme.c, Richard Henderson, 2023/02/27
- [PATCH v2 16/76] target/arm: Drop tcg_temp_free from translator-vfp.c, Richard Henderson, 2023/02/27
- [PATCH v2 15/76] target/arm: Drop tcg_temp_free from translator-sve.c, Richard Henderson, 2023/02/27
- [PATCH v2 20/76] target/avr: Drop tcg_temp_free, Richard Henderson, 2023/02/27
- [PATCH v2 17/76] target/arm: Drop tcg_temp_free from translator.h, Richard Henderson, 2023/02/27
- [PATCH v2 21/76] target/cris: Drop cris_alu_free_temps, Richard Henderson, 2023/02/27
- [PATCH v2 18/76] target/avr: Drop DisasContext.free_skip_var0, Richard Henderson, 2023/02/27
- [PATCH v2 25/76] target/hexagon: Drop tcg_temp_free from C code, Richard Henderson, 2023/02/27