RFR: JDK-8238851: Shenandoah: C1: Resolve into registers of correct type
shade at redhat.com
Wed Feb 12 09:10:23 UTC 2020
On 2/11/20 8:09 PM, Roman Kennke wrote:
>>> In ShBSC1::ensure_in_register() we are blindly creating registers of
>>> type T_OBJECT, even though in some cases we actually need T_ADDRESS.
>>> This blows up when we verify oop registers: when the argument is of type
>>> T_OBJECT we perform extra checks that fail when the value in register is
>>> not actually an object.
>>> Testing: the provided testcase passes now. hotspot_gc_shenandoah
>> This path probably needs adjustment too:
>> 167 #ifdef AARCH64
>> 168 // AArch64 expects double-size register.
>> 169 obj_reg = gen->new_pointer_register();
>> 170 #else
> The provided test passes on aarch64 without any additional changes.
> I tried removing the block, hoping that the suggested change does
> perhaps make it unnecessary, but no. It's still needed.
Gaawh. The non-AARCH64 path still looks good, so we can push it in current form. We really need to
figure out AARCH64 thingie, please file the follow-up RFR?
More information about the hotspot-gc-dev