[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 1/6] target/ppc: introduce get_fpr() and set
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [RFC PATCH 1/6] target/ppc: introduce get_fpr() and set_fpr() helpers for FP register access |
Date: |
Mon, 10 Dec 2018 12:25:26 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 |
On 12/9/18 11:17 PM, David Gibson wrote:
> On Fri, Dec 07, 2018 at 08:56:30AM +0000, Mark Cave-Ayland wrote:
>> These helpers allow us to move FP register values to/from the specified
>> TCGv_i64
>> argument.
>>
>> To prevent FP helpers accessing the cpu_fpr array directly, add extra TCG
>> temporaries as required.
>
> It's not obvious to me why that's a desirable thing. I'm assuming
> it's somehow necessary for the stuff later in the series, but I think
> we need a brief rationale here to explain why this isn't just adding
> extra reg copies for the sake of it.
Note that while this introduces extra opcodes, in many cases it does not change
the number of machine instructions that are generated. Recall that accessing
cpu_fpr[N] implies a load from env. This change makes the load explicit.
The change does currently prevent caching cpu_fpr[N] in a host register. That
can and will be fixed by optimizing on memory operations instead. (There is a
patch that has been outstanding for 13 months to do this. I intend to finally
get around to merging it during the 4.0 cycle.)
r~