Commit 92fc4b58 authored by Blue Swirl's avatar Blue Swirl
Browse files

x86: switch to AREG0 free mode



Add an explicit CPUX86State parameter instead of relying on AREG0.

Remove temporary wrappers and switch to AREG0 free mode.

Signed-off-by: default avatarBlue Swirl <blauwirbel@gmail.com>
parent 2999a0b2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3778,7 +3778,7 @@ symlink "$source_path/Makefile.target" "$target_dir/Makefile"


case "$target_arch2" in
  alpha | or32 | sparc* | xtensa* | ppc*)
  alpha | i386 | or32 | sparc* | x86_64 | xtensa* | ppc*)
    echo "CONFIG_TCG_PASS_AREG0=y" >> $config_target_mak
  ;;
esac
+22 −0
Original line number Diff line number Diff line
@@ -274,6 +274,28 @@ extern unsigned long reserved_va;
#define cpu_ldsw_code(env1, p) ldsw_raw(p)
#define cpu_ldl_code(env1, p) ldl_raw(p)
#define cpu_ldq_code(env1, p) ldq_raw(p)

#define cpu_ldub_data(env, addr) ldub_raw(addr)
#define cpu_lduw_data(env, addr) lduw_raw(addr)
#define cpu_ldsw_data(env, addr) ldsw_raw(addr)
#define cpu_ldl_data(env, addr) ldl_raw(addr)
#define cpu_ldq_data(env, addr) ldq_raw(addr)

#define cpu_stb_data(env, addr, data) stb_raw(addr, data)
#define cpu_stw_data(env, addr, data) stw_raw(addr, data)
#define cpu_stl_data(env, addr, data) stl_raw(addr, data)
#define cpu_stq_data(env, addr, data) stq_raw(addr, data)

#define cpu_ldub_kernel(env, addr) ldub_raw(addr)
#define cpu_lduw_kernel(env, addr) lduw_raw(addr)
#define cpu_ldsw_kernel(env, addr) ldsw_raw(addr)
#define cpu_ldl_kernel(env, addr) ldl_raw(addr)
#define cpu_ldq_kernel(env, addr) ldq_raw(addr)

#define cpu_stb_kernel(env, addr, data) stb_raw(addr, data)
#define cpu_stw_kernel(env, addr, data) stw_raw(addr, data)
#define cpu_stl_kernel(env, addr, data) stl_raw(addr, data)
#define cpu_stq_kernel(env, addr, data) stq_raw(addr, data)
#endif

#define ldub_kernel(p) ldub_raw(p)
+0 −2
Original line number Diff line number Diff line
@@ -6,5 +6,3 @@ obj-$(CONFIG_KVM) += kvm.o hyperv.o
obj-$(CONFIG_NO_KVM) += kvm-stub.o
obj-$(CONFIG_LINUX_USER) += ioport-user.o
obj-$(CONFIG_BSD_USER) += ioport-user.o

$(obj)/mem_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
+0 −21
Original line number Diff line number Diff line
@@ -1138,25 +1138,4 @@ void do_smm_enter(CPUX86State *env1);

void cpu_report_tpr_access(CPUX86State *env, TPRAccess access);

/* temporary wrappers */
uint32_t cpu_ldub_data(CPUX86State *env, target_ulong ptr);
uint32_t cpu_lduw_data(CPUX86State *env, target_ulong ptr);
uint32_t cpu_ldl_data(CPUX86State *env, target_ulong ptr);
uint64_t cpu_ldq_data(CPUX86State *env, target_ulong ptr);

void cpu_stb_data(CPUX86State *env, target_ulong ptr, uint32_t data);
void cpu_stw_data(CPUX86State *env, target_ulong ptr, uint32_t data);
void cpu_stl_data(CPUX86State *env, target_ulong ptr, uint32_t data);
void cpu_stq_data(CPUX86State *env, target_ulong ptr, uint64_t data);

uint32_t cpu_ldub_kernel(CPUX86State *env, target_ulong ptr);
uint32_t cpu_lduw_kernel(CPUX86State *env, target_ulong ptr);
uint32_t cpu_ldl_kernel(CPUX86State *env, target_ulong ptr);
uint64_t cpu_ldq_kernel(CPUX86State *env, target_ulong ptr);

void cpu_stb_kernel(CPUX86State *env, target_ulong ptr, uint32_t data);
void cpu_stw_kernel(CPUX86State *env, target_ulong ptr, uint32_t data);
void cpu_stl_kernel(CPUX86State *env, target_ulong ptr, uint32_t data);
void cpu_stq_kernel(CPUX86State *env, target_ulong ptr, uint64_t data);

#endif /* CPU_I386_H */
+4 −0
Original line number Diff line number Diff line
@@ -21,6 +21,10 @@
#include "cpu.h"
#include "helper.h"

#if !defined(CONFIG_USER_ONLY)
#include "softmmu_exec.h"
#endif /* !defined(CONFIG_USER_ONLY) */

#define FPU_RC_MASK         0xc00
#define FPU_RC_NEAR         0x000
#define FPU_RC_DOWN         0x400
Loading