LGTM, tested and working on iOS. -j
On Thu, Nov 5, 2020 at 7:29 PM Richard Henderson <richard.hender...@linaro.org> wrote: > > This is my take on Joelle's patch set: > https://lists.nongnu.org/archive/html/qemu-devel/2020-10/msg07837.html > > Changes for v3: > * Even more patches -- all tcg backends converted. > * Fixups for darwin/ios merged (Joelle). > * Feature renamed to splitwx (Paolo). > > > r~ > > > Richard Henderson (41): > tcg: Enhance flush_icache_range with separate data pointer > tcg: Move tcg prologue pointer out of TCGContext > tcg: Move tcg epilogue pointer out of TCGContext > tcg: Add in_code_gen_buffer > tcg: Introduce tcg_splitwx_to_{rx,rw} > tcg: Adjust TCGLabel for const > tcg: Adjust tcg_out_call for const > tcg: Adjust tcg_out_label for const > tcg: Adjust tcg_register_jit for const > tcg: Adjust tb_target_set_jmp_target for split-wx > tcg: Make DisasContextBase.tb const > tcg: Make tb arg to synchronize_from_tb const > tcg: Use Error with alloc_code_gen_buffer > tcg: Add --accel tcg,split-wx property > accel/tcg: Support split-wx for linux with memfd > accel/tcg: Support split-wx for darwin/iOS with vm_remap > tcg: Return the TB pointer from the rx region from exit_tb > tcg/i386: Support split-wx code generation > tcg/aarch64: Use B not BL for tcg_out_goto_long > tcg/aarch64: Implement flush_idcache_range manually > tcg/aarch64: Support split-wx code generation > disas: Push const down through host disasassembly > tcg/tci: Push const down through bytecode reading > tcg: Introduce tcg_tbrel_diff > tcg/ppc: Use tcg_tbrel_diff > tcg/ppc: Use tcg_out_mem_long to reset TCG_REG_TB > tcg/ppc: Support split-wx code generation > tcg/sparc: Use tcg_tbrel_diff > tcg/sparc: Support split-wx code generation > tcg/s390: Use tcg_tbrel_diff > tcg/s390: Support split-wx code generation > tcg/riscv: Fix branch range checks > tcg/riscv: Remove branch-over-branch fallback > tcg/riscv: Support split-wx code generation > accel/tcg: Add mips support to alloc_code_gen_buffer_splitwx_memfd > tcg/mips: Do not assert on relocation overflow > tcg/mips: Support split-wx code generation > tcg/arm: Support split-wx code generation > tcg: Remove TCG_TARGET_SUPPORT_MIRROR > tcg: Constify tcg_code_gen_epilogue > tcg: Constify TCGLabelQemuLdst.raddr > > accel/tcg/tcg-runtime.h | 2 +- > include/disas/dis-asm.h | 4 +- > include/disas/disas.h | 2 +- > include/exec/exec-all.h | 2 +- > include/exec/gen-icount.h | 4 +- > include/exec/log.h | 2 +- > include/exec/translator.h | 2 +- > include/hw/core/cpu.h | 3 +- > include/sysemu/tcg.h | 3 +- > include/tcg/tcg-op.h | 2 +- > include/tcg/tcg.h | 56 +++++-- > tcg/aarch64/tcg-target.h | 8 +- > tcg/arm/tcg-target.h | 10 +- > tcg/i386/tcg-target.h | 9 +- > tcg/mips/tcg-target.h | 10 +- > tcg/ppc/tcg-target.h | 4 +- > tcg/riscv/tcg-target.h | 10 +- > tcg/s390/tcg-target.h | 11 +- > tcg/sparc/tcg-target.h | 10 +- > tcg/tci/tcg-target.h | 11 +- > accel/tcg/cpu-exec.c | 41 +++-- > accel/tcg/tcg-all.c | 26 ++- > accel/tcg/tcg-runtime.c | 4 +- > accel/tcg/translate-all.c | 307 +++++++++++++++++++++++++++-------- > accel/tcg/translator.c | 4 +- > bsd-user/main.c | 2 +- > disas.c | 2 +- > disas/capstone.c | 2 +- > linux-user/main.c | 2 +- > softmmu/physmem.c | 9 +- > target/arm/cpu.c | 3 +- > target/arm/translate-a64.c | 2 +- > target/avr/cpu.c | 3 +- > target/hppa/cpu.c | 3 +- > target/i386/cpu.c | 3 +- > target/microblaze/cpu.c | 3 +- > target/mips/cpu.c | 3 +- > target/riscv/cpu.c | 3 +- > target/rx/cpu.c | 3 +- > target/sh4/cpu.c | 3 +- > target/sparc/cpu.c | 3 +- > target/tricore/cpu.c | 2 +- > tcg/tcg-op.c | 15 +- > tcg/tcg.c | 86 ++++++++-- > tcg/tci.c | 60 ++++--- > accel/tcg/trace-events | 2 +- > tcg/aarch64/tcg-target.c.inc | 139 ++++++++++++---- > tcg/arm/tcg-target.c.inc | 41 ++--- > tcg/i386/tcg-target.c.inc | 36 ++-- > tcg/mips/tcg-target.c.inc | 97 +++++------ > tcg/ppc/tcg-target.c.inc | 105 ++++++------ > tcg/riscv/tcg-target.c.inc | 125 +++++--------- > tcg/s390/tcg-target.c.inc | 91 +++++------ > tcg/sparc/tcg-target.c.inc | 58 +++---- > tcg/tcg-ldst.c.inc | 2 +- > tcg/tcg-pool.c.inc | 6 +- > tcg/tci/tcg-target.c.inc | 2 +- > 57 files changed, 917 insertions(+), 546 deletions(-) > > -- > 2.25.1 >