[aarch64-port-dev ] RFR: 8170188: jtreg compiler/types/TestMeetIncompatibleInterfaceArrays.java causes JVM crash
Sergey Nazarkin
snazarkin at azul.com
Wed Nov 23 14:52:31 UTC 2016
>
> On 23 Nov 2016, at 16:39, Andrew Haley <aph at redhat.com> wrote:
>
> Hi,
>
> On 23/11/16 12:52, Sergey Nazarkin wrote:
>>
>> 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. :)
>
> True.
>
> A few things:
>
> You can get rid of the overload of
>
> ands(Register Rd, Register Rn, Register Rm,
> enum shift_kind kind = LSL, unsigned shift = 0)
>
> by saying
>
> using Assembler::ands;
> using Assembler::andsw;
Nice hint, thank you. Updated review
>
> at the top of the file.
>
> What about the other boolean operations?
At least AND, BFM, EOR, ORR, SBFM, UBFM are affected (taken with `grep DecodeBitMasks` through ARMv8 ref manual). Plus all-ones values are dangerous as well.
>
> Do you know if this was C2- or C1-generated code? C2 should never do
> it, and I'm not sure how C1 gets there either. I get a pass for that
> test, so I don't know how or why you got that failure.
The issue doesn’t relate to any JIT, runtime fails right at template initialiser
V [libjvm.so+0x2540d0] Instruction_aarch64::f(unsigned int, int, int)+0x64
V [libjvm.so+0x255158] Assembler::f(unsigned int, int, int)+0x30
V [libjvm.so+0x255aa8] Assembler::ands(RegisterImpl*, RegisterImpl*, unsigned long)+0x7c
V [libjvm.so+0x766c7c] InterpreterMacroAssembler::increment_mask_and_jump(Address, int, int, Registerp8
V [libjvm.so+0xb32234] InterpreterGenerator::generate_counter_incr(Label*, Label*, Label*)+0x1b4
V [libjvm.so+0xb36528] InterpreterGenerator::generate_normal_entry(bool)+0x5d4
V [libjvm.so+0xb3691c] AbstractInterpreterGenerator::generate_method_entry(AbstractInterpreter::Methoi4
V [libjvm.so+0xb2f4e8] TemplateInterpreterGenerator::generate_all()+0xeec
V [libjvm.so+0xb37dd0] InterpreterGenerator::InterpreterGenerator(StubQueue*)+0x34
V [libjvm.so+0xb2df20] TemplateInterpreter::initialize()+0xf0
V [libjvm.so+0x768da8] interpreter_init()+0x10
V [libjvm.so+0x709034] init_globals()+0x50
To note: I use JDK8 compiled with server JIT, TieredCompilation is on, Tier0InvokeNotifyFreqLog is set to 0 by the test.
>
> Sorry for all the questions...
>
> Andrew.
More information about the aarch64-port-dev
mailing list