RFR: JDK-8238851: Shenandoah: C1: Resolve into registers of correct type

Aleksey Shipilev shade at redhat.com
Tue Feb 11 16:18:48 UTC 2020


On 2/11/20 4:38 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.
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8238851
> Webrev:
> http://cr.openjdk.java.net/~rkennke/JDK-8238851/webrev.01/
> 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

-- 
Thanks,
-Aleksey



More information about the hotspot-gc-dev mailing list