Changes v2-v3: * Make more use, where appropriate, of normal pointer arithmetic under the new type. In particular, if the target previously computed (label - code_ptr) >> 2 using byte arithmetic, we can now arrange for this to be just
label - code_ptr with the shift added by the compiler. Given that technically a right shift of a negative value is implementation defined (may the death of catering to one's compliment machine come soon), having the compiler do this is going to eliminate one more stupid warning from some sanitizer. * Finish conversion of all tcg backends. r~ Peter Maydell (3): exec-all.h: Use stl_p to avoid undefined behaviour patching x86 jumps tcg: Avoid stores to unaligned addresses tcg: Avoid undefined behaviour patching code at unaligned addresses Richard Henderson (13): tcg: Introduce byte pointer arithmetic helpers tcg: Define tcg_insn_unit for code pointers tcg-i386: Define TCG_TARGET_INSN_UNIT_SIZE tcg-ppc64: Define TCG_TARGET_INSN_UNIT_SIZE tcg-ppc: Define TCG_TARGET_INSN_UNIT_SIZE tcg-sparc: Define TCG_TARGET_INSN_UNIT_SIZE tcg-arm: Define TCG_TARGET_INSN_UNIT_SIZE tcg-aarch64: Define TCG_TARGET_INSN_UNIT_SIZE tcg-s390: Define TCG_TARGET_INSN_UNIT_SIZE tcg-ia64: Define TCG_TARGET_INSN_UNIT_SIZE tcg-mips: Define TCG_TARGET_INSN_UNIT_SIZE tci: Define TCG_TARGET_INSN_UNIT_SIZE tcg: Require TCG_TARGET_INSN_UNIT_SIZE include/exec/exec-all.h | 4 +- tcg/aarch64/tcg-target.c | 121 ++++++++++++-------------- tcg/aarch64/tcg-target.h | 1 + tcg/arm/tcg-target.c | 150 ++++++++++++-------------------- tcg/arm/tcg-target.h | 1 + tcg/i386/tcg-target.c | 60 ++++++------- tcg/i386/tcg-target.h | 2 + tcg/ia64/tcg-target.c | 217 ++++++++++++++++------------------------------- tcg/ia64/tcg-target.h | 6 ++ tcg/mips/tcg-target.c | 116 ++++++++----------------- tcg/mips/tcg-target.h | 1 + tcg/ppc/tcg-target.c | 195 ++++++++++++++++++++---------------------- tcg/ppc/tcg-target.h | 1 + tcg/ppc64/tcg-target.c | 164 +++++++++++++++++------------------ tcg/ppc64/tcg-target.h | 1 + tcg/s390/tcg-target.c | 91 ++++++++++---------- tcg/s390/tcg-target.h | 2 + tcg/sparc/tcg-target.c | 128 +++++++++++++--------------- tcg/sparc/tcg-target.h | 1 + tcg/tcg-be-ldst.h | 4 +- tcg/tcg.c | 110 +++++++++++++++++------- tcg/tcg.h | 83 ++++++++++++++++-- tcg/tci/tcg-target.c | 19 +++-- tcg/tci/tcg-target.h | 1 + translate-all.c | 13 ++- 25 files changed, 714 insertions(+), 778 deletions(-) -- 1.9.0