[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 20/28] target-xtensa: implement windowed registers
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [RFC 20/28] target-xtensa: implement windowed registers |
Date: |
Wed, 04 May 2011 13:30:58 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Thunderbird/3.1.10 |
On 05/04/2011 01:13 PM, Blue Swirl wrote:
>> Sparc loses out on some TCG optimizations because of that, although
>> to be fair the most effective of these are still in Aurlien's trees.
>
> Interesting. Which optimizations? What trees? How would you implement
> the register windows then?
Constant propagation for one. This one in particular would allow the
tcg backend to see full constants, rather than seeing the constant
being built up from risc instructions.
git://git.aurel32.net/qemu.git tcg-optimizations
I have previously built on this to streamline the code generated for
target load/store operations. We currently always force the address
into a register and do the arithmetic on that. If we have the full
constant for the address, we can push the parts of that constant into
the TLB load etc.
git://repo.or.cz/qemu/rth.git tcg-const-addr-1
As for how to implement the register windows...
I'm not 100% sure. The easiest way is indeed to copy values to and
fro a consolidated register file, as Max is doing here. I've also
experimented briefly with extending TCG to handle "indirect" registers.
Where the register values are consistent as far as the TCG optimizers
are concerned, but when it comes time to expand the code, we perform
the indirect read, just as you currently expand by hand ahead of time.
I never got either solution totally working for sparc.
r~
- Re: [Qemu-devel] [RFC 18/28] target-xtensa: implement exceptions, (continued)
[Qemu-devel] [RFC 19/28] target-xtensa: implement RST2 group (32 bit mul/div/rem), Max Filippov, 2011/05/03
[Qemu-devel] [RFC 20/28] target-xtensa: implement windowed registers, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 21/28] target-xtensa: implement loop option, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 22/28] target-xtensa: implement extended L32R, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 23/28] target-xtensa: implement unaligned exception option, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 24/28] target-xtensa: implement SIMCALL, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 25/28] target-xtensa: implement interrupt option, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 26/28] target-xtensa: implement accurate window check, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 27/28] target-xtensa: implement CPENABLE and PRID SRs, Max Filippov, 2011/05/03
[Qemu-devel] [RFC 28/28] target-xtensa: implement relocatable vectors, Max Filippov, 2011/05/03