The ppc32 backend isn't getting much love and attention recently, with all of the improvements coming from me into the ppc64 backend. Let's reduce the maint burden a bit and combine them.
This does have a few other patches that are not strictly related to the merge of the backends, such as addition of ELFv2 support, but I think those come naturally at the point we're merging the two other ABIs from the 32-bit port. I've tested this as thouroghly as I can on a Power7 host, both ppc64 and ppc32 editions. Though of course even with the 32-bit abi a power7 host will execute 64-bit instructions. Which means if anyone has access to a proper 32-bit ppc system, I'd be grateful if you could verify I haven't missed any necessary conditionalization. Tom Musta gave me a Tested-by for v2 on an ELFv2 system; it might be worth re-doing that just in case. Full tree at git://github.com/rth7680/qemu.git tcg-ppc-merge-1 Changes v1-v2: * mulsh_i32 typo fixed (Uli) * ppc32 qemu_st_i64 bug fixed * ppc64 boot problem Tom reported by a generic tcg optimization fix Changes v2-v3: * Rebased, * Dropped patch 26, Streamline USE_DIRECT_JUMP. This seems to have some timing/flushing issues on 32-bit which I don't have time to understand at the moment. r~ Richard Henderson (24): tcg-ppc: Use uintptr_t in ppc_tb_set_jmp_target tcg-ppc64: Avoid some hard-codings of TCG_TYPE_I64 tcg-ppc64: Move functions around tcg-ppc64: Relax register restrictions in tcg_out_mem_long tcg-ppc64: Use tcg_out_{ld,st,cmp} internally tcg-ppc64: Make TCG_AREG0 and TCG_REG_CALL_STACK enum constants tcg-ppc64: Move call macros out of tcg-target.h tcg-ppc64: Fix TCG_TARGET_CALL_STACK_OFFSET tcg-ppc64: Better parameterize the stack frame tcg-ppc64: Use the correct test in tcg_out_call tcg-ppc64: Support the ppc64 elfv2 ABI tcg-ppc64: Merge 32-bit ABIs into the prologue / frame code tcg-ppc64: Fix sub2 implementation tcg-ppc64: Begin merging ppc32 with ppc64 tcg-ppc64: Merge ppc32 brcond2, setcond2, muluh tcg-ppc64: Merge ppc32 qemu_ld/st tcg-ppc64: Merge ppc32 register usage tcg-ppc64: Support mulsh_i32 tcg-ppc64: Merge ppc32 shifts tcg-ppc: Remove the backend tcg-ppc: Rename the tcg/ppc64 backend qemu/osdep: Remove the need for qemu_init_auxval tcg-ppc: Merge cache-utils into the backend tcg-ppc: Use the return address as a base pointer Ulrich Weigand (1): tcg-ppc64: Adjust tcg_out_call for ELFv2 configure | 2 + exec.c | 1 - include/exec/exec-all.h | 2 +- include/qemu/cache-utils.h | 44 - include/qemu/osdep.h | 12 - linux-user/main.c | 4 - tcg/ppc/tcg-target.c | 3174 +++++++++++++++++++++++++++----------------- tcg/ppc/tcg-target.h | 114 +- tcg/ppc64/tcg-target.c | 2186 ------------------------------ tcg/ppc64/tcg-target.h | 131 -- tcg/tcg.c | 1 - util/Makefile.objs | 2 +- util/cache-utils.c | 86 -- util/getauxval.c | 51 +- vl.c | 4 - 15 files changed, 2080 insertions(+), 3734 deletions(-) delete mode 100644 include/qemu/cache-utils.h delete mode 100644 tcg/ppc64/tcg-target.c delete mode 100644 tcg/ppc64/tcg-target.h delete mode 100644 util/cache-utils.c -- 1.9.3