RFR: 8173472: AArch64: C1 comparisons with null only use 32-bit instructions

Andrew Haley aph at redhat.com
Fri Jan 27 17:09:01 UTC 2017


On 27/01/17 16:10, Roland Westrelin wrote:
>>> I must be missing something. What's wrong with:
>>>
>>> if (type2aelembytes(opr1->type()) <= 4)
>>>
>>> ?
>>
>> When compressed OOPs are in use, the type in memory is four bytes,
>> but we're comparing in registers.
> 
> So opr2->type() is T_OBJECT and opr1->type() is T_NARROWOOP?

both T_OBJECT.

(gdb) p _type2aelembytes[T_OBJECT]
$10 = 4

  _type2aelembytes[T_OBJECT] = heapOopSize;

The use of type2aelembytes was a mistake.

Andrew.



More information about the hotspot-dev mailing list