[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