[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