qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/2] target-arm: inline abs, 64-bit negate
@ 2012-10-19 13:06 Peter Maydell
  2012-10-19 13:06 ` [Qemu-devel] [PATCH v2 1/2] target-arm: Use TCG operation for Neon 64 bit negation Peter Maydell
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Peter Maydell @ 2012-10-19 13:06 UTC (permalink / raw)
  To: qemu-devel; +Cc: patches

Two minor patches which inline some operations rather than using helper
functions. The 64 bit negate is a no-brainer since there's a simple
TCG op for it. For abs we implement in terms of movcond:
 movi_i32 tmp6,$0x0
 neg_i32 tmp7,tmp5
 movcond_i32 tmp5,tmp5,tmp6,tmp5,tmp7,gt
which the x86-64 backend turns into:
 0x603b53a7:  mov    %ebp,%ebx
 0x603b53a9:  neg    %ebx
 0x603b53ab:  mov    %ebp,%r12d
 0x603b53ae:  test   %ebp,%ebp
 0x603b53b0:  cmovle %ebx,%r12d

Not sure why it felt the need to use an extra move there, but
for ARM this isn't in a particularly performance critical bit
of the instruction set (it's a Neon operation) so I'm not too
worried.

(A fully native TCG abs op would be able to use the fact that
neg sets flags to avoid the test as well.)

Changes v1->v2:
 drop debug printf from patch 2 (thanks to malc for spotting that)

Peter Maydell (2):
  target-arm: Use TCG operation for Neon 64 bit negation
  target-arm: Implement abs_i32 inline rather than as a helper

 target-arm/helper.c      |    5 -----
 target-arm/helper.h      |    2 --
 target-arm/neon_helper.c |    6 ------
 target-arm/translate.c   |   15 ++++++++++++---
 4 files changed, 12 insertions(+), 16 deletions(-)

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-10-19 22:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-19 13:06 [Qemu-devel] [PATCH v2 0/2] target-arm: inline abs, 64-bit negate Peter Maydell
2012-10-19 13:06 ` [Qemu-devel] [PATCH v2 1/2] target-arm: Use TCG operation for Neon 64 bit negation Peter Maydell
2012-10-19 22:05   ` Aurelien Jarno
2012-10-19 13:06 ` [Qemu-devel] [PATCH v2 2/2] target-arm: Implement abs_i32 inline rather than as a helper Peter Maydell
2012-10-19 22:05   ` Aurelien Jarno
2012-10-19 22:05 ` [Qemu-devel] [PATCH v2 0/2] target-arm: inline abs, 64-bit negate Aurelien Jarno

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).