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