[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 20/20] target/i386: Use X86Seg enum for segment registers
From: |
Paolo Bonzini |
Subject: |
[PULL 20/20] target/i386: Use X86Seg enum for segment registers |
Date: |
Tue, 12 Jan 2021 18:14:50 +0100 |
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
Use the dedicated X86Seg enum type for segment registers.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210109233427.749748-1-f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/cpu.h | 4 ++--
target/i386/gdbstub.c | 2 +-
target/i386/tcg/seg_helper.c | 8 ++++----
target/i386/tcg/translate.c | 6 +++---
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index af130512e2..d23a5b340a 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1807,7 +1807,7 @@ void cpu_sync_bndcs_hflags(CPUX86State *env);
/* this function must always be used to load data in the segment
cache: it synchronizes the hflags with the segment cache values */
static inline void cpu_x86_load_seg_cache(CPUX86State *env,
- int seg_reg, unsigned int selector,
+ X86Seg seg_reg, unsigned int
selector,
target_ulong base,
unsigned int limit,
unsigned int flags)
@@ -1896,7 +1896,7 @@ int cpu_x86_get_descr_debug(CPUX86State *env, unsigned
int selector,
/* cpu-exec.c */
/* the following helpers are only usable in user mode simulation as
they can trigger unexpected exceptions */
-void cpu_x86_load_seg(CPUX86State *s, int seg_reg, int selector);
+void cpu_x86_load_seg(CPUX86State *s, X86Seg seg_reg, int selector);
void cpu_x86_fsave(CPUX86State *s, target_ulong ptr, int data32);
void cpu_x86_frstor(CPUX86State *s, target_ulong ptr, int data32);
void cpu_x86_fxsave(CPUX86State *s, target_ulong ptr);
diff --git a/target/i386/gdbstub.c b/target/i386/gdbstub.c
index 4a3de5f69d..41e265fc67 100644
--- a/target/i386/gdbstub.c
+++ b/target/i386/gdbstub.c
@@ -232,7 +232,7 @@ int x86_cpu_gdb_read_register(CPUState *cs, GByteArray
*mem_buf, int n)
return 0;
}
-static int x86_cpu_gdb_load_seg(X86CPU *cpu, int sreg, uint8_t *mem_buf)
+static int x86_cpu_gdb_load_seg(X86CPU *cpu, X86Seg sreg, uint8_t *mem_buf)
{
CPUX86State *env = &cpu->env;
uint16_t selector = ldl_p(mem_buf);
diff --git a/target/i386/tcg/seg_helper.c b/target/i386/tcg/seg_helper.c
index 5f2ee6aa7e..180d47f0e9 100644
--- a/target/i386/tcg/seg_helper.c
+++ b/target/i386/tcg/seg_helper.c
@@ -176,8 +176,8 @@ static inline void get_ss_esp_from_tss(CPUX86State *env,
uint32_t *ss_ptr,
}
}
-static void tss_load_seg(CPUX86State *env, int seg_reg, int selector, int cpl,
- uintptr_t retaddr)
+static void tss_load_seg(CPUX86State *env, X86Seg seg_reg, int selector,
+ int cpl, uintptr_t retaddr)
{
uint32_t e1, e2;
int rpl, dpl;
@@ -2098,7 +2098,7 @@ void helper_iret_real(CPUX86State *env, int shift)
env->hflags2 &= ~HF2_NMI_MASK;
}
-static inline void validate_seg(CPUX86State *env, int seg_reg, int cpl)
+static inline void validate_seg(CPUX86State *env, X86Seg seg_reg, int cpl)
{
int dpl;
uint32_t e2;
@@ -2623,7 +2623,7 @@ void helper_verw(CPUX86State *env, target_ulong selector1)
}
#if defined(CONFIG_USER_ONLY)
-void cpu_x86_load_seg(CPUX86State *env, int seg_reg, int selector)
+void cpu_x86_load_seg(CPUX86State *env, X86Seg seg_reg, int selector)
{
if (!(env->cr[0] & CR0_PE_MASK) || (env->eflags & VM_MASK)) {
int dpl = (env->eflags & VM_MASK) ? 3 : 0;
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index 11db2f3c8d..6a4c31f933 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -2287,13 +2287,13 @@ static void gen_cmovcc1(CPUX86State *env, DisasContext
*s, MemOp ot, int b,
}
}
-static inline void gen_op_movl_T0_seg(DisasContext *s, int seg_reg)
+static inline void gen_op_movl_T0_seg(DisasContext *s, X86Seg seg_reg)
{
tcg_gen_ld32u_tl(s->T0, cpu_env,
offsetof(CPUX86State,segs[seg_reg].selector));
}
-static inline void gen_op_movl_seg_T0_vm(DisasContext *s, int seg_reg)
+static inline void gen_op_movl_seg_T0_vm(DisasContext *s, X86Seg seg_reg)
{
tcg_gen_ext16u_tl(s->T0, s->T0);
tcg_gen_st32_tl(s->T0, cpu_env,
@@ -2303,7 +2303,7 @@ static inline void gen_op_movl_seg_T0_vm(DisasContext *s,
int seg_reg)
/* move T0 to seg_reg and compute if the CPU state may change. Never
call this function with seg_reg == R_CS */
-static void gen_movl_seg_T0(DisasContext *s, int seg_reg)
+static void gen_movl_seg_T0(DisasContext *s, X86Seg seg_reg)
{
if (s->pe && !s->vm86) {
tcg_gen_trunc_tl_i32(s->tmp2_i32, s->T0);
--
2.29.2
- [PULL 00/20] Misc patches for 2021-01-12, Paolo Bonzini, 2021/01/12
- [PULL 01/20] meson: do not use CONFIG_VIRTFS, Paolo Bonzini, 2021/01/12
- [PULL 07/20] whpx: move whpx_lapic_state from header to c file, Paolo Bonzini, 2021/01/12
- [PULL 02/20] whpx: rename whp-dispatch to whpx-internal.h, Paolo Bonzini, 2021/01/12
- [PULL 06/20] maintainers: Add me as Windows Hosted Continuous Integration maintainer, Paolo Bonzini, 2021/01/12
- [PULL 04/20] cirrus/msys2: Exit powershell with $LastExitCode, Paolo Bonzini, 2021/01/12
- [PULL 03/20] whpx: move internal definitions to whpx-internal.h, Paolo Bonzini, 2021/01/12
- [PULL 18/20] configure: move Cocoa incompatibility checks to Meson, Paolo Bonzini, 2021/01/12
- [PULL 20/20] target/i386: Use X86Seg enum for segment registers,
Paolo Bonzini <=
- [PULL 05/20] cirrus/msys2: Cache msys2 mingw in a better way., Paolo Bonzini, 2021/01/12
- [PULL 09/20] scripts/gdb: fix 'qemu coroutine' when users selects a non topmost stack frame, Paolo Bonzini, 2021/01/12
- [PULL 08/20] meson: fix Cocoa option in summary, Paolo Bonzini, 2021/01/12
- [PULL 10/20] scripts/gdb: implement 'qemu bt', Paolo Bonzini, 2021/01/12
- [PULL 11/20] Docs/RCU: Correct sample code of qatomic_rcu_set, Paolo Bonzini, 2021/01/12
- [PULL 14/20] cocoa: do not enable coreaudio automatically, Paolo Bonzini, 2021/01/12
- [PULL 12/20] meson: Propagate gnutls dependency, Paolo Bonzini, 2021/01/12
- [PULL 13/20] virtio-scsi: trace events, Paolo Bonzini, 2021/01/12
- [PULL 15/20] gtk: remove CONFIG_GTK_GL, Paolo Bonzini, 2021/01/12
- [PULL 16/20] configure: move X11 detection to Meson, Paolo Bonzini, 2021/01/12