Thu, 31 May 2018 14:12:55 +0800
#7124 [C1] Fix a JNI error when running Alias for MIPS
== Alias ==
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.IncompatibleClassChangeError: Class java.io.FileInputStream does not implement the requested interface sun.nio.ByteBuffered
at sun.misc.Resource.getByteBuffer(Resource.java:162)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
src/cpu/mips/vm/c1_LIRAssembler_mips.cpp | file | annotate | diff | comparison | revisions | |
src/cpu/mips/vm/c1_Runtime1_mips.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/c1_LIRAssembler_mips.cpp Thu May 31 09:47:21 2018 +0800 1.2 +++ b/src/cpu/mips/vm/c1_LIRAssembler_mips.cpp Thu May 31 14:12:55 2018 +0800 1.3 @@ -3110,8 +3110,8 @@ 1.4 Register Rtmp1 = noreg; 1.5 1.6 // check if it needs to be profiled 1.7 - ciMethodData* md; 1.8 - ciProfileData* data; 1.9 + ciMethodData* md = NULL; 1.10 + ciProfileData* data = NULL; 1.11 1.12 if (op->should_profile()) { 1.13 ciMethod* method = op->profiled_method(); 1.14 @@ -3210,7 +3210,7 @@ 1.15 if (A1 != k_RInfo) __ pop(A1); 1.16 if (A0 != klass_RInfo) __ pop(A0); 1.17 // result is a boolean 1.18 - __ beq(klass_RInfo, R0, *failure_target); 1.19 + __ beq(V0, R0, *failure_target); 1.20 __ delayed()->nop(); 1.21 // successful cast, fall through to profile or jump 1.22 } 1.23 @@ -3226,7 +3226,7 @@ 1.24 if (A1 != k_RInfo) __ pop(A1); 1.25 if (A0 != klass_RInfo) __ pop(A0); 1.26 // result is a boolean 1.27 - __ beq(k_RInfo, R0, *failure_target); 1.28 + __ beq(V0, R0, *failure_target); 1.29 __ delayed()->nop(); 1.30 // successful cast, fall through to profile or jump 1.31 } 1.32 @@ -3321,7 +3321,7 @@ 1.33 if (A1 != k_RInfo) __ pop(A1); 1.34 if (A0 != klass_RInfo) __ pop(A0); 1.35 // result is a boolean 1.36 - __ beq(k_RInfo, R0, *failure_target); 1.37 + __ beq(V0, R0, *failure_target); 1.38 __ delayed()->nop(); 1.39 // fall through to the success case 1.40
2.1 --- a/src/cpu/mips/vm/c1_Runtime1_mips.cpp Thu May 31 09:47:21 2018 +0800 2.2 +++ b/src/cpu/mips/vm/c1_Runtime1_mips.cpp Thu May 31 14:12:55 2018 +0800 2.3 @@ -1389,31 +1389,9 @@ 2.4 __ st_ptr(T1, SP, (-2) * wordSize); 2.5 __ addiu(SP, SP, (-2) * wordSize); 2.6 2.7 - //+ Klass::secondary_supers_offset_in_bytes())); 2.8 - __ ld_ptr(AT, A0, in_bytes( Klass::secondary_supers_offset())); 2.9 - __ lw(T1, AT, arrayOopDesc::length_offset_in_bytes()); 2.10 - __ addiu(AT, AT, arrayOopDesc::base_offset_in_bytes(T_OBJECT)); 2.11 + Label miss; 2.12 + __ check_klass_subtype_slow_path(A0, A1, T0, T1, NULL, &miss); 2.13 2.14 - Label miss, hit, loop; 2.15 - // T1:count, AT:array, A1:sub maybe supper 2.16 - __ bind(loop); 2.17 - __ beq(T1, R0, miss); 2.18 -#ifndef _LP64 2.19 - __ delayed()->lw(T0, AT, 0); 2.20 -#else 2.21 - __ delayed()->ld(T0, AT, 0); 2.22 -#endif 2.23 - __ beq(T0, A1, hit); 2.24 - __ delayed(); 2.25 - __ addiu(T1, T1, -1); 2.26 - __ b(loop); 2.27 - __ delayed(); 2.28 - __ addiu(AT, AT, 4); 2.29 - 2.30 - __ bind(hit); 2.31 - //+ Klass::secondary_super_cache_offset_in_bytes()), eax); 2.32 - __ st_ptr(A1, A0, 2.33 - in_bytes( Klass::secondary_super_cache_offset())); 2.34 __ addiu(V0, R0, 1); 2.35 __ addiu(SP, SP, 2 * wordSize); 2.36 __ ld_ptr(T0, SP, (-1) * wordSize);