< prev index next >

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp

Print this page

2187         case T_FLOAT:         value.f = typeArrayOop(xobj())->float_at(index);         break;
2188         case T_LONG:          value.j = typeArrayOop(xobj())->long_at(index);          break;
2189         case T_INT:           value.i = typeArrayOop(xobj())->int_at(index);            break;
2190         case T_SHORT:         value.s = typeArrayOop(xobj())->short_at(index);          break;
2191         case T_CHAR:          value.c = typeArrayOop(xobj())->char_at(index);           break;
2192         case T_BYTE:          value.b = typeArrayOop(xobj())->byte_at(index);           break;
2193         case T_BOOLEAN:       value.z = typeArrayOop(xobj())->byte_at(index) & 1;       break;
2194         default:              ShouldNotReachHere();
2195       }
2196       result = JVMCIENV->create_box(element_type, &value, JVMCI_CHECK_NULL);
2197     }
2198     assert(!result.is_null(), "must have a value");
2199     return JVMCIENV->get_jobject(result);
2200   }
2201   return nullptr;;
2202 C2V_END
2203 
2204 
2205 C2V_VMENTRY_0(jint, arrayBaseOffset, (JNIEnv* env, jobject, jchar type_char))
2206   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2207   return arrayOopDesc::header_size(type) * HeapWordSize;
2208 C2V_END
2209 
2210 C2V_VMENTRY_0(jint, arrayIndexScale, (JNIEnv* env, jobject, jchar type_char))
2211   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2212   return type2aelembytes(type);
2213 C2V_END
2214 
2215 C2V_VMENTRY(void, releaseClearedOopHandles, (JNIEnv* env, jobject))
2216   JVMCIENV->runtime()->release_cleared_oop_handles();
2217 C2V_END
2218 
2219 static void requireJVMCINativeLibrary(JVMCI_TRAPS) {
2220   if (!UseJVMCINativeLibrary) {
2221     JVMCI_THROW_MSG(UnsupportedOperationException, "JVMCI shared library is not enabled (requires -XX:+UseJVMCINativeLibrary)");
2222   }
2223 }
2224 
2225 C2V_VMENTRY_NULL(jlongArray, registerNativeMethods, (JNIEnv* env, jobject, jclass mirror))
2226   requireJVMCINativeLibrary(JVMCI_CHECK_NULL);
2227   requireInHotSpot("registerNativeMethods", JVMCI_CHECK_NULL);

2187         case T_FLOAT:         value.f = typeArrayOop(xobj())->float_at(index);         break;
2188         case T_LONG:          value.j = typeArrayOop(xobj())->long_at(index);          break;
2189         case T_INT:           value.i = typeArrayOop(xobj())->int_at(index);            break;
2190         case T_SHORT:         value.s = typeArrayOop(xobj())->short_at(index);          break;
2191         case T_CHAR:          value.c = typeArrayOop(xobj())->char_at(index);           break;
2192         case T_BYTE:          value.b = typeArrayOop(xobj())->byte_at(index);           break;
2193         case T_BOOLEAN:       value.z = typeArrayOop(xobj())->byte_at(index) & 1;       break;
2194         default:              ShouldNotReachHere();
2195       }
2196       result = JVMCIENV->create_box(element_type, &value, JVMCI_CHECK_NULL);
2197     }
2198     assert(!result.is_null(), "must have a value");
2199     return JVMCIENV->get_jobject(result);
2200   }
2201   return nullptr;;
2202 C2V_END
2203 
2204 
2205 C2V_VMENTRY_0(jint, arrayBaseOffset, (JNIEnv* env, jobject, jchar type_char))
2206   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2207   return arrayOopDesc::base_offset_in_bytes(type);
2208 C2V_END
2209 
2210 C2V_VMENTRY_0(jint, arrayIndexScale, (JNIEnv* env, jobject, jchar type_char))
2211   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2212   return type2aelembytes(type);
2213 C2V_END
2214 
2215 C2V_VMENTRY(void, releaseClearedOopHandles, (JNIEnv* env, jobject))
2216   JVMCIENV->runtime()->release_cleared_oop_handles();
2217 C2V_END
2218 
2219 static void requireJVMCINativeLibrary(JVMCI_TRAPS) {
2220   if (!UseJVMCINativeLibrary) {
2221     JVMCI_THROW_MSG(UnsupportedOperationException, "JVMCI shared library is not enabled (requires -XX:+UseJVMCINativeLibrary)");
2222   }
2223 }
2224 
2225 C2V_VMENTRY_NULL(jlongArray, registerNativeMethods, (JNIEnv* env, jobject, jclass mirror))
2226   requireJVMCINativeLibrary(JVMCI_CHECK_NULL);
2227   requireInHotSpot("registerNativeMethods", JVMCI_CHECK_NULL);
< prev index next >