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

Andrew Haley aph at redhat.com
Tue Nov 22 16:59:11 UTC 2016


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.



More information about the aarch64-port-dev mailing list