RFR(M): 8234599: PPC64: Add support on recent CPUs and Linux for JEP-352
Gustavo Romero
gromero at linux.vnet.ibm.com
Wed Dec 18 15:45:36 UTC 2019
Hi Martin,
On 12/11/2019 01:55 PM, Doerr, Martin wrote:
> Hi Gustavo,
>
> thanks for implementing it. Unfortunately, we can't test it at the moment.
Thanks a lot for the review.
> I have a few change requests:
>
>
> macroAssembler_ppc.cpp
> I don't like silently emitting nothing in case !VM_Version::supports_data_cache_line_flush().
> If you want to check for it, I suggest to assert VM_Version::supports_data_cache_line_flush() and avoid generating the stub otherwise (stubGenerator_ppc).
Fixed.
>
> ppc.ad
> The predicates are redundant and should better get removed (useless evaluation).
oh ... Fixed.
> cacheWBPreSync could use cost 0 for clearity. (The costs don't have any effect because there is no choice for the matcher.)
Fixed.
> stubGenerator_ppc.cpp
> I think checking cmpwi(... is_presync, 1) is ok because the ABI specifies that "bool true" is one Byte with the value 1 and the C calling convention enforces extension to 8 Byte.
> I would have used andi_ + bne to be on the safe side, but I believe your version is ok.
I decided for the safe side as you suggested :)
> Comment "// post sync => emit 'lwsync'" is wrong. We use 'sync'.
Sorry, it was a "thinko" when placing the comment. Indeed, the comment is wrong
and the code is correct. Fixed.
I've also fixed the assert() compilation error on fastdebug accordingly to
Matthias' comments.
Finally I tweaked a bit the 'format' strings in ppc.add to show a better output
on +PrintAssembly. For instance, previously it would print something like:
090 B7: # out( B7 B8 ) <- in( B6 B7 ) Loop( B7-B7 inner ) Freq: 3.99733
090 MR R17, R15 // Long->Ptr
094 cache wb [R17]
for the cache writeback. Now:
094 cache writeback, address = [R17]
Please find v2 at:
http://cr.openjdk.java.net/~gromero/8234599/v2/
Best regards,
Gustavo
More information about the hotspot-compiler-dev
mailing list