From: James Hogan <james.hogan@imgtec.com>
To: Richard Henderson <rth@twiddle.net>
Cc: Leon Alrae <leon.alrae@imgtec.com>,
qemu-devel@nongnu.org, Aurelien Jarno <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PATCH v3 6/6] tcg/mips: Support r6 SEL{NE, EQ}Z instead of MOVN/MOVZ
Date: Wed, 7 Oct 2015 11:34:40 +0100 [thread overview]
Message-ID: <20151007103440.GF29862@jhogan-linux.le.imgtec.org> (raw)
In-Reply-To: <5614E9F6.8060102@twiddle.net>
[-- Attachment #1: Type: text/plain, Size: 1924 bytes --]
On Wed, Oct 07, 2015 at 08:46:30PM +1100, Richard Henderson wrote:
> On 10/02/2015 10:24 PM, James Hogan wrote:
> > Extend MIPS movcond implementation to support the SELNEZ/SELEQZ
> > instructions introduced in MIPS r6 (where MOVN/MOVZ have been removed).
> >
> > Whereas the "MOVN/MOVZ rd, rs, rt" instructions have the following
> > semantics:
> > rd = [!]rt ? rs : rd
> >
> > The "SELNEZ/SELEQZ rd, rs, rt" instructions are slightly different:
> > rd = [!]rt ? rs : 0
> >
> > First we ensure that if one of the movcond input values is zero that it
> > comes last (we can swap the input arguments if we invert the condition).
> > This is so that it can exactly match one of the SELNEZ/SELEQZ
> > instructions and avoid the need to emit the other one.
> >
> > Otherwise we emit the opposite instruction first into a temporary
> > register, and OR that into the result:
> > SELNEZ/SELEQZ TMP1, v2, c1
> > SELEQZ/SELNEZ ret, v1, c1
> > OR ret, ret, TMP1
> >
> > Which does the following:
> > ret = cond ? v1 : v2
> >
> > Signed-off-by: James Hogan<james.hogan@imgtec.com>
> > Cc: Richard Henderson<rth@twiddle.net>
> > Cc: Aurelien Jarno<aurelien@aurel32.net>
>
> Reviewed-by: Richard Henderson <rth@twiddle.net>
Thanks for the reviewing!
>
>
> > { INDEX_op_brcond_i32, { "rZ", "rZ" } },
> > +#if !use_mips32r6_instructions
> > { INDEX_op_movcond_i32, { "r", "rZ", "rZ", "rZ", "0" } },
> > +#else
> > + { INDEX_op_movcond_i32, { "r", "rZ", "rZ", "rZ", "rZ" } },
> > +#endif
>
>
> The only thing I'd change is preferring positive tests to negative ones. So
> swap the order of these lines, and the sense of the #if.
No problem. Shall I do a full resend for that, or can it be fixed up by
whoever applies?
Cheers
James
>
> Leon, do you want to take this as a mips maintainer, or shall I as tcg maintainer?
>
>
> r~
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2015-10-07 10:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-02 12:24 [Qemu-devel] [PATCH v3 0/6] tcg/mips: Minimal R6 support James Hogan
2015-10-02 12:24 ` [Qemu-devel] [PATCH v3 1/6] tcg-opc.h: Simplify debug_insn_start def James Hogan
2015-10-08 16:12 ` Aurelien Jarno
2015-10-02 12:24 ` [Qemu-devel] [PATCH v3 2/6] disas/mips: Add R6 jr/jr.hb to disassembler James Hogan
2015-10-08 16:12 ` Aurelien Jarno
2015-10-02 12:24 ` [Qemu-devel] [PATCH v3 3/6] tcg/mips: Add use_mips32r6_instructions definition James Hogan
2015-10-08 16:12 ` Aurelien Jarno
2015-10-02 12:24 ` [Qemu-devel] [PATCH v3 4/6] tcg/mips: Support r6 JR encoding James Hogan
2015-10-08 16:15 ` Aurelien Jarno
2015-10-02 12:24 ` [Qemu-devel] [PATCH v3 5/6] tcg/mips: Support r6 multiply/divide encodings James Hogan
2015-10-08 16:19 ` Aurelien Jarno
2015-10-02 12:24 ` [Qemu-devel] [PATCH v3 6/6] tcg/mips: Support r6 SEL{NE, EQ}Z instead of MOVN/MOVZ James Hogan
2015-10-07 9:46 ` Richard Henderson
2015-10-07 10:34 ` James Hogan [this message]
2015-10-07 19:54 ` Richard Henderson
2015-10-07 11:47 ` Leon Alrae
2015-10-08 16:32 ` Aurelien Jarno
2015-10-08 16:31 ` Aurelien Jarno
2015-10-09 21:26 ` James Hogan
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=20151007103440.GF29862@jhogan-linux.le.imgtec.org \
--to=james.hogan@imgtec.com \
--cc=aurelien@aurel32.net \
--cc=leon.alrae@imgtec.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.