Changes from v1: * Frame pointer backtrace linkage retained. Not that gdb seems to use this at all; the tcg_register_jit patch is still required in order to get a proper backtrace. * Several patches re-ordered in order to reduce churn. Especially the qemu_ld/st related patches. * Avoid using ADRP for 32-bit values. It would be exceedingly rare to save an instruction for this case. * Don't merge tcg_out_movr{,_sp} with their callers.
I believe I've incorporated all of Claudio's feedback from v1. r~ Richard Henderson (26): tcg-aarch64: Properly detect SIGSEGV writes tcg-aarch64: Use intptr_t apropriately tcg-aarch64: Use TCGType and TCGMemOp constants tcg-aarch64: Use MOVN in tcg_out_movi tcg-aarch64: Use ORRI in tcg_out_movi tcg-aarch64: Special case small constants in tcg_out_movi tcg-aarch64: Use adrp in tcg_out_movi tcg-aarch64: Use symbolic names for branches tcg-aarch64: Create tcg_out_brcond tcg-aarch64: Use CBZ and CBNZ tcg-aarch64: Reuse LR in translated code tcg-aarch64: Introduce tcg_out_insn_3314 tcg-aarch64: Implement tcg_register_jit tcg-aarch64: Avoid add with zero in tlb load tcg-aarch64: Use tcg_out_call for qemu_ld/st tcg-aarch64: Use ADR to pass the return address to the ld/st helpers tcg-aarch64: Use TCGMemOp in qemu_ld/st tcg-aarch64: Pass qemu_ld/st arguments directly tcg-aarch64: Implement TCG_TARGET_HAS_new_ldst tcg-aarch64: Support stores of zero tcg-aarch64: Introduce tcg_out_insn_3507 tcg-aarch64: Merge aarch64_ldst_get_data/type into tcg_out_op tcg-aarch64: Replace aarch64_ldst_op_data with TCGMemOp tcg-aarch64: Replace aarch64_ldst_op_data with AArch64LdstType tcg-aarch64: Prefer unsigned offsets before signed offsets for ldst tcg-aarch64: Use tcg_out_mov in preference to tcg_out_movr tcg/aarch64/tcg-target.c | 1076 ++++++++++++++++++++++++---------------------- tcg/aarch64/tcg-target.h | 34 +- user-exec.c | 29 +- 3 files changed, 593 insertions(+), 546 deletions(-) -- 1.9.0