From: Richard Henderson <rth@twiddle.net>
To: Aurelien Jarno <aurelien@aurel32.net>
Cc: Laurent Desnogues <laurent.desnogues@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] tcg conditional set/move, round 3
Date: Sat, 19 Dec 2009 08:19:32 -0800 [thread overview]
Message-ID: <4B2CFD14.3000206@twiddle.net> (raw)
In-Reply-To: <20091219130346.GN24729@hall.aurel32.net>
On 12/19/2009 05:03 AM, Aurelien Jarno wrote:
> - For the movcond instruction, is there a real use for vtrue and vfalse
> values? Most CPU actually implement a version with one value.
> Implementing it with two values moves complexity within the arch
> specific tcg code.
The reason I added both is that rather than force TCG to insert extra
moves in order to always match VFALSE with DEST, I could have the
backend invert the condition if VTRUE happened to match DEST already.
I suppose it would be possible to tweek the TCG register allocator to
understand such commutative operations. That seemed harder, but perhaps
it really isn't considering that inversion code has to be replicated
across all the targets. It's certainly something to think about.
> - Do we really want to make movcond mandatory? It can be easily
> implemented using setcond, and, or instructions.
I think so. In that every host does have something useful to emit
that's better than the generic fallback, and we'll quickly have
implementations for each.
> - I am not sure using xor and followed by setcc *conditionally* instead
> of a movzb after setcc is a good idea. The two instructions are
> supposed to be executed at the same speed, and time spent in code
> generation is not negligeable.
I can certainly remove that bit if you insist.
> - Pay attention to the coding style, there are a few cases of if
> without {}.
Ok. I try to remember, but it's at odds with my usual style, so please
understand momentary lapses.
> A final comment, would it be possible to split setcond and movcond in
> different patches? setcond looks ready to go, there are probably some
> more concerns/comments about movcond.
Ok.
r~
next prev parent reply other threads:[~2009-12-19 16:19 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <761ea48b0912170620l534dcb02m8ea6b59524d76dbe@mail.gmail.com>
2009-12-17 19:32 ` [Qemu-devel] [PATCH 0/6] tcg conditional set/move, round 2 Richard Henderson
2009-12-17 17:27 ` [Qemu-devel] [PATCH 1/6] tcg: Generic support for conditional set and conditional move Richard Henderson
2009-12-17 20:50 ` malc
2009-12-18 11:38 ` [Qemu-devel] " Laurent Desnogues
2009-12-17 17:28 ` [Qemu-devel] [PATCH 2/6] tcg: Add tcg_invert_cond Richard Henderson
2009-12-18 11:39 ` [Qemu-devel] " Laurent Desnogues
2009-12-17 17:32 ` [Qemu-devel] [PATCH 3/6] tcg-x86_64: Implement setcond and movcond Richard Henderson
2009-12-18 11:39 ` [Qemu-devel] " Laurent Desnogues
2009-12-18 17:11 ` Richard Henderson
2009-12-18 17:41 ` Laurent Desnogues
2009-12-17 17:55 ` [Qemu-devel] [PATCH 4/6] tcg-i386: Implement small forward branches Richard Henderson
2009-12-18 11:39 ` [Qemu-devel] " Laurent Desnogues
2009-12-18 17:16 ` Richard Henderson
2009-12-17 18:38 ` [Qemu-devel] [PATCH 5/6] tcg-i386: Simplify brcond2 Richard Henderson
2009-12-18 11:40 ` [Qemu-devel] " Laurent Desnogues
2009-12-18 17:45 ` Richard Henderson
2009-12-17 19:08 ` [Qemu-devel] [PATCH 6/6] tcg-i386: Implement setcond, movcond, setcond2 Richard Henderson
2009-12-18 11:37 ` [Qemu-devel] Re: [PATCH 0/6] tcg conditional set/move, round 2 Laurent Desnogues
2009-12-18 21:38 ` [Qemu-devel] tcg conditional set/move, round 3 Richard Henderson
2009-12-19 11:40 ` [Qemu-devel] " Laurent Desnogues
2009-12-19 16:09 ` Richard Henderson
2009-12-19 12:09 ` [Qemu-devel] " Andreas Färber
2009-12-19 13:03 ` Aurelien Jarno
2009-12-19 13:32 ` Aurelien Jarno
2009-12-19 16:19 ` Richard Henderson [this message]
2009-12-19 23:02 ` Aurelien Jarno
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=4B2CFD14.3000206@twiddle.net \
--to=rth@twiddle.net \
--cc=aurelien@aurel32.net \
--cc=laurent.desnogues@gmail.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).