RFR: 8256166: [C2] Registers get confused on Big Endian after 8221404
Claes Redestad
redestad at openjdk.java.net
Wed Nov 11 14:12:59 UTC 2020
On Wed, 11 Nov 2020 13:50:38 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:
> C2 crashes with broken register encoding on Big Endian platforms after JDK-8221404 was pushed.
> Reason is that int values "_RM_I" are pairwise swapped on 64 bit Big Endian platforms.
Sorry for causing this headache. Patch looks OK to me, though I wish there was a cleaner way of doing this.
Some time in the future I think we should consider refactoring this constructor to be RegMask(uintptr_t, uintptr_t, ...) and drop the _RM_I alias, but that pushes the complexity down into .ad files which means it'll probably be even trickier to maintain.
-------------
Marked as reviewed by redestad (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/1165
More information about the hotspot-compiler-dev
mailing list