This is the S390 specific changes required to reduce the amount of translation for address space randomization.
Begin with some generic cleanups, then prepare by using displacements instead of addresses when possible, then add some tcg infrastructure to avoid a code gen ugly, then finalize the conversion. Changes for v2: * Incorporate feedback, including test cases. r~ Ilya Leoshkevich (4): tests/tcg/s390x: Add bal.S tests/tcg/s390x: Add sam.S target/s390x: Fix successful-branch PER events tests/tcg/s390x: Add per.S Richard Henderson (23): target/s390x: Use tcg_constant_* in local contexts target/s390x: Use tcg_constant_* for DisasCompare target/s390x: Use tcg_constant_i32 for fpinst_extract_m34 target/s390x: Use tcg_constant_* in translate_vx.c.inc target/s390x: Change help_goto_direct to work on displacements target/s390x: Introduce gen_psw_addr_disp target/s390x: Remove pc argument to pc_to_link_into target/s390x: Use gen_psw_addr_disp in pc_to_link_info target/s390x: Use gen_psw_addr_disp in save_link_info target/s390x: Use gen_psw_addr_disp in op_sam target/s390x: Use ilen instead in branches target/s390x: Assert masking of psw.addr in cpu_get_tb_cpu_state target/s390x: Add disp argument to update_psw_addr target/s390x: Don't set gbea for user-only target/s390x: Introduce per_enabled target/s390x: Disable conditional branch-to-next for PER target/s390x: Introduce help_goto_indirect target/s390x: Split per_branch target/s390x: Simplify help_branch target/s390x: Split per_breaking_event from per_branch_* target/s390x: Remove PER check from use_goto_tb target/s390x: Pass original r2 register to BCR target/s390x: Enable TARGET_TB_PCREL target/s390x/cpu-param.h | 1 + target/s390x/cpu.h | 20 +- target/s390x/tcg/insn-data.h.inc | 2 +- target/s390x/cpu.c | 12 + target/s390x/tcg/misc_helper.c | 1 + target/s390x/tcg/translate.c | 870 ++++++++++-------------- target/s390x/tcg/translate_vx.c.inc | 45 +- tests/tcg/s390x/Makefile.softmmu-target | 3 + tests/tcg/s390x/bal.S | 24 + tests/tcg/s390x/per.S | 55 ++ tests/tcg/s390x/sam.S | 67 ++ 11 files changed, 572 insertions(+), 528 deletions(-) create mode 100644 tests/tcg/s390x/bal.S create mode 100644 tests/tcg/s390x/per.S create mode 100644 tests/tcg/s390x/sam.S -- 2.34.1