[aarch64-port-dev ] RFR(XS): 8221995: AARCH64: problems with CAS instructions encoding
Dmitrij Pochepko
dmitrij.pochepko at bell-sw.com
Fri Apr 5 14:03:54 UTC 2019
Hi all,
please review small patch for JDK-8221995: AARCH64: problems with CAS
instructions encoding
webrev: http://cr.openjdk.java.net/~dpochepk/8221995/webrev/
Patch fix 3 problems:
- specification allows addressing register to be SP, while current
hotspot encoding implementation hits assert in this case
- specification allows data register(s) to be ZR, while current hotspot
encoding implementation hits assert in this case
- all pair CAS instructions (CASP*) are encoded incorrectly in bit 23,
which leads to another instructions generation instead (CAS*B and CAS*H)
Current code shape doesn't generate CAS* instructions using affected
cases. That is why these problems wasn't found before.
Testing:
I generated code with CAS and CASP with and without patch. Patched
version hits no asserts while using zr and sp registers. And casp*
instruction now generated correctly.
CR: https://bugs.openjdk.java.net/browse/JDK-8221995
Thanks,
Dmitrij
More information about the aarch64-port-dev
mailing list