Changes v2-v3: * Patch 16 is an important bug fix. For helpers with more than 4 arguments, we were clobbering the register save area. The patch as written is difficult to disentangle from the rest of the series, but I think that a similar patch should be written for stable.
I have no idea how we aren't just seeing crashes everywhere without this. * The softmmu code is improved, using a tidier insn schedule and making use of the out-of-line ldst feature. * Always use blx for calls when we have movw+movt. BLX is predicted as a call wrt the branch prediction stack, where a ldr into the pc isn't. At least as documented for the A9. r~ Richard Henderson (20): tcg-arm: Use bic to implement and with constant tcg-arm: Handle negated constant arguments to and/sub tcg-arm: Allow constant first argument to sub tcg-arm: Use tcg_out_dat_rIN for compares tcg-arm: Handle constant arguments to add2/sub2 tcg-arm: Improve constant generation tcg-arm: Fold epilogue into INDEX_op_exit_tb tcg-arm: Implement deposit for armv7 tcg-arm: Implement division instructions tcg-arm: Use TCG_REG_TMP name for the tcg temporary tcg-arm: Use R12 for the tcg temporary tcg-arm: Cleanup multiply subroutines tcg-arm: Cleanup tcg_out_goto_label tcg-arm: Cleanup goto_tb handling tcg-arm: Cleanup most primitive load store subroutines tcg-arm: Fix local stack frame tcg-arm: Split out tcg_out_tlb_read tcg-arm: Improve scheduling of tcg_out_tlb_read tcg-arm: Use movi32 + blx for calls on v7 tcg-arm: Convert to CONFIG_QEMU_LDST_OPTIMIZATION configure | 2 +- disas/arm.c | 4 + include/exec/exec-all.h | 40 +- tcg/arm/tcg-target.c | 1506 ++++++++++++++++++++++++++--------------------- tcg/arm/tcg-target.h | 14 +- translate-all.c | 2 - 6 files changed, 869 insertions(+), 699 deletions(-) -- 1.8.1.4