src/share/vm/prims/whitebox.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/prims

src/share/vm/prims/whitebox.cpp

Print this page
rev 10231 : 8148159: [TESTBUG] TestCompilerDirectivesCompatibility tests fails on non-tiered server VMs
Summary: Add whitebox for checking available compilers
Reviewed-by:


 506 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 507   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 508   int result = 0;
 509   CHECK_JNI_EXCEPTION_(env, result);
 510   MutexLockerEx mu(Compile_lock);
 511   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 512   if (is_osr) {
 513     result += mh->mark_osr_nmethods();
 514   } else if (mh->code() != NULL) {
 515     mh->code()->mark_for_deoptimization();
 516     ++result;
 517   }
 518   result += CodeCache::mark_for_deoptimization(mh());
 519   if (result > 0) {
 520     VM_Deoptimize op;
 521     VMThread::execute(&op);
 522   }
 523   return result;
 524 WB_END
 525 
















 526 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 527   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 528   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 529   MutexLockerEx mu(Compile_lock);
 530   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 531   nmethod* code = is_osr ? mh->lookup_osr_nmethod_for(InvocationEntryBci, CompLevel_none, false) : mh->code();
 532   if (code == NULL) {
 533     return JNI_FALSE;
 534   }
 535   return (code->is_alive() && !code->is_marked_for_deoptimization());
 536 WB_END
 537 
 538 WB_ENTRY(jboolean, WB_IsMethodCompilable(JNIEnv* env, jobject o, jobject method, jint comp_level, jboolean is_osr))
 539   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 540   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 541   MutexLockerEx mu(Compile_lock);
 542   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 543   if (is_osr) {
 544     return CompilationPolicy::can_be_osr_compiled(mh, comp_level);
 545   } else {


 626 WB_END
 627 
 628 WB_ENTRY(jboolean, WB_TestSetForceInlineMethod(JNIEnv* env, jobject o, jobject method, jboolean value))
 629   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 630   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 631   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 632   bool result = mh->force_inline();
 633   mh->set_force_inline(value == JNI_TRUE);
 634   return result;
 635 WB_END
 636 
 637 WB_ENTRY(jboolean, WB_EnqueueMethodForCompilation(JNIEnv* env, jobject o, jobject method, jint comp_level, jint bci))
 638   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 639   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 640   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 641   nmethod* nm = CompileBroker::compile_method(mh, bci, comp_level, mh, mh->invocation_count(), "WhiteBox", THREAD);
 642   MutexLockerEx mu(Compile_lock);
 643   return (mh->queued_for_compilation() || nm != NULL);
 644 WB_END
 645 
 646 WB_ENTRY(jboolean, WB_ShouldPrintAssembly(JNIEnv* env, jobject o, jobject method))
 647   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 648   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 649 
 650   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 651   DirectiveSet* directive = DirectivesStack::getMatchingDirective(mh, CompileBroker::compiler(CompLevel_simple));
 652   bool result = directive->PrintAssemblyOption;
 653   DirectivesStack::release(directive);
 654 
 655   return result;
 656 WB_END
 657 
 658 WB_ENTRY(jint, WB_MatchesInline(JNIEnv* env, jobject o, jobject method, jstring pattern))
 659   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 660   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 661 
 662   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 663 
 664   ResourceMark rm;
 665   const char* error_msg = NULL;
 666   char* method_str = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(pattern));
 667   InlineMatcher* m = InlineMatcher::parse_inline_pattern(method_str, error_msg);
 668 
 669   if (m == NULL) {
 670     assert(error_msg != NULL, "Always have an error message");
 671     tty->print_cr("Got error: %s", error_msg);


1508   {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;",
1509                                                       (void*)&WB_G1AuxiliaryMemoryUsage  },
1510   {CC"psVirtualSpaceAlignment",CC"()J",               (void*)&WB_PSVirtualSpaceAlignment},
1511   {CC"psHeapGenerationAlignment",CC"()J",             (void*)&WB_PSHeapGenerationAlignment},
1512 #endif // INCLUDE_ALL_GCS
1513 #if INCLUDE_NMT
1514   {CC"NMTMalloc",           CC"(J)J",                 (void*)&WB_NMTMalloc          },
1515   {CC"NMTMallocWithPseudoStack", CC"(JI)J",           (void*)&WB_NMTMallocWithPseudoStack},
1516   {CC"NMTFree",             CC"(J)V",                 (void*)&WB_NMTFree            },
1517   {CC"NMTReserveMemory",    CC"(J)J",                 (void*)&WB_NMTReserveMemory   },
1518   {CC"NMTCommitMemory",     CC"(JJ)V",                (void*)&WB_NMTCommitMemory    },
1519   {CC"NMTUncommitMemory",   CC"(JJ)V",                (void*)&WB_NMTUncommitMemory  },
1520   {CC"NMTReleaseMemory",    CC"(JJ)V",                (void*)&WB_NMTReleaseMemory   },
1521   {CC"NMTChangeTrackingLevel", CC"()Z",               (void*)&WB_NMTChangeTrackingLevel},
1522   {CC"NMTGetHashSize",      CC"()I",                  (void*)&WB_NMTGetHashSize     },
1523 #endif // INCLUDE_NMT
1524   {CC"deoptimizeFrames",   CC"(Z)I",                  (void*)&WB_DeoptimizeFrames  },
1525   {CC"deoptimizeAll",      CC"()V",                   (void*)&WB_DeoptimizeAll     },
1526     {CC"deoptimizeMethod0",   CC"(Ljava/lang/reflect/Executable;Z)I",
1527                                                         (void*)&WB_DeoptimizeMethod  },


1528   {CC"isMethodCompiled0",   CC"(Ljava/lang/reflect/Executable;Z)Z",
1529                                                       (void*)&WB_IsMethodCompiled  },
1530   {CC"isMethodCompilable0", CC"(Ljava/lang/reflect/Executable;IZ)Z",
1531                                                       (void*)&WB_IsMethodCompilable},
1532   {CC"isMethodQueuedForCompilation0",
1533       CC"(Ljava/lang/reflect/Executable;)Z",          (void*)&WB_IsMethodQueuedForCompilation},
1534   {CC"isIntrinsicAvailable0",
1535       CC"(Ljava/lang/reflect/Executable;Ljava/lang/reflect/Executable;I)Z",
1536                                                       (void*)&WB_IsIntrinsicAvailable},
1537   {CC"makeMethodNotCompilable0",
1538       CC"(Ljava/lang/reflect/Executable;IZ)V",        (void*)&WB_MakeMethodNotCompilable},
1539   {CC"testSetDontInlineMethod0",
1540       CC"(Ljava/lang/reflect/Executable;Z)Z",         (void*)&WB_TestSetDontInlineMethod},
1541   {CC"getMethodCompilationLevel0",
1542       CC"(Ljava/lang/reflect/Executable;Z)I",         (void*)&WB_GetMethodCompilationLevel},
1543   {CC"getMethodEntryBci0",
1544       CC"(Ljava/lang/reflect/Executable;)I",          (void*)&WB_GetMethodEntryBci},
1545   {CC"getCompileQueueSize",
1546       CC"(I)I",                                       (void*)&WB_GetCompileQueueSize},
1547   {CC"testSetForceInlineMethod0",
1548       CC"(Ljava/lang/reflect/Executable;Z)Z",         (void*)&WB_TestSetForceInlineMethod},
1549   {CC"enqueueMethodForCompilation0",
1550       CC"(Ljava/lang/reflect/Executable;II)Z",        (void*)&WB_EnqueueMethodForCompilation},
1551   {CC"clearMethodState0",
1552       CC"(Ljava/lang/reflect/Executable;)V",          (void*)&WB_ClearMethodState},
1553   {CC"lockCompilation",    CC"()V",                   (void*)&WB_LockCompilation},
1554   {CC"unlockCompilation",  CC"()V",                   (void*)&WB_UnlockCompilation},
1555   {CC"matchesMethod",
1556       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)I",
1557                                                       (void*)&WB_MatchesMethod},
1558   {CC"matchesInline",
1559       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)I",
1560                                                       (void*)&WB_MatchesInline},
1561   {CC"shouldPrintAssembly",
1562         CC"(Ljava/lang/reflect/Executable;)Z",
1563                                                         (void*)&WB_ShouldPrintAssembly},
1564 
1565   {CC"isConstantVMFlag",   CC"(Ljava/lang/String;)Z", (void*)&WB_IsConstantVMFlag},
1566   {CC"isLockedVMFlag",     CC"(Ljava/lang/String;)Z", (void*)&WB_IsLockedVMFlag},
1567   {CC"setBooleanVMFlag",   CC"(Ljava/lang/String;Z)V",(void*)&WB_SetBooleanVMFlag},
1568   {CC"setIntVMFlag",       CC"(Ljava/lang/String;J)V",(void*)&WB_SetIntVMFlag},
1569   {CC"setUintVMFlag",      CC"(Ljava/lang/String;J)V",(void*)&WB_SetUintVMFlag},
1570   {CC"setIntxVMFlag",      CC"(Ljava/lang/String;J)V",(void*)&WB_SetIntxVMFlag},
1571   {CC"setUintxVMFlag",     CC"(Ljava/lang/String;J)V",(void*)&WB_SetUintxVMFlag},
1572   {CC"setUint64VMFlag",    CC"(Ljava/lang/String;J)V",(void*)&WB_SetUint64VMFlag},
1573   {CC"setSizeTVMFlag",     CC"(Ljava/lang/String;J)V",(void*)&WB_SetSizeTVMFlag},
1574   {CC"setDoubleVMFlag",    CC"(Ljava/lang/String;D)V",(void*)&WB_SetDoubleVMFlag},
1575   {CC"setStringVMFlag",    CC"(Ljava/lang/String;Ljava/lang/String;)V",
1576                                                       (void*)&WB_SetStringVMFlag},
1577   {CC"getBooleanVMFlag",   CC"(Ljava/lang/String;)Ljava/lang/Boolean;",
1578                                                       (void*)&WB_GetBooleanVMFlag},
1579   {CC"getIntVMFlag",       CC"(Ljava/lang/String;)Ljava/lang/Long;",
1580                                                       (void*)&WB_GetIntVMFlag},
1581   {CC"getUintVMFlag",      CC"(Ljava/lang/String;)Ljava/lang/Long;",
1582                                                       (void*)&WB_GetUintVMFlag},




 506 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 507   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 508   int result = 0;
 509   CHECK_JNI_EXCEPTION_(env, result);
 510   MutexLockerEx mu(Compile_lock);
 511   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 512   if (is_osr) {
 513     result += mh->mark_osr_nmethods();
 514   } else if (mh->code() != NULL) {
 515     mh->code()->mark_for_deoptimization();
 516     ++result;
 517   }
 518   result += CodeCache::mark_for_deoptimization(mh());
 519   if (result > 0) {
 520     VM_Deoptimize op;
 521     VMThread::execute(&op);
 522   }
 523   return result;
 524 WB_END
 525 
 526 WB_ENTRY(jboolean, WB_HasC1Compiler(JNIEnv* env, jobject o))
 527 #ifdef COMPILER1
 528   return true;
 529 #else
 530   return false;
 531 #endif
 532 WB_END
 533 
 534 WB_ENTRY(jboolean, WB_HasC2Compiler(JNIEnv* env, jobject o))
 535 #ifdef COMPILER2
 536   return true;
 537 #else
 538   return false;
 539 #endif
 540 WB_END
 541 
 542 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 543   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 544   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 545   MutexLockerEx mu(Compile_lock);
 546   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 547   nmethod* code = is_osr ? mh->lookup_osr_nmethod_for(InvocationEntryBci, CompLevel_none, false) : mh->code();
 548   if (code == NULL) {
 549     return JNI_FALSE;
 550   }
 551   return (code->is_alive() && !code->is_marked_for_deoptimization());
 552 WB_END
 553 
 554 WB_ENTRY(jboolean, WB_IsMethodCompilable(JNIEnv* env, jobject o, jobject method, jint comp_level, jboolean is_osr))
 555   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 556   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 557   MutexLockerEx mu(Compile_lock);
 558   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 559   if (is_osr) {
 560     return CompilationPolicy::can_be_osr_compiled(mh, comp_level);
 561   } else {


 642 WB_END
 643 
 644 WB_ENTRY(jboolean, WB_TestSetForceInlineMethod(JNIEnv* env, jobject o, jobject method, jboolean value))
 645   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 646   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 647   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 648   bool result = mh->force_inline();
 649   mh->set_force_inline(value == JNI_TRUE);
 650   return result;
 651 WB_END
 652 
 653 WB_ENTRY(jboolean, WB_EnqueueMethodForCompilation(JNIEnv* env, jobject o, jobject method, jint comp_level, jint bci))
 654   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 655   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 656   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 657   nmethod* nm = CompileBroker::compile_method(mh, bci, comp_level, mh, mh->invocation_count(), "WhiteBox", THREAD);
 658   MutexLockerEx mu(Compile_lock);
 659   return (mh->queued_for_compilation() || nm != NULL);
 660 WB_END
 661 
 662 WB_ENTRY(jboolean, WB_ShouldPrintAssembly(JNIEnv* env, jobject o, jobject method, jint comp_level))
 663   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 664   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 665 
 666   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 667   DirectiveSet* directive = DirectivesStack::getMatchingDirective(mh, CompileBroker::compiler(comp_level));
 668   bool result = directive->PrintAssemblyOption;
 669   DirectivesStack::release(directive);
 670 
 671   return result;
 672 WB_END
 673 
 674 WB_ENTRY(jint, WB_MatchesInline(JNIEnv* env, jobject o, jobject method, jstring pattern))
 675   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 676   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 677 
 678   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 679 
 680   ResourceMark rm;
 681   const char* error_msg = NULL;
 682   char* method_str = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(pattern));
 683   InlineMatcher* m = InlineMatcher::parse_inline_pattern(method_str, error_msg);
 684 
 685   if (m == NULL) {
 686     assert(error_msg != NULL, "Always have an error message");
 687     tty->print_cr("Got error: %s", error_msg);


1524   {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;",
1525                                                       (void*)&WB_G1AuxiliaryMemoryUsage  },
1526   {CC"psVirtualSpaceAlignment",CC"()J",               (void*)&WB_PSVirtualSpaceAlignment},
1527   {CC"psHeapGenerationAlignment",CC"()J",             (void*)&WB_PSHeapGenerationAlignment},
1528 #endif // INCLUDE_ALL_GCS
1529 #if INCLUDE_NMT
1530   {CC"NMTMalloc",           CC"(J)J",                 (void*)&WB_NMTMalloc          },
1531   {CC"NMTMallocWithPseudoStack", CC"(JI)J",           (void*)&WB_NMTMallocWithPseudoStack},
1532   {CC"NMTFree",             CC"(J)V",                 (void*)&WB_NMTFree            },
1533   {CC"NMTReserveMemory",    CC"(J)J",                 (void*)&WB_NMTReserveMemory   },
1534   {CC"NMTCommitMemory",     CC"(JJ)V",                (void*)&WB_NMTCommitMemory    },
1535   {CC"NMTUncommitMemory",   CC"(JJ)V",                (void*)&WB_NMTUncommitMemory  },
1536   {CC"NMTReleaseMemory",    CC"(JJ)V",                (void*)&WB_NMTReleaseMemory   },
1537   {CC"NMTChangeTrackingLevel", CC"()Z",               (void*)&WB_NMTChangeTrackingLevel},
1538   {CC"NMTGetHashSize",      CC"()I",                  (void*)&WB_NMTGetHashSize     },
1539 #endif // INCLUDE_NMT
1540   {CC"deoptimizeFrames",   CC"(Z)I",                  (void*)&WB_DeoptimizeFrames  },
1541   {CC"deoptimizeAll",      CC"()V",                   (void*)&WB_DeoptimizeAll     },
1542   {CC"deoptimizeMethod0",   CC"(Ljava/lang/reflect/Executable;Z)I",
1543                                                       (void*)&WB_DeoptimizeMethod  },
1544   {CC"hasC1Compiler",       CC"()Z",                  (void*)&WB_HasC1Compiler     },
1545   {CC"hasC2Compiler",       CC"()Z",                  (void*)&WB_HasC2Compiler     },
1546   {CC"isMethodCompiled0",   CC"(Ljava/lang/reflect/Executable;Z)Z",
1547                                                       (void*)&WB_IsMethodCompiled  },
1548   {CC"isMethodCompilable0", CC"(Ljava/lang/reflect/Executable;IZ)Z",
1549                                                       (void*)&WB_IsMethodCompilable},
1550   {CC"isMethodQueuedForCompilation0",
1551       CC"(Ljava/lang/reflect/Executable;)Z",          (void*)&WB_IsMethodQueuedForCompilation},
1552   {CC"isIntrinsicAvailable0",
1553       CC"(Ljava/lang/reflect/Executable;Ljava/lang/reflect/Executable;I)Z",
1554                                                       (void*)&WB_IsIntrinsicAvailable},
1555   {CC"makeMethodNotCompilable0",
1556       CC"(Ljava/lang/reflect/Executable;IZ)V",        (void*)&WB_MakeMethodNotCompilable},
1557   {CC"testSetDontInlineMethod0",
1558       CC"(Ljava/lang/reflect/Executable;Z)Z",         (void*)&WB_TestSetDontInlineMethod},
1559   {CC"getMethodCompilationLevel0",
1560       CC"(Ljava/lang/reflect/Executable;Z)I",         (void*)&WB_GetMethodCompilationLevel},
1561   {CC"getMethodEntryBci0",
1562       CC"(Ljava/lang/reflect/Executable;)I",          (void*)&WB_GetMethodEntryBci},
1563   {CC"getCompileQueueSize",
1564       CC"(I)I",                                       (void*)&WB_GetCompileQueueSize},
1565   {CC"testSetForceInlineMethod0",
1566       CC"(Ljava/lang/reflect/Executable;Z)Z",         (void*)&WB_TestSetForceInlineMethod},
1567   {CC"enqueueMethodForCompilation0",
1568       CC"(Ljava/lang/reflect/Executable;II)Z",        (void*)&WB_EnqueueMethodForCompilation},
1569   {CC"clearMethodState0",
1570       CC"(Ljava/lang/reflect/Executable;)V",          (void*)&WB_ClearMethodState},
1571   {CC"lockCompilation",    CC"()V",                   (void*)&WB_LockCompilation},
1572   {CC"unlockCompilation",  CC"()V",                   (void*)&WB_UnlockCompilation},
1573   {CC"matchesMethod",
1574       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)I",
1575                                                       (void*)&WB_MatchesMethod},
1576   {CC"matchesInline",
1577       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)I",
1578                                                       (void*)&WB_MatchesInline},
1579   {CC"shouldPrintAssembly",
1580         CC"(Ljava/lang/reflect/Executable;I)Z",
1581                                                         (void*)&WB_ShouldPrintAssembly},
1582 
1583   {CC"isConstantVMFlag",   CC"(Ljava/lang/String;)Z", (void*)&WB_IsConstantVMFlag},
1584   {CC"isLockedVMFlag",     CC"(Ljava/lang/String;)Z", (void*)&WB_IsLockedVMFlag},
1585   {CC"setBooleanVMFlag",   CC"(Ljava/lang/String;Z)V",(void*)&WB_SetBooleanVMFlag},
1586   {CC"setIntVMFlag",       CC"(Ljava/lang/String;J)V",(void*)&WB_SetIntVMFlag},
1587   {CC"setUintVMFlag",      CC"(Ljava/lang/String;J)V",(void*)&WB_SetUintVMFlag},
1588   {CC"setIntxVMFlag",      CC"(Ljava/lang/String;J)V",(void*)&WB_SetIntxVMFlag},
1589   {CC"setUintxVMFlag",     CC"(Ljava/lang/String;J)V",(void*)&WB_SetUintxVMFlag},
1590   {CC"setUint64VMFlag",    CC"(Ljava/lang/String;J)V",(void*)&WB_SetUint64VMFlag},
1591   {CC"setSizeTVMFlag",     CC"(Ljava/lang/String;J)V",(void*)&WB_SetSizeTVMFlag},
1592   {CC"setDoubleVMFlag",    CC"(Ljava/lang/String;D)V",(void*)&WB_SetDoubleVMFlag},
1593   {CC"setStringVMFlag",    CC"(Ljava/lang/String;Ljava/lang/String;)V",
1594                                                       (void*)&WB_SetStringVMFlag},
1595   {CC"getBooleanVMFlag",   CC"(Ljava/lang/String;)Ljava/lang/Boolean;",
1596                                                       (void*)&WB_GetBooleanVMFlag},
1597   {CC"getIntVMFlag",       CC"(Ljava/lang/String;)Ljava/lang/Long;",
1598                                                       (void*)&WB_GetIntVMFlag},
1599   {CC"getUintVMFlag",      CC"(Ljava/lang/String;)Ljava/lang/Long;",
1600                                                       (void*)&WB_GetUintVMFlag},


src/share/vm/prims/whitebox.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File