[9] RFR(S): 8075324: Costs of memory operands in aarch64.ad are inconsistent (original) (raw)
Andrew Haley aph at redhat.com
Tue Mar 17 15:37:51 UTC 2015
- Previous message: [9] RFR(S): 8075324: Costs of memory operands in aarch64.ad are inconsistent
- Next message: [9] RFR(S): 8075324: Costs of memory operands in aarch64.ad are inconsistent
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 03/17/2015 03:15 PM, Andrew Dinn wrote:
If you take look at the static methods named loadStore defined in the source block you can see how this instruction will actually be generated. PrintAssembly will reveal that it gets translated as follows
add R8, R10, #16 ldrsbw R0, [R8, R1 sxtw]
Note that this is faster than ...
add R8, R10, R1 sxtw
ldrsbw R0, [R8, #16]
... because sign-extending adds are "free" in address arithmetic but not in regular arithmetic. Why? Answers on a postcard...
Therefore, the costs of these two forms shouldn't be equal. I think we have this correct at present.
Andrew.
- Previous message: [9] RFR(S): 8075324: Costs of memory operands in aarch64.ad are inconsistent
- Next message: [9] RFR(S): 8075324: Costs of memory operands in aarch64.ad are inconsistent
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list