[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 04/26] target/i386: Remove cur_eip, next_eip arguments to gen_
From: |
Richard Henderson |
Subject: |
[PATCH v3 04/26] target/i386: Remove cur_eip, next_eip arguments to gen_interrupt |
Date: |
Sat, 1 Oct 2022 07:09:13 -0700 |
All callers pass s->base.pc_next and s->pc, which we can just as
well compute within the function. Adjust to use tcg_constant_i32
while we're at it.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/i386/tcg/translate.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index 617832fcb0..5a9c3b1e71 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -2627,13 +2627,12 @@ static void gen_unknown_opcode(CPUX86State *env,
DisasContext *s)
/* an interrupt is different from an exception because of the
privilege checks */
-static void gen_interrupt(DisasContext *s, int intno,
- target_ulong cur_eip, target_ulong next_eip)
+static void gen_interrupt(DisasContext *s, int intno)
{
gen_update_cc_op(s);
- gen_jmp_im(s, cur_eip);
- gen_helper_raise_interrupt(cpu_env, tcg_const_i32(intno),
- tcg_const_i32(next_eip - cur_eip));
+ gen_jmp_im(s, s->base.pc_next - s->cs_base);
+ gen_helper_raise_interrupt(cpu_env, tcg_constant_i32(intno),
+ tcg_constant_i32(s->pc - s->base.pc_next));
s->base.is_jmp = DISAS_NORETURN;
}
@@ -7342,12 +7341,12 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
}
break;
case 0xcc: /* int3 */
- gen_interrupt(s, EXCP03_INT3, s->base.pc_next - s->cs_base, s->pc -
s->cs_base);
+ gen_interrupt(s, EXCP03_INT3);
break;
case 0xcd: /* int N */
val = x86_ldub_code(env, s);
if (check_vm86_iopl(s)) {
- gen_interrupt(s, val, s->base.pc_next - s->cs_base, s->pc -
s->cs_base);
+ gen_interrupt(s, val);
}
break;
case 0xce: /* into */
--
2.34.1
- [PATCH v3 01/26] target/i386: Remove pc_start, (continued)
- [PATCH v3 01/26] target/i386: Remove pc_start, Richard Henderson, 2022/10/01
- [PATCH v3 07/26] target/i386: Introduce DISAS_EOB*, Richard Henderson, 2022/10/01
- [PATCH v3 08/26] target/i386: Use DISAS_EOB* in gen_movl_seg_T0, Richard Henderson, 2022/10/01
- [PATCH v3 05/26] target/i386: Create gen_update_eip_cur, Richard Henderson, 2022/10/01
- [PATCH v3 02/26] target/i386: Return bool from disas_insn, Richard Henderson, 2022/10/01
- [PATCH v3 09/26] target/i386: Use DISAS_EOB_NEXT, Richard Henderson, 2022/10/01
- [PATCH v3 10/26] target/i386: USe DISAS_EOB_ONLY, Richard Henderson, 2022/10/01
- [PATCH v3 06/26] target/i386: Create gen_update_eip_next, Richard Henderson, 2022/10/01
- [PATCH v3 03/26] target/i386: Remove cur_eip argument to gen_exception, Richard Henderson, 2022/10/01
- [PATCH v3 11/26] target/i386: Create cur_insn_len, cur_insn_len_i32, Richard Henderson, 2022/10/01
- [PATCH v3 04/26] target/i386: Remove cur_eip, next_eip arguments to gen_interrupt,
Richard Henderson <=
- [PATCH v3 12/26] target/i386: Remove cur_eip, next_eip arguments to gen_repz*, Richard Henderson, 2022/10/01
- [PATCH v3 13/26] target/i386: Introduce DISAS_JUMP, Richard Henderson, 2022/10/01
- [PATCH v3 14/26] target/i386: Truncate values for lcall_real to i32, Richard Henderson, 2022/10/01
- [PATCH v3 15/26] target/i386: Create eip_next_*, Richard Henderson, 2022/10/01
- [PATCH v3 16/26] target/i386: Use DISAS_TOO_MANY to exit after gen_io_start, Richard Henderson, 2022/10/01
- [PATCH v3 20/26] target/i386: Use gen_jmp_rel for DISAS_TOO_MANY, Richard Henderson, 2022/10/01
- [PATCH v3 17/26] target/i386: Create gen_jmp_rel, Richard Henderson, 2022/10/01
- [PATCH v3 21/26] target/i386: Remove MemOp argument to gen_op_j*_ecx, Richard Henderson, 2022/10/01
- [PATCH v3 19/26] target/i386: Use gen_jmp_rel for gen_jcc, Richard Henderson, 2022/10/01
- [PATCH v3 18/26] target/i386: Use gen_jmp_rel for loop, repz, jecxz insns, Richard Henderson, 2022/10/01