[aarch64-port-dev ] RFR(S): 8204353 - AARCH64: optimize FPU load and stores in macroAssembler
Dmitrij Pochepko
dmitrij.pochepko at bell-sw.com
Wed Jun 6 13:43:38 UTC 2018
On 06.06.2018 15:37, Andrew Haley wrote:
> On 06/06/2018 01:30 PM, Dmitrij Pochepko wrote:
>> You can take a look here:
>> http://hg.openjdk.java.net/jdk/jdk/file/tip/src/hotspot/cpu/aarch64/assembler_aarch64.hpp#l2068
>> As you can see, switch by a.getMode() has 3 cases:
>>
>> 1) "base_plus_offset" (expecting only 0 offset. This is for "base
>> register, no offset" ld/st addressing mode
>> 2) "post"- this if for immediate post-index mode
>> 3) "base_plus_offset_reg" which is treated further as register
>> post-index mode.
> Well, yes, but I can't see that being [ab]used anywhere in the existing
> source.
>
>> I'll create separate issue and patch, which will add new address mode
>> (something like: "post_reg"). And final syntax for such mode usage will
>> be ... Address(post(<reg1>, <reg2>)), which makes it more readable.
> Yes. And please disallow the use of Address(reg, reg) while you're doing
> that.
>
>> After that I'll update this fpu ld/st optimization patch accordingly.
> OK.
>
Please take a look at webrev.02:
http://cr.openjdk.java.net/~dpochepk/8204353/webrev.02/
The only change is to match changes in JDK-8204473 - AARCH64: register
post-index addressing mode is not supported directly
2 entries of "Address(sp, rscratch1)" is now "Address(post(sp, rscratch1))"
I relaunched hotspot jtreg compiler tests as sanity with both patches.
No new failures found.
Thanks,
Dmitrij
More information about the aarch64-port-dev
mailing list