8191129: AARCH64: Invalid value passed to critical JNI function

Reviewed-by: vlivanov
This commit is contained in:
Dmitry Chuyko 2017-12-01 18:20:00 +03:00
parent 4969284dc6
commit d24ef2f18f
4 changed files with 7 additions and 3 deletions

View File

@ -1664,7 +1664,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
// 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--) {

View File

@ -384,4 +384,6 @@ void VM_Version::initialize() {
g.generate_getPsrInfo());
get_processor_features();
UNSUPPORTED_OPTION(CriticalJNINatives);
}

View File

@ -24,7 +24,8 @@
/* @test
* @bug 8167409
* @run main/othervm/native -Xcomp compiler.runtime.criticalnatives.argumentcorruption.CheckLongArgs
* @requires os.arch != "aarch64"
* @run main/othervm/native -Xcomp -XX:+CriticalJNINatives compiler.runtime.criticalnatives.argumentcorruption.CheckLongArgs
*/
package compiler.runtime.criticalnatives.argumentcorruption;
public class CheckLongArgs {

View File

@ -24,7 +24,8 @@
/* @test
* @bug 8167408
* @run main/othervm/native -Xcomp compiler.runtime.criticalnatives.lookup.LookUp
* @requires os.arch != "aarch64"
* @run main/othervm/native -Xcomp -XX:+CriticalJNINatives compiler.runtime.criticalnatives.lookup.LookUp
*/
package compiler.runtime.criticalnatives.lookup;
public class LookUp {