changeset 10909:306a4643e4d2 jdk8u292-b03

8260930: AARCH64: Invalid value passed to critical JNI function Reviewed-by: vlivanov, aph
author dchuyko
date Fri, 01 Dec 2017 18:20:00 +0300
parents 6ea5a8067d1f
children 3d2970e26c36
files src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp src/cpu/aarch64/vm/vm_version_aarch64.cpp test/compiler/criticalnatives/argumentcorruption/Test8167409.sh
diffstat 3 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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<int> 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--) {
--- 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);
+  }
 }
--- 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}