Here's a RFC series for eliminating AREG0. Blue Swirl (11): Move user emulator stuff from cpu-exec.c to user-exec.c Delete unused tb_invalidate_page_range
The above should be OK to commit. cpu_loop_exit: avoid using AREG0 Delegate setup of TCG temporaries to targets These two are not, unless the overall plan is OK. TCG: fix negative frame offset calculations TCG/x86: use stack for TCG temps TCG/Sparc64: use stack for TCG temps But these three should be OK. I've tested lightly x86_64 and Sparc64 hosts. Add CONFIG_TARGET_NEEDS_AREG0 Don't compile legacy qemu_ld/st functions if target doesn't need them Should be OK, though the latter patch only touches x86. Add new qemu_ld and qemu_st functions sparc: use new qemu_ld and qemu_st functions The last two compile but QEMU segfaults. I just made a naive conversion for getting comments. Makefile.target | 14 +- configure | 6 + cpu-exec.c | 647 +---------------------------------------- dyngen-exec.h | 2 + exec-all.h | 3 +- hw/alpha_palcode.c | 2 +- linux-user/main.c | 22 +-- target-alpha/op_helper.c | 4 +- target-arm/op_helper.c | 6 +- target-cris/op_helper.c | 4 +- target-i386/op_helper.c | 16 +- target-lm32/op_helper.c | 6 +- target-m68k/op_helper.c | 6 +- target-microblaze/op_helper.c | 4 +- target-mips/op_helper.c | 4 +- target-ppc/op_helper.c | 3 +- target-sh4/op_helper.c | 10 +- target-sparc/helper.h | 1 - target-sparc/op_helper.c | 12 +- target-sparc/translate.c | 5 +- target-unicore32/op_helper.c | 2 +- tcg/arm/tcg-target.c | 2 + tcg/arm/tcg-target.h | 4 + tcg/hppa/tcg-target.c | 2 + tcg/hppa/tcg-target.h | 4 + tcg/i386/tcg-target.c | 62 +++-- tcg/i386/tcg-target.h | 4 + tcg/ia64/tcg-target.c | 2 + tcg/ia64/tcg-target.h | 4 + tcg/mips/tcg-target.c | 2 + tcg/mips/tcg-target.h | 4 + tcg/ppc/tcg-target.c | 2 + tcg/ppc/tcg-target.h | 4 + tcg/ppc64/tcg-target.c | 2 + tcg/ppc64/tcg-target.h | 4 + tcg/s390/tcg-target.c | 2 + tcg/s390/tcg-target.h | 4 + tcg/sparc/tcg-target.c | 5 +- tcg/sparc/tcg-target.h | 4 + tcg/tcg-op.h | 49 +++ tcg/tcg-opc.h | 3 + tcg/tcg.c | 12 +- translate-all.c | 2 - user-exec.c | 645 ++++++++++++++++++++++++++++++++++++++++ 44 files changed, 866 insertions(+), 741 deletions(-) create mode 100644 user-exec.c