# HG changeset patch # User dchuyko # Date 1512141600 -10800 # Node ID 306a4643e4d22f7558b4a725708cb39c82ac1cc1 # Parent 6ea5a8067d1f4d52966de0e52f7f111dbe39f31a 8260930: AARCH64: Invalid value passed to critical JNI function Reviewed-by: vlivanov, aph diff -r 6ea5a8067d1f -r 306a4643e4d2 src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp --- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp Mon Feb 08 06:17:34 2021 +0000 +++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp Fri Dec 01 18:20:00 2017 +0300 @@ -1545,7 +1545,7 @@ // critical natives they are offset down. GrowableArray arg_order(2 * total_in_args); VMRegPair tmp_vmreg; - tmp_vmreg.set1(r19->as_VMReg()); + tmp_vmreg.set2(r19->as_VMReg()); if (!is_critical_native) { for (int i = total_in_args - 1, c_arg = total_c_args - 1; i >= 0; i--, c_arg--) { diff -r 6ea5a8067d1f -r 306a4643e4d2 src/cpu/aarch64/vm/vm_version_aarch64.cpp --- a/src/cpu/aarch64/vm/vm_version_aarch64.cpp Mon Feb 08 06:17:34 2021 +0000 +++ b/src/cpu/aarch64/vm/vm_version_aarch64.cpp Fri Dec 01 18:20:00 2017 +0300 @@ -327,4 +327,11 @@ g.generate_getPsrInfo()); get_processor_features(); + + if (CriticalJNINatives) { + if (FLAG_IS_CMDLINE(CriticalJNINatives)) { + warning("CriticalJNINatives specified, but not supported in this VM"); + } + FLAG_SET_DEFAULT(CriticalJNINatives, false); + } } diff -r 6ea5a8067d1f -r 306a4643e4d2 test/compiler/criticalnatives/argumentcorruption/Test8167409.sh --- a/test/compiler/criticalnatives/argumentcorruption/Test8167409.sh Mon Feb 08 06:17:34 2021 +0000 +++ b/test/compiler/criticalnatives/argumentcorruption/Test8167409.sh Fri Dec 01 18:20:00 2017 +0300 @@ -62,6 +62,12 @@ ;; esac +# CriticalJNINatives is not supported for aarch64 +if [ $VM_CPU == "aarch64" ]; then + echo "Test Passed" + exit 0; +fi + THIS_DIR=. cp ${TESTSRC}${FS}*.java ${THIS_DIR}