[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 11/18] tcg/arm: add bswap ops
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 11/18] tcg/arm: add bswap ops |
Date: |
Fri, 9 Apr 2010 19:11:32 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Fri, Apr 09, 2010 at 12:32:04AM +0100, Paul Brook wrote:
> > +static inline void tcg_out_bswap32(TCGContext *s, int cond, int rd, int rn)
> > +#else
> > + /* This code only uses one temporary register. There is probably
> > + a faster way to do that with more temporary registers. */
>
> You can do better even without a temporary:
>
> eor r8, rn, rn, ror #16
> bic r8, r8, #0x00ff0000
> mov rd, rn, ror #8
> eor rd, rd, r8, lsr #8
>
That's indeed much better, though it's still use one temporary (r8).
I'll use that in the next version. Thanks.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH 0/18] tcg/arm: cleanup and improvements, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 02/18] tcg/arm: explicitely list clobbered/reserved regs, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 01/18] tcg/arm: remove SAVE_LR code, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 05/18] tcg/arm: align 64-bit arguments in function calls, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 09/18] tcg/arm: add rotation ops, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 07/18] tcg/arm: sxtb and sxth are available starting with ARMv6, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 11/18] tcg/arm: add bswap ops, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 08/18] tcg/arm: use the blx instruction when possible, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 06/18] tcg/arm: add defines for the allowed instructions set, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 03/18] tcg/arm: remove store signed functions, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 04/18] tcg/arm: replace integer values by registers enum, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 18/18] tcg/arm: don't try to load constants using pc, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 13/18] tcg/arm: use ext* ops in qemu_ld, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 10/18] tcg/arm: add ext16u op, Aurelien Jarno, 2010/04/07
- [Qemu-devel] [PATCH 16/18] tcg/arm: fix argument alignment in qemu_st64, Aurelien Jarno, 2010/04/07