This patch set is far from complete, and is more of an RFC, but it contains at least one example of each of the 4-5 steps in the conversion.
Step 1 is the most complete, as it's largely a search-and-replace step on the tcg backends. The enumeration values of TCGMemOp match the current integer values, with the exception of the addition of BSWAP=8. Therefore in some places in the patches I do more masking than previous, to get rid of that bswap bit. I at least cross-compiled to all but 3 of the tcg backends, but since the demise of a portion of the gcc compile farm I'm no longer able to test hppa, mips, sparc. And for those, downloading the proper cross environment turned out to be tricky -- curse our new external library dependencies. After that, I've only converted the i386 backend, and the ppc frontend, to the new opcodes. I'm able to boot the fedora 19 ppc64 installer, and a browse of the dumps are encouraging. r~ Richard Henderson (16): tcg: Add TCGMemOp tcg-i386: Use TCGMemOp within qemu_ldst routines tcg-aarch64: Use TCGMemOp within qemu_ldst routines tcg-arm: Use TCGMemOp within qemu_ldst routines tcg-s390: Use TCGMemOp within qemu_ldst routines tcg-ppc: Use TCGMemOp within qemu_ldst routines tcg-ppc64: Use TCGMemOp within qemu_ldst routines tcg-hppa: Use TCGMemOp within qemu_ldst routines tcg-mips: Use TCGMemOp within qemu_ldst routines tcg-sparc: Use TCGMemOp within qemu_ldst routines tcg: Add qemu_ld_st_i32/64 exec: Add both big- and little-endian memory helpers tcg-i386: Tidy softmmu routines tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 tcg-i386: Support new ldst opcodes target-ppc: Convert to new ldst opcodes include/exec/softmmu_template.h | 286 +++++++++++++++-- target-ppc/translate.c | 147 +++------ tcg/README | 43 ++- tcg/aarch64/tcg-target.c | 126 ++++---- tcg/aarch64/tcg-target.h | 2 + tcg/arm/tcg-target.c | 125 ++++---- tcg/arm/tcg-target.h | 2 + tcg/hppa/tcg-target.c | 110 +++---- tcg/hppa/tcg-target.h | 2 + tcg/i386/tcg-target.c | 695 ++++++++++++++++++---------------------- tcg/i386/tcg-target.h | 2 + tcg/ia64/tcg-target.h | 2 + tcg/mips/tcg-target.c | 116 +++---- tcg/mips/tcg-target.h | 2 + tcg/ppc/tcg-target.c | 93 +++--- tcg/ppc/tcg-target.h | 2 + tcg/ppc64/tcg-target.c | 82 ++--- tcg/ppc64/tcg-target.h | 2 + tcg/s390/tcg-target.c | 107 +++---- tcg/s390/tcg-target.h | 2 + tcg/sparc/tcg-target.c | 116 ++++--- tcg/sparc/tcg-target.h | 2 + tcg/tcg-op.h | 239 ++++---------- tcg/tcg-opc.h | 96 ++++-- tcg/tcg.c | 209 ++++++++++++ tcg/tcg.h | 124 +++++-- tcg/tci/tcg-target.h | 2 + 27 files changed, 1500 insertions(+), 1236 deletions(-) -- 1.8.1.4