[aarch64-port-dev ] RFR: 8170188: jtreg compiler/types/TestMeetIncompatibleInterfaceArrays.java causes JVM crash

Sergey Nazarkin snazarkin at azul.com
Wed Nov 23 12:52:47 UTC 2016


Hi Andrew,

You are right, ZR is not defined at Assembler scope. Anyway, I’ve updated review page with updated MacroAssembler. Not sure it starts look like  eye candy. :)

> On 22 Nov 2016, at 19:59, Andrew Haley <aph at redhat.com> wrote:
> 
> Hi,
> 
> On 22/11/16 15:29, Sergey Nazarkin wrote:
> 
>> please review the fix [1] to solve JVM crash when
>> compiler/types/TestMeetIncompatibleInterfaceArrays.java test is
>> executed.
>> 
>> The crash happens at ANDS generation procedure since imm encoder
>> fails to convert zero value.  And it has to fail according ARMv8
>> arch ref manual.
>> 
>> The patch detects invalid case and replace ANDS(Rd, Rn, imm) with
>> ANDS(RD, Rn, ZeroReg)
>> 
>> [1] http://cr.openjdk.java.net/~snazarki/8170188/
>> [2] https://bugs.openjdk.java.net/browse/JDK-8170188
> 
> +    if(!imm) { NAME(Rd, Rn, /*Zreg*/as_Register(32)); return; } \
> 
> is rather eccentric.  Can't you just say
> 
> +    if(imm == 0) { NAME(Rd, Rn, zr; return; } \
> 
> Is the problem that zr isn't defined at this point?  In that case it
> would make more sense to override ands[w] in MacroAssembler.
> 
> Thanks,
> 
> Andrew.
> 

Sergey Nazarkin


More information about the aarch64-port-dev mailing list