[PATCH 00/22] target/i386: pc-relative translation

Richard Henderson posted 22 patches 1 year, 8 months ago
Failed in applying to current master (apply log)
target/i386/cpu-param.h      |   1 +
target/i386/helper.h         |   2 +-
target/i386/tcg/seg_helper.c |   6 +-
target/i386/tcg/tcg-cpu.c    |   8 +-
target/i386/tcg/translate.c  | 710 ++++++++++++++++++-----------------
5 files changed, 365 insertions(+), 362 deletions(-)
[PATCH 00/22] target/i386: pc-relative translation
Posted by Richard Henderson 1 year, 8 months ago
Based-on: <20220822232338.1727934-1-richard.henderson@linaro.org>
("[PATCH v3 00/17] accel/tcg + target/arm: pc-relative translation")

Improve translation with address space randomization.

Before:

gen code size       232687283/1073577984
TB count            434021
TB flush count      1
TB invalidate count 478996

After:

gen code size       281614723/1073577984
TB count            527520
TB flush count      0
TB invalidate count 125631

                                      before    after
BootLinuxX8664.test_pc_i440fx_tcg:     63.79    56.01
BootLinuxX8664.test_pc_q35_tcg:        69.11    50.00
JOB TIME                              595.51   533.57


r~


Richard Henderson (22):
  target/i386: Return bool from disas_insn
  target/i386: Remove cur_eip argument to gen_exception
  target/i386: Remove cur_eip, next_eip arguments to gen_interrupt
  target/i386: Create gen_update_eip_cur
  target/i386: Create gen_update_eip_next
  target/i386: Introduce DISAS_EOB*
  target/i386: Use DISAS_EOB* in gen_movl_seg_T0
  target/i386: Use DISAS_EOB_NEXT
  target/i386: USe DISAS_EOB_ONLY
  target/i386: Create cur_insn_len, cur_insn_len_i32
  target/i386: Remove cur_eip, next_eip arguments to gen_repz*
  target/i386: Introduce DISAS_JUMP
  target/i386: Truncate values for lcall_real to i32
  target/i386: Create eip_next_*
  target/i386: Use DISAS_TOO_MANY to exit after gen_io_start
  target/i386: Create gen_jmp_rel
  target/i386: Use gen_jmp_rel for loop and jecxz insns
  target/i386: Use gen_jmp_rel for gen_jcc
  target/i386: Use gen_jmp_rel for gen_repz*
  target/i386: Use gen_jmp_rel for DISAS_TOO_MANY
  target/i386: Create gen_eip_cur
  target/i386: Enable TARGET_TB_PCREL

 target/i386/cpu-param.h      |   1 +
 target/i386/helper.h         |   2 +-
 target/i386/tcg/seg_helper.c |   6 +-
 target/i386/tcg/tcg-cpu.c    |   8 +-
 target/i386/tcg/translate.c  | 710 ++++++++++++++++++-----------------
 5 files changed, 365 insertions(+), 362 deletions(-)

-- 
2.34.1