we found a bug in the G1 barriers generated by the C2 compiler.
In graphKit INT operations were generated to access PtrQueue::_index which
has type size_t. This is 64 bit on 64-bit machines. No problems occur on
little endian machines as long as the index fits into 32 bit, but on
big endian machines the upper part is read, which is zero. This leads
to unnecessary branches to the slow path into the runtime.
The fix introduces X operations where INT was used:
This also removes a cast node.
We have also added a type T_X in globalDefinitions.hpp. Is there
already a mechanism to express this?
Please supply a bug id and review this change.