[aarch64-port-dev ] RFR: Fix assertion failure in jtreg DeoptimizeAllTest.java

Edward Nevill edward.nevill at linaro.org
Tue Jul 22 13:38:34 UTC 2014


Hi,

The jtreg test

hotspot/test/compiler/whitebox/DeoptimizeAllTest.java

generates the following assertion failure

#  Internal Error (/home/ed/work/rc12/jdk8/hotspot/src/cpu/aarch64/vm/nativeInst_aarch64.cpp:219), pid=9665, tid=547521864176
#  assert(nativeInstruction_at(verified_entry)->is_jump_or_nop()) failed: Aarch64 cannot replace non-jump with jump

The command I use to invoke jtreg is

/work/ed/images/j2sdk-image/bin/java -jar lib/jtreg.jar -conc:8 -othervm -jdk:/work/ed/images/j2sdk-image -v1 -a -ignore:quiet ../u20_b16/hotspot/test/compiler/whitebox/DeoptimizeAllTest.java

The patch below fixes this by inserting a nop in generate_native_wrapper.

There is already a nop in generate_native_wrapper but on the path where method->is_method_handle_intrinsic() it never gets generated because method_handle_intrinsic() is handled on a separate path.

The above test now passes and I have retested with a complete jtreg/hotspot test with no regressions.

OK to push?
Ed.

--- CUT HERE ---
# HG changeset patch
# User Edward Nevill edward.nevill at linaro.org
# Date 1406036237 -3600
#      Tue Jul 22 14:37:17 2014 +0100
# Node ID a6873b738433a61980c523fcf844f69c93205d81
# Parent  c4af536cc45c9e0928e51408b07de2d3f9193d55
Fix assertion failure in DeoptimizeAllTest

diff -r c4af536cc45c -r a6873b738433 src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
--- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp	Mon Jul 21 17:23:40 2014 +0100
+++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp	Tue Jul 22 14:37:17 2014 +0100
@@ -1313,6 +1313,9 @@
     vmIntrinsics::ID iid = method->intrinsic_id();
     intptr_t start = (intptr_t)__ pc();
     int vep_offset = ((intptr_t)__ pc()) - start;
+
+    // First instruction must be a nop as it may need to be patched on deoptimisation
+    __ nop();
     gen_special_dispatch(masm,
                          method,
                          in_sig_bt,
--- CUT HERE ---




More information about the aarch64-port-dev mailing list