src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File webrev Sdiff src/hotspot/share/jvmci

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp

Print this page




 108   assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
 109   return Handle(Thread::current(), arg);
 110 }
 111 
 112 jobjectArray readConfiguration0(JNIEnv *env, TRAPS);
 113 
 114 C2V_VMENTRY(jobjectArray, readConfiguration, (JNIEnv *env))
 115    jobjectArray config = readConfiguration0(env, CHECK_NULL);
 116    return config;
 117 C2V_END
 118 
 119 C2V_VMENTRY(jobject, getFlagValue, (JNIEnv *, jobject c2vm, jobject name_handle))
 120 #define RETURN_BOXED_LONG(value) oop box; jvalue p; p.j = (jlong) (value); box = java_lang_boxing_object::create(T_LONG, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box);
 121 #define RETURN_BOXED_DOUBLE(value) oop box; jvalue p; p.d = (jdouble) (value); box = java_lang_boxing_object::create(T_DOUBLE, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box);
 122   Handle name(THREAD, JNIHandles::resolve(name_handle));
 123   if (name.is_null()) {
 124     THROW_0(vmSymbols::java_lang_NullPointerException());
 125   }
 126   ResourceMark rm;
 127   const char* cstring = java_lang_String::as_utf8_string(name());
 128   Flag* flag = Flag::find_flag(cstring, strlen(cstring), /* allow_locked */ true, /* return_flag */ true);
 129   if (flag == NULL) {
 130     return c2vm;
 131   }
 132   if (flag->is_bool()) {
 133     jvalue prim;
 134     prim.z = flag->get_bool();
 135     oop box = java_lang_boxing_object::create(T_BOOLEAN, &prim, CHECK_NULL);
 136     return JNIHandles::make_local(THREAD, box);
 137   } else if (flag->is_ccstr()) {
 138     Handle value = java_lang_String::create_from_str(flag->get_ccstr(), CHECK_NULL);
 139     return JNIHandles::make_local(THREAD, value());
 140   } else if (flag->is_intx()) {
 141     RETURN_BOXED_LONG(flag->get_intx());
 142   } else if (flag->is_int()) {
 143     RETURN_BOXED_LONG(flag->get_int());
 144   } else if (flag->is_uint()) {
 145     RETURN_BOXED_LONG(flag->get_uint());
 146   } else if (flag->is_uint64_t()) {
 147     RETURN_BOXED_LONG(flag->get_uint64_t());
 148   } else if (flag->is_size_t()) {




 108   assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
 109   return Handle(Thread::current(), arg);
 110 }
 111 
 112 jobjectArray readConfiguration0(JNIEnv *env, TRAPS);
 113 
 114 C2V_VMENTRY(jobjectArray, readConfiguration, (JNIEnv *env))
 115    jobjectArray config = readConfiguration0(env, CHECK_NULL);
 116    return config;
 117 C2V_END
 118 
 119 C2V_VMENTRY(jobject, getFlagValue, (JNIEnv *, jobject c2vm, jobject name_handle))
 120 #define RETURN_BOXED_LONG(value) oop box; jvalue p; p.j = (jlong) (value); box = java_lang_boxing_object::create(T_LONG, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box);
 121 #define RETURN_BOXED_DOUBLE(value) oop box; jvalue p; p.d = (jdouble) (value); box = java_lang_boxing_object::create(T_DOUBLE, &p, CHECK_NULL); return JNIHandles::make_local(THREAD, box);
 122   Handle name(THREAD, JNIHandles::resolve(name_handle));
 123   if (name.is_null()) {
 124     THROW_0(vmSymbols::java_lang_NullPointerException());
 125   }
 126   ResourceMark rm;
 127   const char* cstring = java_lang_String::as_utf8_string(name());
 128   JVMFlag* flag = JVMFlag::find_flag(cstring, strlen(cstring), /* allow_locked */ true, /* return_flag */ true);
 129   if (flag == NULL) {
 130     return c2vm;
 131   }
 132   if (flag->is_bool()) {
 133     jvalue prim;
 134     prim.z = flag->get_bool();
 135     oop box = java_lang_boxing_object::create(T_BOOLEAN, &prim, CHECK_NULL);
 136     return JNIHandles::make_local(THREAD, box);
 137   } else if (flag->is_ccstr()) {
 138     Handle value = java_lang_String::create_from_str(flag->get_ccstr(), CHECK_NULL);
 139     return JNIHandles::make_local(THREAD, value());
 140   } else if (flag->is_intx()) {
 141     RETURN_BOXED_LONG(flag->get_intx());
 142   } else if (flag->is_int()) {
 143     RETURN_BOXED_LONG(flag->get_int());
 144   } else if (flag->is_uint()) {
 145     RETURN_BOXED_LONG(flag->get_uint());
 146   } else if (flag->is_uint64_t()) {
 147     RETURN_BOXED_LONG(flag->get_uint64_t());
 148   } else if (flag->is_size_t()) {


src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File