[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/22] target/i386: pc-relative translation
From: |
Richard Henderson |
Subject: |
[PATCH 00/22] target/i386: pc-relative translation |
Date: |
Mon, 22 Aug 2022 16:32:56 -0700 |
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
- [PATCH 00/22] target/i386: pc-relative translation,
Richard Henderson <=
- [PATCH 01/22] target/i386: Return bool from disas_insn, Richard Henderson, 2022/08/22
- [PATCH 03/22] target/i386: Remove cur_eip, next_eip arguments to gen_interrupt, Richard Henderson, 2022/08/22
- [PATCH 02/22] target/i386: Remove cur_eip argument to gen_exception, Richard Henderson, 2022/08/22
- [PATCH 04/22] target/i386: Create gen_update_eip_cur, Richard Henderson, 2022/08/22
- [PATCH 05/22] target/i386: Create gen_update_eip_next, Richard Henderson, 2022/08/22
- [PATCH 06/22] target/i386: Introduce DISAS_EOB*, Richard Henderson, 2022/08/22
- [PATCH 07/22] target/i386: Use DISAS_EOB* in gen_movl_seg_T0, Richard Henderson, 2022/08/22
- [PATCH 08/22] target/i386: Use DISAS_EOB_NEXT, Richard Henderson, 2022/08/22
- [PATCH 10/22] target/i386: Create cur_insn_len, cur_insn_len_i32, Richard Henderson, 2022/08/22
- [PATCH 09/22] target/i386: USe DISAS_EOB_ONLY, Richard Henderson, 2022/08/22