[aarch64-port-dev ] RFR(S) 8248660: AArch64: JDK-Windows: Make _clear_cache and _nop portable

Monica Beckwith Monica.Beckwith at microsoft.com
Mon Aug 3 22:29:50 UTC 2020

Hi all, could I please get a review for the following webrev? I had previously sent this out for feedback and Kim had provided feedback on the usual way to handle such changes: https://mail.openjdk.java.net/pipermail/aarch64-port-dev/2020-July/009272.html 

I have made the needful changes and ran them through JTREG for linux-aarch64, windows-aarch64, windows-x86-64, and linux-x86-64.

Webrev: http://cr.openjdk.java.net/~mbeckwit/8248660/webrev.01/ 
JBS: https://bugs.openjdk.java.net/browse/JDK-8248660   

I wanted to highlight a small change that I made: 

- For void __builtin___clear_cache (void *begin, void *end); the `begin` is inclusive, and `end` is exclusive [1].
- Hence for icache_linux_aarch64.hpp’s invalidate_word(), I changed the end to `addr + 4` which previously was `addr + 3`. So it now reads: 
__builtin___clear_cache((char *)addr, (char *)(addr + 4));

Although there is forced instruction alignment on Arm64, I still felt I should correct the "victimless crime" (as one of our kernel experts puts it. ��)


[1]: https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html

More information about the aarch64-port-dev mailing list