From: Richard Henderson <richard.henderson@linaro.org>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [PATCH 17/22] target/i386: extract gen_far_call/jmp, reordering temporaries
Date: Fri, 29 Dec 2023 09:25:17 +1100 [thread overview]
Message-ID: <5294c676-706e-492d-b46a-e62d87a4fb5c@linaro.org> (raw)
In-Reply-To: <20231222181603.174137-18-pbonzini@redhat.com>
On 12/23/23 05:15, Paolo Bonzini wrote:
> Extract the code into new functions, and swap T0/T1 so that T0 corresponds
> to the first immediate in the instruction stream.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> target/i386/tcg/translate.c | 90 ++++++++++++++++++++-----------------
> 1 file changed, 50 insertions(+), 40 deletions(-)
>
> diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
> index e5f71170967..edbad0ad746 100644
> --- a/target/i386/tcg/translate.c
> +++ b/target/i386/tcg/translate.c
> @@ -2525,12 +2525,12 @@ static inline void gen_op_movl_T0_seg(DisasContext *s, X86Seg seg_reg)
> offsetof(CPUX86State,segs[seg_reg].selector));
> }
>
> -static inline void gen_op_movl_seg_T0_vm(DisasContext *s, X86Seg seg_reg)
> +static inline void gen_op_movl_seg_real(DisasContext *s, X86Seg seg_reg, TCGv seg)
In general, you probably want to drop inline markers as you come across them, and just let
the compiler inline as it chooses.
> {
> - tcg_gen_ext16u_tl(s->T0, s->T0);
> - tcg_gen_st32_tl(s->T0, tcg_env,
> + tcg_gen_ext16u_tl(seg, seg);
While cleaning, maybe better to not silently modify the input?
> +static void gen_far_call(DisasContext *s)
> +{
> + if (PE(s) && !VM86(s)) {
> + tcg_gen_trunc_tl_i32(s->tmp2_i32, s->T1);
> + gen_helper_lcall_protected(tcg_env, s->tmp2_i32, s->T0,
> + tcg_constant_i32(s->dflag - 1),
> + eip_next_tl(s));
> + } else {
> + tcg_gen_trunc_tl_i32(s->tmp3_i32, s->T1);
> + tcg_gen_trunc_tl_i32(s->tmp2_i32, s->T0);
New temps?
> + gen_helper_lcall_real(tcg_env, s->tmp3_i32, s->tmp2_i32,
> + tcg_constant_i32(s->dflag - 1),
> + eip_next_i32(s));
> + }
> + s->base.is_jmp = DISAS_JUMP;
> +}
> +
> +static void gen_far_jmp(DisasContext *s)
> +{
> + if (PE(s) && !VM86(s)) {
> + tcg_gen_trunc_tl_i32(s->tmp2_i32, s->T1);
Likewise.
Otherwise,
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
next prev parent reply other threads:[~2023-12-28 22:26 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-22 18:15 [PATCH 00/22] target/i386: first part of TCG changes for 9.0 Paolo Bonzini
2023-12-22 18:15 ` [PATCH 01/22] target/i386: optimize computation of JL and JLE from flags Paolo Bonzini
2023-12-28 20:53 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 02/22] target/i386: speedup JO/SETO after MUL or IMUL Paolo Bonzini
2023-12-28 20:56 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 03/22] target/i386: remove unnecessary arguments from raise_interrupt Paolo Bonzini
2023-12-28 20:58 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 04/22] target/i386: remove unnecessary truncations Paolo Bonzini
2023-12-28 21:13 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 05/22] target/i386: clean up cpu_cc_compute_all Paolo Bonzini
2023-12-28 21:27 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 06/22] target/i386: document more deviations from the manual Paolo Bonzini
2023-12-28 21:34 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 07/22] target/i386: reimplement check for validity of LOCK prefix Paolo Bonzini
2023-12-28 21:55 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 08/22] target/i386: avoid trunc and ext for MULX and RORX Paolo Bonzini
2023-12-28 21:50 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 09/22] target/i386: rename zext0/zext2 and make them closer to the manual Paolo Bonzini
2023-12-28 22:04 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 10/22] target/i386: add X86_SPECIALs for MOVSX and MOVZX Paolo Bonzini
2023-12-28 22:08 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 11/22] target/i386: do not decode string source/destination into decode->mem Paolo Bonzini
2023-12-28 22:09 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 12/22] target/i386: do not clobber A0 in POP translation Paolo Bonzini
2023-12-22 18:15 ` [PATCH 13/22] target/i386: do not clobber T0 on string operations Paolo Bonzini
2023-12-28 22:11 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 14/22] target/i386: split eflags computation out of gen_compute_eflags Paolo Bonzini
2023-12-28 22:13 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 15/22] target/i386: do not use s->tmp4 for push Paolo Bonzini
2023-12-28 22:14 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 16/22] target/i386: do not use s->tmp0 for jumps on ECX ==/!= 0 Paolo Bonzini
2023-12-28 22:15 ` Richard Henderson
2023-12-22 18:15 ` [PATCH 17/22] target/i386: extract gen_far_call/jmp, reordering temporaries Paolo Bonzini
2023-12-28 22:25 ` Richard Henderson [this message]
2023-12-22 18:15 ` [PATCH 18/22] target/i386: prepare for implementation of STOS/SCAS in new decoder Paolo Bonzini
2023-12-28 22:27 ` Richard Henderson
2023-12-22 18:16 ` [PATCH 19/22] target/i386: move operand load and writeback out of gen_cmovcc1 Paolo Bonzini
2023-12-28 22:29 ` Richard Henderson
2023-12-22 18:16 ` [PATCH 20/22] target/i386: adjust decoding of J operand Paolo Bonzini
2023-12-22 18:16 ` [PATCH 21/22] target/i386: introduce flags writeback mechanism Paolo Bonzini
2023-12-28 22:46 ` Richard Henderson
2023-12-22 18:16 ` [PATCH 22/22] target/i386: implement CMPccXADD Paolo Bonzini
2023-12-28 23:04 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5294c676-706e-492d-b46a-e62d87a4fb5c@linaro.org \
--to=richard.henderson@linaro.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).