< prev index next >

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp

Print this page

2396         case T_FLOAT:         value.f = typeArrayOop(xobj())->float_at(index);         break;
2397         case T_LONG:          value.j = typeArrayOop(xobj())->long_at(index);          break;
2398         case T_INT:           value.i = typeArrayOop(xobj())->int_at(index);            break;
2399         case T_SHORT:         value.s = typeArrayOop(xobj())->short_at(index);          break;
2400         case T_CHAR:          value.c = typeArrayOop(xobj())->char_at(index);           break;
2401         case T_BYTE:          value.b = typeArrayOop(xobj())->byte_at(index);           break;
2402         case T_BOOLEAN:       value.z = typeArrayOop(xobj())->byte_at(index) & 1;       break;
2403         default:              ShouldNotReachHere();
2404       }
2405       result = JVMCIENV->create_box(element_type, &value, JVMCI_CHECK_NULL);
2406     }
2407     assert(!result.is_null(), "must have a value");
2408     return JVMCIENV->get_jobject(result);
2409   }
2410   return nullptr;;
2411 C2V_END
2412 
2413 
2414 C2V_VMENTRY_0(jint, arrayBaseOffset, (JNIEnv* env, jobject, jchar type_char))
2415   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2416   return arrayOopDesc::header_size(type) * HeapWordSize;
2417 C2V_END
2418 
2419 C2V_VMENTRY_0(jint, arrayIndexScale, (JNIEnv* env, jobject, jchar type_char))
2420   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2421   return type2aelembytes(type);
2422 C2V_END
2423 
2424 C2V_VMENTRY(void, releaseClearedOopHandles, (JNIEnv* env, jobject))
2425   JVMCIENV->runtime()->release_cleared_oop_handles();
2426 C2V_END
2427 
2428 static void requireJVMCINativeLibrary(JVMCI_TRAPS) {
2429   if (!UseJVMCINativeLibrary) {
2430     JVMCI_THROW_MSG(UnsupportedOperationException, "JVMCI shared library is not enabled (requires -XX:+UseJVMCINativeLibrary)");
2431   }
2432 }
2433 
2434 C2V_VMENTRY_NULL(jlongArray, registerNativeMethods, (JNIEnv* env, jobject, jclass mirror))
2435   requireJVMCINativeLibrary(JVMCI_CHECK_NULL);
2436   requireInHotSpot("registerNativeMethods", JVMCI_CHECK_NULL);

2396         case T_FLOAT:         value.f = typeArrayOop(xobj())->float_at(index);         break;
2397         case T_LONG:          value.j = typeArrayOop(xobj())->long_at(index);          break;
2398         case T_INT:           value.i = typeArrayOop(xobj())->int_at(index);            break;
2399         case T_SHORT:         value.s = typeArrayOop(xobj())->short_at(index);          break;
2400         case T_CHAR:          value.c = typeArrayOop(xobj())->char_at(index);           break;
2401         case T_BYTE:          value.b = typeArrayOop(xobj())->byte_at(index);           break;
2402         case T_BOOLEAN:       value.z = typeArrayOop(xobj())->byte_at(index) & 1;       break;
2403         default:              ShouldNotReachHere();
2404       }
2405       result = JVMCIENV->create_box(element_type, &value, JVMCI_CHECK_NULL);
2406     }
2407     assert(!result.is_null(), "must have a value");
2408     return JVMCIENV->get_jobject(result);
2409   }
2410   return nullptr;;
2411 C2V_END
2412 
2413 
2414 C2V_VMENTRY_0(jint, arrayBaseOffset, (JNIEnv* env, jobject, jchar type_char))
2415   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2416   return arrayOopDesc::base_offset_in_bytes(type);
2417 C2V_END
2418 
2419 C2V_VMENTRY_0(jint, arrayIndexScale, (JNIEnv* env, jobject, jchar type_char))
2420   BasicType type = JVMCIENV->typeCharToBasicType(type_char, JVMCI_CHECK_0);
2421   return type2aelembytes(type);
2422 C2V_END
2423 
2424 C2V_VMENTRY(void, releaseClearedOopHandles, (JNIEnv* env, jobject))
2425   JVMCIENV->runtime()->release_cleared_oop_handles();
2426 C2V_END
2427 
2428 static void requireJVMCINativeLibrary(JVMCI_TRAPS) {
2429   if (!UseJVMCINativeLibrary) {
2430     JVMCI_THROW_MSG(UnsupportedOperationException, "JVMCI shared library is not enabled (requires -XX:+UseJVMCINativeLibrary)");
2431   }
2432 }
2433 
2434 C2V_VMENTRY_NULL(jlongArray, registerNativeMethods, (JNIEnv* env, jobject, jclass mirror))
2435   requireJVMCINativeLibrary(JVMCI_CHECK_NULL);
2436   requireInHotSpot("registerNativeMethods", JVMCI_CHECK_NULL);
< prev index next >