[PATCH v3 00/26] target/i386: pc-relative translation blocks

Richard Henderson posted 26 patches 1 year, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221001140935.465607-1-richard.henderson@linaro.org
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>
target/i386/cpu-param.h      |   4 +
target/i386/helper.h         |   2 +-
target/i386/tcg/seg_helper.c |   6 +-
target/i386/tcg/tcg-cpu.c    |   8 +-
target/i386/tcg/translate.c  | 830 ++++++++++++++++++-----------------
5 files changed, 448 insertions(+), 402 deletions(-)
[PATCH v3 00/26] target/i386: pc-relative translation blocks
Posted by Richard Henderson 1 year, 6 months ago
This is the x86 specific changes required to reduce the
amount of translation for address space randomization.
For v3, quite a few changes based on Paolo's feedback.


r~

Based-on: 20220930212622.108363-1-richard.henderson@linaro.org
("[PATCH v6 00/18] tcg: CPUTLBEntryFull and TARGET_TB_PCREL")


Richard Henderson (26):
  target/i386: Remove pc_start
  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, repz, jecxz insns
  target/i386: Use gen_jmp_rel for gen_jcc
  target/i386: Use gen_jmp_rel for DISAS_TOO_MANY
  target/i386: Remove MemOp argument to gen_op_j*_ecx
  target/i386: Merge gen_jmp_tb and gen_goto_tb into gen_jmp_rel
  target/i386: Create eip_cur_tl
  target/i386: Add cpu_eip
  target/i386: Inline gen_jmp_im
  target/i386: Enable TARGET_TB_PCREL

 target/i386/cpu-param.h      |   4 +
 target/i386/helper.h         |   2 +-
 target/i386/tcg/seg_helper.c |   6 +-
 target/i386/tcg/tcg-cpu.c    |   8 +-
 target/i386/tcg/translate.c  | 830 ++++++++++++++++++-----------------
 5 files changed, 448 insertions(+), 402 deletions(-)

-- 
2.34.1
Re: [PATCH v3 00/26] target/i386: pc-relative translation blocks
Posted by Paolo Bonzini 1 year, 6 months ago
Il sab 1 ott 2022, 16:09 Richard Henderson <richard.henderson@linaro.org>
ha scritto:

> This is the x86 specific changes required to reduce the
> amount of translation for address space randomization.
> For v3, quite a few changes based on Paolo's feedback.
>

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>


>
> r~
>
> Based-on: 20220930212622.108363-1-richard.henderson@linaro.org
> ("[PATCH v6 00/18] tcg: CPUTLBEntryFull and TARGET_TB_PCREL")
>
>
> Richard Henderson (26):
>   target/i386: Remove pc_start
>   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, repz, jecxz insns
>   target/i386: Use gen_jmp_rel for gen_jcc
>   target/i386: Use gen_jmp_rel for DISAS_TOO_MANY
>   target/i386: Remove MemOp argument to gen_op_j*_ecx
>   target/i386: Merge gen_jmp_tb and gen_goto_tb into gen_jmp_rel
>   target/i386: Create eip_cur_tl
>   target/i386: Add cpu_eip
>   target/i386: Inline gen_jmp_im
>   target/i386: Enable TARGET_TB_PCREL
>
>  target/i386/cpu-param.h      |   4 +
>  target/i386/helper.h         |   2 +-
>  target/i386/tcg/seg_helper.c |   6 +-
>  target/i386/tcg/tcg-cpu.c    |   8 +-
>  target/i386/tcg/translate.c  | 830 ++++++++++++++++++-----------------
>  5 files changed, 448 insertions(+), 402 deletions(-)
>
> --
> 2.34.1
>
>
Re: [PATCH v3 00/26] target/i386: pc-relative translation blocks
Posted by Richard Henderson 1 year, 6 months ago
On 10/1/22 13:59, Paolo Bonzini wrote:
> 
> 
> Il sab 1 ott 2022, 16:09 Richard Henderson <richard.henderson@linaro.org 
> <mailto:richard.henderson@linaro.org>> ha scritto:
> 
>     This is the x86 specific changes required to reduce the
>     amount of translation for address space randomization.
>     For v3, quite a few changes based on Paolo's feedback.
> 
> 
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com <mailto:pbonzini@redhat.com>>
> 
> 
> 
>     r~
> 
>     Based-on: 20220930212622.108363-1-richard.henderson@linaro.org
>     <mailto:20220930212622.108363-1-richard.henderson@linaro.org>
>     ("[PATCH v6 00/18] tcg: CPUTLBEntryFull and TARGET_TB_PCREL")

Thanks.  FYI, yhe Based-on dependency is now upstream.


r~
Re: [PATCH v3 00/26] target/i386: pc-relative translation blocks
Posted by Paolo Bonzini 1 year, 6 months ago
Great, then if you want I can merge this myself.

Paolo

Il mer 5 ott 2022, 16:26 Richard Henderson <richard.henderson@linaro.org>
ha scritto:

> On 10/1/22 13:59, Paolo Bonzini wrote:
> >
> >
> > Il sab 1 ott 2022, 16:09 Richard Henderson <richard.henderson@linaro.org
> > <mailto:richard.henderson@linaro.org>> ha scritto:
> >
> >     This is the x86 specific changes required to reduce the
> >     amount of translation for address space randomization.
> >     For v3, quite a few changes based on Paolo's feedback.
> >
> >
> > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com <mailto:
> pbonzini@redhat.com>>
> >
> >
> >
> >     r~
> >
> >     Based-on: 20220930212622.108363-1-richard.henderson@linaro.org
> >     <mailto:20220930212622.108363-1-richard.henderson@linaro.org>
> >     ("[PATCH v6 00/18] tcg: CPUTLBEntryFull and TARGET_TB_PCREL")
>
> Thanks.  FYI, yhe Based-on dependency is now upstream.
>
>
> r~
>
>
Re: [PATCH v3 00/26] target/i386: pc-relative translation blocks
Posted by Richard Henderson 1 year, 6 months ago
On 10/5/22 14:06, Paolo Bonzini wrote:
> Great, then if you want I can merge this myself.

Yes, please.


r~