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