--- a/.hgignore Fri Oct 29 11:49:47 2010 +0400
+++ b/.hgignore Tue Nov 02 22:15:35 2010 -0700
@@ -1,3 +1,4 @@
^build/
^dist/
/nbproject/private/
+^webrev
--- a/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -88,3 +88,6 @@
69f3edf083477955b5bd2f754252c7504167d8e1 jdk7-b111
f960f117f1623629f64203e2b09a92a8f6f14ff5 jdk7-b112
1fee41c7ed2b3388970a756a85aa693c0de8407a jdk7-b113
+750c1ccb2f2d1ddfa95ab6c7f897fdab2f87f7e9 jdk7-b114
+9cb24917216bc68997154f6e9566c3de62acb2f4 jdk7-b115
+a4e6aa1f45ad23a6f083ed98d970b5006ea4d292 jdk7-b116
--- a/.hgtags-top-repo Fri Oct 29 11:49:47 2010 +0400
+++ b/.hgtags-top-repo Tue Nov 02 22:15:35 2010 -0700
@@ -88,3 +88,6 @@
9702d6fef68e17533ee7fcf5923b11ead3e912ce jdk7-b111
b852103caf73da70068473777ae867a457bb3ae1 jdk7-b112
c1df968c4527bfab5f97662a89245f15d12d378b jdk7-b113
+27985a5c6e5268014d25d55886e0ecb96af4763d jdk7-b114
+e8ebdf41b9c01a26642848f4134f5504e8fb3233 jdk7-b115
+94e9a1bfba8b8d1fe0bfd43b88629b1f27b02a76 jdk7-b116
--- a/corba/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/corba/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -88,3 +88,6 @@
640fa4d4e2ad4c2d7e4815c955026740d8c52b7a jdk7-b111
cc67fdc4fee9a5b25caee4e71b51a8ff24ae7d1a jdk7-b112
a89a6c5be9d1a754868d3d359cbf7ad36aa95631 jdk7-b113
+88fddb73c5c4a4b50c319cbae9380caf5172ab45 jdk7-b114
+da7561d479e0ddaa4650d8023ac0fc7294e014e3 jdk7-b115
+98c028de4301106f2285ac0e128a1bb9b4c24f5c jdk7-b116
--- a/hotspot/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -123,3 +123,7 @@
07b042e13dde4f3479ba9ec55120fcd5e8623323 jdk7-b111
5511edd5d719f3fc9fdd04879482026a3d2c8652 jdk7-b112
beef35b96b81129c375d572357fb9548d9020db1 jdk7-b113
+68d6141ea19de3a9ba98ef753f0da41a61f736a0 jdk7-b114
+5511edd5d719f3fc9fdd04879482026a3d2c8652 hs20-b01
+bdbc48857210a509b3c50a3291ecb9dd6a72e016 jdk7-b115
+96b3f2a7add0b445b8aa421f6823cff5a2e2fe03 jdk7-b116
--- a/hotspot/make/hotspot_version Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/hotspot_version Tue Nov 02 22:15:35 2010 -0700
@@ -35,7 +35,7 @@
HS_MAJOR_VER=20
HS_MINOR_VER=0
-HS_BUILD_NUMBER=01
+HS_BUILD_NUMBER=02
JDK_MAJOR_VER=1
JDK_MINOR_VER=7
--- a/hotspot/make/linux/adlc_updater Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/linux/adlc_updater Tue Nov 02 22:15:35 2010 -0700
@@ -15,5 +15,6 @@
' F2=$2
mv $1+ $1
}
-[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
+fix_lines $2/$1 $3/$1
+[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
--- a/hotspot/make/solaris/adlc_updater Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/adlc_updater Tue Nov 02 22:15:35 2010 -0700
@@ -15,5 +15,6 @@
' F2=$2
mv $1+ $1
}
-[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
+fix_lines $2/$1 $3/$1
+[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
--- a/hotspot/make/solaris/makefiles/amd64.make Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/amd64.make Tue Nov 02 22:15:35 2010 -0700
@@ -35,7 +35,8 @@
# Temporary until SS10 C++ compiler is fixed
OPT_CFLAGS/generateOptoStub.o = -xO2
-
+# Temporary util SS12u1 C++ compiler is fixed
+OPT_CFLAGS/c1_LinearScan.o = -xO2
else
ifeq ("${Platform_compiler}", "gcc")
--- a/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486 Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486 Tue Nov 02 22:15:35 2010 -0700
@@ -18,7 +18,6 @@
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: fprofiler.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: generateOopMap.o;
text: .text%__1cNCellTypeStateLmake_bottom6F_0_: generateOopMap.o;
text: .text%__1cNCellTypeStateImake_any6Fi_0_: generateOopMap.o;
@@ -34,23 +33,15 @@
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: management.o;
text: .text%__1cJTimeStamp2t6M_v_: management.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: markSweep.o;
-text: .text%__1cJMarkSweepSMarkAndPushClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepRFollowRootClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepSFollowStackClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepOIsAliveClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepQKeepAliveClosure2t6M_v_: markSweep.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: memoryService.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
-text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
-text: .text%__1cTPSAlwaysTrueClosure2t6M_v_: psMarkSweep.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psScavenge.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: relocInfo.o;
text: .text%__1cQRelocationHolder2t6M_v_: relocInfo.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: runtimeService.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vmStructs.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
text: .text%__1cTAbstract_VM_VersionKvm_release6F_pkc_;
@@ -94,7 +85,6 @@
text: .text%__1cCosHSolarisOlibthread_init6F_v_;
text: .text%__1cRlwp_priocntl_init6F_i_: os_solaris.o;
text: .text%__1cNpriocntl_stub6FinGidtype_lipc_l_: os_solaris.o;
-text: .text%__1cOresolve_symbol6Fpkc_pC_: os_solaris.o;
text: .text%__1cCosHSolarisQsignal_sets_init6F_v_;
text: .text%__1cCosHSolarisPinit_signal_mem6F_v_;
text: .text%__1cCosHSolarisXinstall_signal_handlers6F_v_;
@@ -107,7 +97,6 @@
text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
-text: .text%__1cRAllocateTLSOffset6F_v_: threadLS_solaris_x86.o;
text: .text%__1cPvm_init_globals6F_v_;
text: .text%__1cScheck_ThreadShadow6F_v_;
text: .text%__1cNeventlog_init6F_v_;
@@ -119,17 +108,8 @@
text: .text%__1cKPerfMemoryKinitialize6F_v_;
text: .text%__1cCosZvm_allocation_granularity6F_i_;
text: .text%__1cKPerfMemoryUcreate_memory_region6FI_v_;
-text: .text%__1cUcreate_shared_memory6FI_pc_: perfMemory_solaris.o;
-text: .text%__1cSmmap_create_shared6FI_pc_: perfMemory_solaris.o;
text: .text%__1cCosScurrent_process_id6F_i_;
-text: .text%__1cNget_user_name6Fl_pc_: perfMemory_solaris.o;
-text: .text%__1cQget_user_tmp_dir6Fpkc_pc_: perfMemory_solaris.o;
text: .text%__1cCosSget_temp_directory6F_pkc_;
-text: .text%__1cWget_sharedmem_filename6Fpkci_pc_: perfMemory_solaris.o;
-text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
-text: .text%lstat: perfMemory_solaris.o;
-text: .text%__1cPfilename_to_pid6Fpkc_l_: perfMemory_solaris.o;
-text: .text%__1cbAcreate_sharedmem_resources6Fpkc1I_i_: perfMemory_solaris.o;
text: .text%__1cGThread2t6M_v_;
text: .text%__1cFArena2t6M_v_;
text: .text%__1cFChunk2n6FII_pv_;
@@ -161,7 +141,6 @@
text: .text%__1cNReservedSpaceUpage_align_size_down6FI_I_;
text: .text%__1cCosHSolarisVinit_thread_fpu_state6F_v_;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
-text: .text%__1cQcreate_os_thread6FpnGThread_I_pnIOSThread__: os_solaris.o;
text: .text%__1cIOSThread2t6MpFpv_i1_v_;
text: .text%__1cIOSThreadNpd_initialize6M_v_;
text: .text%__1cCosHSolarisPhotspot_sigmask6FpnGThread__v_;
@@ -186,7 +165,6 @@
text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cORuntimeServiceEinit6F_v_;
text: .text%__1cTClassLoadingServiceEinit6F_v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cObytecodes_init6F_v_;
text: .text%__1cJBytecodesKinitialize6F_v_;
text: .text%__1cJBytecodesNpd_initialize6F_v_;
@@ -200,7 +178,6 @@
text: .text%__1cLClassLoaderbBsetup_bootstrap_search_path6F_v_;
text: .text%__1cCosGstrdup6Fpkc_pc_;
text: .text%__1cCosEstat6FpkcpnEstat__i_;
-text: .text%stat: os_solaris.o;
text: .text%JVM_RawMonitorCreate;
text: .text%JVM_NativePath;
text: .text%JVM_RawMonitorEnter;
@@ -216,7 +193,6 @@
text: .text%__1cMVirtualSpaceQuncommitted_size6kM_I_;
text: .text%__1cMVirtualSpaceNreserved_size6kM_I_;
text: .text%__1cMVirtualSpaceOcommitted_size6kM_I_;
-text: .text%__1cSalign_to_page_size6FI_I_: heap.o;
text: .text%__1cICodeHeapFclear6M_v_;
text: .text%__1cICodeHeapTmark_segmap_as_free6MII_v_;
text: .text%__1cNMemoryServiceZadd_code_heap_memory_pool6FpnICodeHeap__v_;
@@ -244,9 +220,7 @@
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cICodeHeapSallocated_capacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cXresource_allocate_bytes6FI_pc_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cRAbstractAssembler2t6MpnKCodeBuffer__v_;
text: .text%__1cYVM_Version_StubGeneratorTgenerate_getPsrInfo6M_pC_: vm_version_x86.o;
text: .text%__1cMStubCodeMark2t6MpnRStubCodeGenerator_pkc4_v_;
@@ -269,10 +243,8 @@
text: .text%__1cMStubCodeMark2T6M_v_;
text: .text%__1cRAbstractAssemblerFflush6M_v_;
text: .text%__1cRStubCodeGeneratorLstub_epilog6MpnMStubCodeDesc__v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
text: .text%__1cKVM_VersionWget_processor_features6F_v_;
-text: .text%__1cVcheck_for_sse_support6F_v_: os_solaris_x86.o;
text: .text%jio_snprintf;
text: .text%jio_vsnprintf;
text: .text%__1cPlocal_vsnprintf6FpcIpkcpv_i_;
@@ -651,7 +623,6 @@
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableH_return6FnITosState__v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cJAssemblerHfistp_d6MnHAddress__v_;
text: .text%__1cNTemplateTableJputstatic6Fi_v_;
text: .text%__1cOMacroAssemblerLstore_check6MpnMRegisterImpl_nHAddress__v_;
@@ -735,7 +706,6 @@
text: .text%__1cLsymbolKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cLsymbolKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: symbolKlass.o;
text: .text%__1cLsymbolKlassOset_alloc_size6MI_v_: symbolKlass.o;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cJHashtableLhash_symbol6Fpkci_I_: symbolTable.o;
text: .text%__1cLSymbolTableGlookup6MipkciI_pnNsymbolOopDesc__;
@@ -806,7 +776,6 @@
text: .text%__1cQSystemDictionaryRfind_shared_class6FnMsymbolHandle__pnMklassOopDesc__;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cMstringStream2t6MI_v_;
@@ -854,7 +823,6 @@
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cSconstMethodOopDescbEchecked_exceptions_length_addr6kM_pH_;
text: .text%__1cSconstMethodOopDescYchecked_exceptions_start6kM_pnXCheckedExceptionElement__;
-text: .text%__1cXcopy_u2_with_conversion6FpH0i_v_: classFileParser.o;
text: .text%__1cPClassFileParserbDcompute_transitive_interfaces6MnTinstanceKlassHandle_nOobjArrayHandle_pnGThread__2_;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%method_compare: methodOop.o;
@@ -862,9 +830,6 @@
text: .text%__1cLklassVtableMget_mirandas6FpnNGrowableArray4CpnNmethodOopDesc___pnMklassOopDesc_pnPobjArrayOopDesc_8_v_;
text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
text: .text%__1cUvisit_all_interfaces6FpnPobjArrayOopDesc_pnXInterfaceVisiterClosure__v_;
-text: .text%__1cPClassFileParserUcompute_oop_map_size6MnTinstanceKlassHandle_ii_i_;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
@@ -878,7 +843,6 @@
text: .text%__1cLklassItableZsetup_itable_offset_table6FnTinstanceKlassHandle__v_;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassLfind_method6FpnPobjArrayOopDesc_pnNsymbolOopDesc_4_pnNmethodOopDesc__;
@@ -893,7 +857,6 @@
text: .text%__1cQPackageHashtableJget_entry6MiIpkcI_pnLPackageInfo__: classLoader.o;
text: .text%__1cMstringStream2T6M_v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cVLoaderConstraintTableWfind_loader_constraint6MnMsymbolHandle_nGHandle__ppnVLoaderConstraintEntry__;
text: .text%__1cQSystemDictionaryQadd_to_hierarchy6FnTinstanceKlassHandle_pnGThread__v_;
@@ -970,8 +933,6 @@
text: .text%__1cQjni_handles_init6F_v_;
text: .text%__1cKJNIHandlesKinitialize6F_v_;
text: .text%__1cOvmStructs_init6F_v_;
-text: .text%__1cIFrameMapEinit6F_v_;
-text: .text%__1cIRuntime1Kinitialize6F_v_;
text: .text%__1cIRuntime1Ninitialize_pd6F_v_;
text: .text%__1cNSharedRuntimeTgenerate_deopt_blob6F_v_;
text: .text%__1cJOopMapSet2t6M_v_;
@@ -996,7 +957,6 @@
text: .text%__1cGOopMapJheap_size6kM_i_;
text: .text%__1cJOopMapSetHcopy_to6MpC_v_;
text: .text%__1cGOopMapHcopy_to6MpC_v_;
-text: .text%__1cIRuntime1Rgenerate_blob_for6Fn0AGStubID__v_;
text: .text%__1cLOopRecorder2t6MpnFArena__v_;
text: .text%__1cIRuntime1Iname_for6Fn0AGStubID__pkc_;
text: .text%__1cLRuntimeStub2n6FII_pv_;
@@ -1004,7 +964,6 @@
text: .text%__1cNStubAssemblerHcall_RT6MpnMRegisterImpl_2pCi_i_;
text: .text%__1cJStubFrame2T6M_v_;
text: .text%__1cOMacroAssemblerLtlab_refill6MrnFLabel_22_v_;
-text: .text%__1cLlog2_intptr6Fi_i_: assembler_x86.o;
text: .text%__1cOMacroAssemblerNeden_allocate6MpnMRegisterImpl_2i2rnFLabel__v_;
text: .text%__1cOMacroAssemblerLverify_tlab6M_v_;
text: .text%__1cOMacroAssemblerNtlab_allocate6MpnMRegisterImpl_2i22rnFLabel__v_;
@@ -1033,7 +992,6 @@
text: .text%__1cPICStubInterfaceKinitialize6MpnEStub_i_v_: icBuffer.o;
text: .text%__1cTcompilerOracle_init6F_v_;
text: .text%__1cOCompilerOraclePparse_from_file6F_v_;
-text: .text%__1cHcc_file6F_pkc_: compilerOracle.o;
text: .text%__1cWcompilationPolicy_init6F_v_;
text: .text%__1cNinstanceKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cNinstanceKlassKjava_super6kM_pnMklassOopDesc__: instanceKlass.o;
@@ -1076,18 +1034,14 @@
text: .text%__1cNinstanceKlassNrewrite_class6MpnGThread__v_;
text: .text%__1cIRewriterHrewrite6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cYconstantPoolCacheOopDescKinitialize6MrnIintArray__v_;
-text: .text%__1cWConstantPoolCacheEntryRset_initial_state6Mi_v_;
text: .text%__1cTAbstractInterpreterLmethod_kind6FnMmethodHandle__n0AKMethodKind__;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
text: .text%__1cMNativeLookupNpure_jni_name6FnMmethodHandle__pc_;
text: .text%__1cMoutputStreamFprint6MpkcE_v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc__v_: nativeLookup.o;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc_ii_v_: nativeLookup.o;
text: .text%__1cMoutputStreamDput6Mc_v_;
text: .text%__1cCosYprint_jni_name_prefix_on6FpnMoutputStream_i_v_;
text: .text%__1cCosYprint_jni_name_suffix_on6FpnMoutputStream_i_v_;
-text: .text%__1cVlookup_special_native6Fpc_pC_: nativeLookup.o;
text: .text%__1cbEinitialize_converter_functions6F_v_;
text: .text%__1cIUniverseWupdate_heap_info_at_gc6F_v_;
text: .text%__1cQGenCollectedHeapIcapacity6kM_I_;
@@ -1137,7 +1091,6 @@
text: .text%__1cCosPpd_start_thread6FpnGThread__v_;
text: .text%__1cCosTset_native_priority6FpnGThread_i_nIOSReturn__;
text: .text%__1cQset_lwp_priority6Fiii_i_;
-text: .text%__1cVscale_to_lwp_priority6Fiii_i_: os_solaris.o;
text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cIVMThreadEloop6M_v_;
text: .text%__1cQVMOperationQdDueueLremove_next6M_pnMVM_Operation__;
@@ -1154,7 +1107,6 @@
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_;
text: .text%__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cRruntime_type_from6FpnJJavaValue__nJBasicType__: javaCalls.o;
text: .text%__1cTAbstractInterpreterbFsize_top_interpreter_activation6FpnNmethodOopDesc__i_;
text: .text%__1cPJavaCallWrapper2t6MnMmethodHandle_nGHandle_pnJJavaValue_pnGThread__v_;
text: .text%__1cRJavaCallArgumentsKparameters6M_pi_;
@@ -1192,7 +1144,6 @@
text: .text%__1cXSignatureHandlerLibraryOpd_set_handler6FpC_v_;
text: .text%jni_RegisterNatives: jni.o;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cPJavaCallWrapper2T6M_v_;
text: .text%__1cOJNIHandleBlockNrelease_block6Fp0pnGThread__v_;
text: .text%__1cNinstanceKlassbJset_initialization_state_and_notify6Mn0AKClassState_pnGThread__v_;
@@ -1206,7 +1157,6 @@
text: .text%__1cWConstantPoolCacheEntryOset_bytecode_26MnJBytecodesECode__v_;
text: .text%__1cSInterpreterRuntimeE_new6FpnKJavaThread_pnTconstantPoolOopDesc_i_v_;
text: .text%__1cMLinkResolverVresolve_invokespecial6FrnICallInfo_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cWConstantPoolCacheEntryPbytecode_number6FnJBytecodesECode__i_: cpCacheOop.o;
text: .text%__1cNSignatureInfoJdo_object6Mii_v_: bytecode.o;
text: .text%__1cNSignatureInfoHdo_long6M_v_: bytecode.o;
text: .text%JVM_CurrentTimeMillis;
@@ -1225,8 +1175,6 @@
text: .text%__1cKoopFactoryXnew_permanent_charArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
text: .text%__1cNmethodOopDescIbci_from6kMpC_i_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cNmethodOopDescIbcp_from6kMi_pC_;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cMLinkResolverVresolve_invokevirtual6FrnICallInfo_nGHandle_nSconstantPoolHandle_ipnGThread__v_;
@@ -1258,7 +1206,6 @@
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
text: .text%__1cHUNICODEHas_utf86FpHi_pc_;
text: .text%__1cHUNICODELutf8_length6FpHi_i_;
-text: .text%__1cKutf8_write6FpCH_0_: utf8.o;
text: .text%JVM_FindPrimitiveClass;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
text: .text%jni_ReleaseStringUTFChars;
@@ -1300,7 +1247,6 @@
text: .text%__1cMthread_entry6FpnKJavaThread_pnGThread__v_: jvm.o;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cNFingerprinterHdo_long6M_v_: dump.o;
text: .text%JVM_MonitorWait;
text: .text%__1cQjava_lang_ThreadRget_thread_status6FpnHoopDesc__n0AMThreadStatus__;
@@ -1314,23 +1260,19 @@
text: .text%jni_NewStringUTF: jni.o;
text: .text%jni_CallObjectMethod: jni.o;
text: .text%__1cRSignatureIterator2t6MpnGThread_pnNsymbolOopDesc__v_;
-text: .text%__1cUjni_invoke_nonstatic6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cXJNI_ArgumentPusherVaArgHiterate6MX_v_: jni.o;
text: .text%__1cXJNI_ArgumentPusherVaArgKget_object6M_v_: jni.o;
text: .text%jni_ExceptionOccurred: jni.o;
-text: .text%__1cbAjni_check_async_exceptions6FpnKJavaThread__v_: jni.o;
text: .text%jni_DeleteLocalRef: jni.o;
text: .text%__1cOJNIHandleBlockRrebuild_free_list6M_v_;
text: .text%jni_EnsureLocalCapacity;
text: .text%jni_GetStaticMethodID: jni.o;
text: .text%jni_CallStaticObjectMethodV: jni.o;
-text: .text%__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%jni_ExceptionCheck: jni.o;
text: .text%jni_NewString: jni.o;
text: .text%__1cQjava_lang_StringXcreate_oop_from_unicode6FpHipnGThread__pnHoopDesc__;
text: .text%JVM_InitProperties;
-text: .text%__1cMset_property6FnGHandle_pkc2pnGThread__v_: jvm.o;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2t6M_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2T6M_v_;
@@ -1394,7 +1336,6 @@
text: .text%jni_GetStringUTFLength: jni.o;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%jni_GetStringLength: jni.o;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%jni_GetStringUTFRegion: jni.o;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc_ii_pc_;
text: .text%JVM_FindClassFromClassLoader;
@@ -1445,13 +1386,9 @@
text: .text%__1cNSignatureInfoIdo_float6M_v_: bytecode.o;
text: .text%__1cFJNIidEfind6Mi_p0_;
text: .text%jni_NewObjectV: jni.o;
-text: .text%__1cMalloc_object6FpnH_jclass_pnGThread__pnPinstanceOopDesc__: jni.o;
text: .text%jni_GetStringRegion: jni.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%jni_GetObjectField: jni.o;
text: .text%jni_GetStringCritical: jni.o;
-text: .text%__1cJGC_lockerNlock_critical6FpnKJavaThread__v_: jni.o;
text: .text%jni_ReleaseStringCritical: jni.o;
text: .text%JVM_LoadLibrary;
text: .text%JVM_FindLibraryEntry;
@@ -1496,10 +1433,7 @@
text: .text%jni_SetObjectArrayElement: jni.o;
text: .text%jni_GetObjectArrayElement: jni.o;
text: .text%__1cQSimpleCompPolicyXmethod_invocation_event6MnMmethodHandle_pnGThread__v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cRInvocationCounterJset_carry6M_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cLJvmtiExportQenter_live_phase6F_v_;
text: .text%__1cLJvmtiExportTpost_vm_initialized6F_v_;
@@ -1512,7 +1446,6 @@
text: .text%__1cCosOsignal_init_pd6F_v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cICompiler2t6M_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
@@ -1570,10 +1503,7 @@
text: .text%__1cTjava_lang_ThrowableNset_backtrace6FpnHoopDesc_2_v_;
text: .text%__1cTjava_lang_ThrowableQclear_stacktrace6FpnHoopDesc__v_;
text: .text%__1cVPreserveExceptionMark2T6M_v_;
-text: .text%__1cKExceptionsG_throw6FpnGThread_pkcinGHandle__v_;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
-text: .text%__1cNSharedRuntimebOraw_exception_handler_for_return_address6FpC_1_;
text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThread_pnHoopDesc__pC_;
text: .text%__1cNmethodOopDescbEfast_exception_handler_bci_for6MnLKlassHandle_ipnGThread__i_;
text: .text%__1cSInterpreterRuntimePset_bcp_and_mdp6FpCpnKJavaThread__v_;
@@ -1588,7 +1518,6 @@
text: .text%__1cNCompileBrokerVpush_jni_handle_block6F_v_;
text: .text%__1cPciObjectFactory2t6MpnFArena_i_v_;
text: .text%__1cPciObjectFactoryTinit_shared_objects6M_v_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cIciObject2t6MnGHandle__v_;
text: .text%__1cPciObjectFactoryEfind6MpnHoopDesc_pnNGrowableArray4CpnIciObject____i_;
text: .text%__1cPciObjectFactoryNinit_ident_of6MpnIciObject__v_;
@@ -1675,14 +1604,12 @@
text: .text%__1cOGenerateOopMapNreport_result6M_v_;
text: .text%__1cLCompilationJbuild_hir6M_v_;
text: .text%__1cCIR2t6MpnLCompilation_pnIciMethod_i_v_;
-text: .text%__1cJValueTypeKinitialize6F_v_;
text: .text%__1cMciNullObjectEmake6F_p0_;
text: .text%__1cMGraphBuilderKinitialize6F_v_;
text: .text%__1cJXHandlers2t6MpnIciMethod__v_;
text: .text%__1cIciMethodJload_code6M_v_;
text: .text%__1cHIRScopeLbuild_graph6MpnLCompilation_i_pnKBlockBegin__;
text: .text%__1cQBlockListBuilderLset_leaders6M_v_;
-text: .text%__1cKValueStack2t6MpnHIRScope_ii_v_;
text: .text%__1cMGraphBuilderPpush_root_scope6MpnHIRScope_pnJBlockList_pnKBlockBegin__v_;
text: .text%__1cMGraphBuilderJScopeDataJset_scope6MpnHIRScope__v_;
text: .text%__1cIValueMap2t6M_v_;
@@ -1690,7 +1617,6 @@
text: .text%__1cNResourceArrayGexpand6MIiri_v_;
text: .text%__1cMGraphBuilderJScopeDataVremove_from_work_list6M_pnKBlockBegin__;
text: .text%__1cIValueMapIkill_all6M_v_;
-text: .text%__1cKValueStackEcopy6M_p0_;
text: .text%__1cGValuesIpush_all6Mpk0_v_: c1_ValueStack.o;
text: .text%__1cMGraphBuilderbBiterate_bytecodes_for_block6Mi_pnIBlockEnd__;
text: .text%__1cMGraphBuilderJScopeDataIblock_at6Mi_pnKBlockBegin__;
@@ -1709,8 +1635,6 @@
text: .text%__1cMas_ValueType6FnJBasicType__pnJValueType__;
text: .text%__1cMLinkResolverXresolve_klass_no_update6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cMGraphBuilderKlock_stack6M_pnKValueStack__;
-text: .text%__1cKValueStackKcopy_locks6M_p0_;
text: .text%__1cJLoadFieldFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cJLoadFieldEhash6kM_i_: c1_Instruction.o;
@@ -1738,7 +1662,6 @@
text: .text%__1cGReturnFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerJdo_Return6MpnGReturn__v_;
text: .text%__1cGReturnJas_Return6M_p0_: c1_GraphBuilder.o;
-text: .text%__1cKValueStackMcaller_state6kM_p0_;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cMGraphBuilderHif_same6MpnJValueType_nLInstructionJCondition__v_;
text: .text%__1cNCanonicalizerNdo_StoreField6MpnKStoreField__v_;
@@ -1781,24 +1704,17 @@
text: .text%__1cGBitMapIset_from6M0_v_;
text: .text%__1cQNullCheckVisitorNdo_BlockBegin6MpnKBlockBegin__v_;
text: .text%__1cQNullCheckVisitorHdo_Base6MpnEBase__v_;
-text: .text%__1cKStateSplitPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
text: .text%__1cQNullCheckVisitorHdo_Goto6MpnEGoto__v_;
-text: .text%__1cTNullCheckEliminatorIdo_value6FppnLInstruction__v_;
-text: .text%__1cFLocalPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cFLocalFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorIdo_Local6MpnFLocal__v_;
-text: .text%__1cLAccessFieldPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cTNullCheckEliminatorShandle_AccessField6MpnLAccessField__v_;
-text: .text%__1cCIfPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
-text: .text%__1cIConstantPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorLdo_Constant6MpnIConstant__v_;
text: .text%__1cQNullCheckVisitorFdo_If6MpnCIf__v_;
text: .text%__1cQNullCheckVisitorPdo_ArithmeticOp6MpnMArithmeticOp__v_;
text: .text%__1cQNullCheckVisitorOdo_LoadIndexed6MpnLLoadIndexed__v_;
text: .text%__1cTNullCheckEliminatorShandle_LoadIndexed6MpnLLoadIndexed__v_;
text: .text%__1cQNullCheckVisitorNdo_StoreField6MpnKStoreField__v_;
-text: .text%__1cGReturnPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorJdo_Return6MpnGReturn__v_;
text: .text%__1cGBitMapQset_intersection6M0_v_;
text: .text%__1cLInstructionJas_Invoke6M_pnGInvoke__: c1_Canonicalizer.o;
@@ -1811,11 +1727,7 @@
text: .text%__1cIBlockEndOsubstitute_sux6MpnKBlockBegin_2_v_;
text: .text%__1cCIRMcompute_code6M_v_;
text: .text%__1cJBlockListJblocks_do6MpFpnKBlockBegin__v_v_;
-text: .text%__1cQUseCountComputerXbasic_compute_use_count6FpnKBlockBegin__v_: c1_IR.o;
-text: .text%__1cQUseCountComputerQupdate_use_count6FppnLInstruction__v_: c1_IR.o;
text: .text%__1cFLocalIas_Local6M_p0_: c1_GraphBuilder.o;
-text: .text%__1cKStateSplitPstate_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cKValueStackJvalues_do6MpFppnLInstruction__v_v_;
text: .text%__1cLCompilationIemit_lir6M_v_;
text: .text%__1cLInstructionGas_Phi6M_pnDPhi__: c1_Canonicalizer.o;
text: .text%__1cMas_BasicType6FpnJValueType__nJBasicType__;
@@ -1888,14 +1800,11 @@
text: .text%__1cYDebugInformationRecorderIpcs_size6M_i_;
text: .text%__1cYDebugInformationRecorderJdata_size6M_i_;
text: .text%__1cHnmethod2n6FIi_pv_;
-text: .text%__1cHnmFlagsFclear6M_v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cGPcDesc2t6Miii_v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cKNativeJumpbEcheck_verified_entry_alignment6FpC1_v_;
text: .text%__1cFciEnvKcompile_id6M_I_;
@@ -1938,8 +1847,6 @@
text: .text%__1cKValueStackMclear_locals6M_v_;
text: .text%__1cMGraphBuilderIstack_op6MnJBytecodesECode__v_;
text: .text%__1cMGraphBuilderGinvoke6MnJBytecodesECode__v_;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cFciEnvbTget_instance_klass_for_declared_method_holder6FpnHciKlass__pnPciInstanceKlass__;
text: .text%__1cPciObjectFactoryTget_unloaded_method6MpnPciInstanceKlass_pnIciSymbol_4_pnIciMethod__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
@@ -1951,18 +1858,13 @@
text: .text%__1cGInvokeFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cGInvokeJas_Invoke6M_p0_: c1_Instruction.o;
-text: .text%__1cFThrowFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerIdo_Throw6MpnFThrow__v_;
-text: .text%__1cFThrowIas_Throw6M_p0_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorOdo_NewInstance6MpnLNewInstance__v_;
text: .text%__1cTNullCheckEliminatorShandle_NewInstance6MpnLNewInstance__v_;
-text: .text%__1cGInvokePinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cTNullCheckEliminatorNhandle_Invoke6MpnGInvoke__v_;
-text: .text%__1cFThrowPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorIdo_Throw6MpnFThrow__v_;
text: .text%__1cLInstructionGnegate6Fn0AJCondition__1_;
-text: .text%__1cFThrowPstate_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cIVoidTypeLas_VoidType6M_p0_: c1_ValueType.o;
text: .text%__1cLNewInstanceKexact_type6kM_pnGciType__;
text: .text%__1cLNewInstanceOas_NewInstance6M_p0_: c1_Instruction.o;
@@ -1975,7 +1877,6 @@
text: .text%__1cNLIR_AssemblerJemit_call6MpnOLIR_OpJavaCall__v_;
text: .text%__1cNLIR_AssemblerKalign_call6MnILIR_Code__v_;
text: .text%__1cICodeStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
-text: .text%__1cNLIR_AssemblerEcall6MpCnJrelocInfoJrelocType_pnMCodeEmitInfo__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cYinternal_word_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cJrelocInfoKset_format6Mi_v_;
@@ -2021,9 +1922,6 @@
text: .text%__1cMGraphBuilderWrecursive_inline_level6kMpnIciMethod__i_;
text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cNCanonicalizerMdo_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cKValueStackKpush_scope6MpnHIRScope__p0_;
-text: .text%__1cHIRScopeXcompute_lock_stack_size6M_v_;
-text: .text%__1cMGraphBuilderJScopeDataRcaller_stack_size6kM_i_;
text: .text%__1cMGraphBuilderJScopeDataLnum_returns6M_i_;
text: .text%__1cMGraphBuilderJScopeDataXset_inline_cleanup_info6MpnKBlockBegin_pnLInstruction_pnKValueStack__v_;
text: .text%__1cMGraphBuilderJScopeDataQincr_num_returns6M_v_;
@@ -2033,12 +1931,8 @@
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cMGraphBuilderOinline_bailout6Mpkc_v_;
text: .text%__1cLInstructionEprev6MpnKBlockBegin__p0_;
-text: .text%__1cKBlockBeginPblock_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIConstantPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIBlockEndPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cQNullCheckVisitorMdo_NullCheck6MpnJNullCheck__v_;
text: .text%__1cTNullCheckEliminatorQhandle_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cHIRScopeNtop_scope_bci6kM_i_;
text: .text%__1cNSharedRuntimeQfind_callee_info6FpnKJavaThread_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cLPcDescCacheLadd_pc_desc6MpnGPcDesc__v_;
@@ -2055,14 +1949,11 @@
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%jni_GetByteArrayRegion: jni.o;
text: .text%JVM_DefineClassWithSource;
-text: .text%__1cXjvm_define_class_common6FpnHJNIEnv__pkcpnI_jobject_pkWi53pnGThread__pnH_jclass__: jvm.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbDverify_legal_method_signature6MnMsymbolHandle_1pnGThread__i_;
text: .text%__1cPClassFileParserXverify_legal_class_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cPDictionaryEntryVadd_protection_domain6MpnHoopDesc__v_;
-text: .text%__1cUverify_byte_codes_fn6F_pv_: verifier.o;
text: .text%JVM_GetClassCPEntriesCount;
text: .text%JVM_GetClassCPTypes;
text: .text%JVM_GetClassNameUTF;
@@ -2124,7 +2015,6 @@
text: .text%__1cIOSThreadKpd_destroy6M_v_;
text: .text%jni_DestroyJavaVM;
text: .text%jni_AttachCurrentThread;
-text: .text%attach_current_thread: jni.o;
text: .text%__1cKJavaThreadVinvoke_shutdown_hooks6M_v_;
text: .text%__1cLbefore_exit6FpnKJavaThread__v_;
text: .text%__1cNWatcherThreadEstop6F_v_;
@@ -2139,7 +2029,6 @@
text: .text%__1cCosNsigexitnum_pd6F_i_;
text: .text%__1cCosNsignal_notify6Fi_v_;
text: .text%__1cQprint_statistics6F_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cIVMThreadXwait_for_vm_thread_exit6F_v_;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
@@ -2158,7 +2047,6 @@
text: .text%__1cQSystemDictionaryStry_get_next_class6F_pnMklassOopDesc__;
text: .text%__1cKDictionaryStry_get_next_class6M_pnMklassOopDesc__;
text: .text%__1cNinstanceKlassKmethods_do6MpFpnNmethodOopDesc__v_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cHVM_ExitbJwait_for_threads_in_native_to_block6F_i_;
text: .text%__1cIVMThreadHdestroy6F_v_;
@@ -2171,8 +2059,6 @@
text: .text%__1cIPerfData2T6M_v_;
text: .text%__1cKPerfMemoryHdestroy6F_v_;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
-text: .text%__1cUdelete_shared_memory6FpcI_v_: perfMemory_solaris.o;
-text: .text%__1cLremove_file6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cMostream_exit6F_v_;
text: .text%__SLIP.DELETER__C: ostream.o;
text: .text%JVM_Halt;
@@ -2206,14 +2092,10 @@
text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cMGraphBuilderNload_constant6M_v_;
-text: .text%__1cQciBytecodeStreamSget_constant_index6kM_i_;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cMLinkResolverbBresolve_static_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cJValueTypeLas_VoidType6M_pnIVoidType__: c1_Canonicalizer.o;
text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cRComputeEntryStackIdo_array6Mii_v_: generateOopMap.o;
-text: .text%__1cEIfOpPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cEIfOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorHdo_IfOp6MpnEIfOp__v_;
text: .text%__1cOGenerateOopMapMdo_checkcast6M_v_;
@@ -2223,12 +2105,10 @@
text: .text%__1cKInstanceOfNas_InstanceOf6M_p0_: c1_GraphBuilder.o;
text: .text%__1cMGraphBuilderKcheck_cast6Mi_v_;
text: .text%__1cNCanonicalizerMdo_CheckCast6MpnJCheckCast__v_;
-text: .text%__1cJTypeCheckPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorNdo_InstanceOf6MpnKInstanceOf__v_;
text: .text%__1cQNullCheckVisitorMdo_CheckCast6MpnJCheckCast__v_;
text: .text%__1cTSimpleExceptionStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
text: .text%__1cNLIR_AssemblerQemit_opTypeCheck6MpnPLIR_OpTypeCheck__v_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cTSimpleExceptionStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
text: .text%__1cTSimpleExceptionStubJemit_code6MpnNLIR_Assembler__v_;
text: .text%__1cJLoadFieldMas_LoadField6M_p0_: c1_Instruction.o;
@@ -2266,8 +2146,6 @@
text: .text%__1cMGraphBuilderNstore_indexed6MnJBasicType__v_;
text: .text%__1cIValueMapKkill_array6MpnJValueType__v_;
text: .text%__1cNCanonicalizerPdo_StoreIndexed6MpnMStoreIndexed__v_;
-text: .text%__1cLAccessFieldPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cHConvertPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_LogicOp6MpnHLogicOp__v_;
text: .text%__1cQNullCheckVisitorKdo_Convert6MpnHConvert__v_;
text: .text%__1cQNullCheckVisitorPdo_StoreIndexed6MpnMStoreIndexed__v_;
@@ -2294,10 +2172,8 @@
text: .text%__1cMNewTypeArrayFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerPdo_NewTypeArray6MpnMNewTypeArray__v_;
text: .text%__1cNCanonicalizerMdo_Intrinsic6MpnJIntrinsic__v_;
-text: .text%__1cLAccessArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_ArrayLength6MpnLArrayLength__v_;
text: .text%__1cTNullCheckEliminatorShandle_ArrayLength6MpnLArrayLength__v_;
-text: .text%__1cINewArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorPdo_NewTypeArray6MpnMNewTypeArray__v_;
text: .text%__1cTNullCheckEliminatorPhandle_NewArray6MpnINewArray__v_;
text: .text%__1cQNullCheckVisitorMdo_Intrinsic6MpnJIntrinsic__v_;
@@ -2309,7 +2185,6 @@
text: .text%__1cLArrayLengthOas_ArrayLength6M_p0_: c1_GraphBuilder.o;
text: .text%__1cILIR_ListUunsigned_shift_right6MpnLLIR_OprDesc_222_v_;
text: .text%__1cQNewTypeArrayStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
-text: .text%__1cNLIR_AssemblerHic_call6MpCpnMCodeEmitInfo__v_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNLIR_AssemblerQemit_alloc_array6MpnQLIR_OpAllocArray__v_;
text: .text%__1cNLIR_AssemblerSarray_element_size6kMnJBasicType__nHAddressLScaleFactor__;
@@ -2335,8 +2210,6 @@
text: .text%JVM_NewArray;
text: .text%__1cKReflectionRreflect_new_array6FpnHoopDesc_ipnGThread__pnMarrayOopDesc__;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
text: .text%__1cMGraphBuilderQnew_object_array6M_v_;
text: .text%__1cONewObjectArrayFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerRdo_NewObjectArray6MpnONewObjectArray__v_;
@@ -2349,7 +2222,6 @@
text: .text%__1cHShiftOpEname6kM_pkc_: c1_GraphBuilder.o;
text: .text%__1cLLoadIndexedOas_LoadIndexed6M_p0_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorRdo_NewObjectArray6MpnONewObjectArray__v_;
-text: .text%__1cDOp2Pinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_ShiftOp6MpnHShiftOp__v_;
text: .text%__1cHciKlassMaccess_flags6M_i_;
text: .text%__1cPciObjArrayKlassEmake6FpnHciKlass__p0_;
@@ -2413,7 +2285,6 @@
text: .text%__1cPVM_GC_OperationZacquire_pending_list_lock6M_v_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
text: .text%__1cbAVM_GenCollectForAllocationEdoit6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cTContiguousSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cTContiguousSpacePoolNused_in_bytes6M_I_: memoryPool.o;
@@ -2441,11 +2312,7 @@
text: .text%__1cPFastScanClosureGdo_oop6MppnHoopDesc__v_: defNewGeneration.o;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cOJNIHandleBlockHoops_do6MpnKOopClosure__v_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
-text: .text%__1cNchunk_oops_do6FpnKOopClosure_pnFChunk_pc_I_: handles.o;
text: .text%__1cFframeVinterpreter_frame_bci6kM_i_;
text: .text%__1cFframebDinterpreter_frame_monitor_end6kM_pnPBasicObjectLock__;
text: .text%__1cFframebFinterpreter_frame_monitor_begin6kM_pnPBasicObjectLock__;
@@ -2483,7 +2350,6 @@
text: .text%__1cOGenerateOopMapOdo_monitorexit6Mi_v_;
text: .text%__1cOGenerateOopMapLmonitor_pop6M_nNCellTypeState__;
text: .text%__1cRComputeEntryStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cQVMOperationQdDueueHoops_do6MpnKOopClosure__v_;
text: .text%__1cQVMOperationQdDueueNqueue_oops_do6MipnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
@@ -2584,7 +2450,6 @@
text: .text%__1cRTenuredGenerationPupdate_counters6M_v_;
text: .text%__1cUCompactingPermGenGenPupdate_counters6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%__1cNJvmtiGCMarker2T6M_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
@@ -2597,7 +2462,6 @@
text: .text%__1cMGraphBuilderJnegate_op6MpnJValueType__v_;
text: .text%__1cINegateOpFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerLdo_NegateOp6MpnINegateOp__v_;
-text: .text%__1cINegateOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorLdo_NegateOp6MpnINegateOp__v_;
text: .text%__1cILIR_ListLstore_check6MpnLLIR_OprDesc_2222pnMCodeEmitInfo__v_;
text: .text%__1cXArrayStoreExceptionStub2t6MpnMCodeEmitInfo__v_;
@@ -2637,7 +2501,6 @@
text: .text%JVM_IsInterrupted;
text: .text%__1cTresource_free_bytes6FpcI_v_;
text: .text%__1cRComputeEntryStackHdo_bool6M_v_: generateOopMap.o;
-text: .text%__1cMArithmeticOpKlock_stack6kM_pnKValueStack__: c1_Instruction.o;
text: .text%__1cJAssemblerGfist_s6MnHAddress__v_;
text: .text%__1cNLIR_AssemblerJreset_FPU6M_v_;
text: .text%__1cNLIR_AssemblerIemit_op36MpnHLIR_Op3__v_;
@@ -2659,7 +2522,6 @@
text: .text%__1cMGraphBuilderMtable_switch6M_v_;
text: .text%__1cLTableSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_TableSwitch6MpnLTableSwitch__v_;
-text: .text%__1cGSwitchPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_TableSwitch6MpnLTableSwitch__v_;
text: .text%__1cWstatic_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cSCompiledStaticCallMset_to_clean6M_v_;
@@ -2672,7 +2534,6 @@
text: .text%Unsafe_SetMemory;
text: .text%__1cNSharedRuntimeElrem6Fxx_x_;
text: .text%Unsafe_DefineClass1;
-text: .text%__1cSUnsafe_DefineClass6FpnHJNIEnv__pnI_jstring_pnL_jbyteArray_iipnI_jobject_7_pnH_jclass__: unsafe.o;
text: .text%JVM_DefineClass;
text: .text%__1cVLoaderConstraintTableYextend_loader_constraint6MpnVLoaderConstraintEntry_nGHandle_pnMklassOopDesc__v_;
text: .text%__1cVLoaderConstraintTablebHensure_loader_constraint_capacity6MpnVLoaderConstraintEntry_i_v_;
@@ -2680,7 +2541,6 @@
text: .text%__1cRComputeEntryStackHdo_char6M_v_: generateOopMap.o;
text: .text%jni_NewDirectByteBuffer;
text: .text%lookupDirectBufferClasses: jni.o;
-text: .text%__1cJlookupOne6FpnHJNIEnv__pkcpnGThread__pnH_jclass__: jni.o;
text: .text%__1cHJNIEnv_JNewObject6MpnH_jclass_pnK_jmethodID_E_pnI_jobject__: jni.o;
text: .text%jni_GetDoubleArrayRegion: jni.o;
text: .text%__1cNSignatureInfoJdo_double6M_v_: bytecode.o;
@@ -2701,7 +2561,6 @@
text: .text%__1cPClassFileParserUverify_constantvalue6MiinSconstantPoolHandle_pnGThread__v_;
text: .text%JVM_MonitorNotify;
text: .text%__1cSObjectSynchronizerGnotify6FnGHandle_pnGThread__v_;
-text: .text%__1cKValueStackElock6MpnHIRScope_pnLInstruction__i_;
text: .text%__1cKValueStackGunlock6M_i_;
text: .text%__1cQMonitorEnterStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
text: .text%__1cNLIR_AssemblerJemit_lock6MpnKLIR_OpLock__v_;
@@ -2726,8 +2585,6 @@
text: .text%__1cMGenMarkSweepPallocate_stacks6F_v_;
text: .text%__1cQGenCollectedHeapOgather_scratch6MpnKGeneration_I_pnMScratchBlock__;
text: .text%__1cQDefNewGenerationScontribute_scratch6MrpnMScratchBlock_pnKGeneration_I_v_;
-text: .text%__1cRsort_scratch_list6FrpnMScratchBlock__v_: genCollectedHeap.o;
-text: .text%__1cVremoveSmallestScratch6FppnMScratchBlock__1_: genCollectedHeap.o;
text: .text%__1cJMarkSweepRFollowRootClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
text: .text%__1cParrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cLklassVtableToop_follow_contents6M_v_;
@@ -2784,12 +2641,6 @@
text: .text%__1cMGenMarkSweepRmark_sweep_phase36Fi_v_;
text: .text%__1cUCompactingPermGenGenTpre_adjust_pointers6M_v_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cJHashtableHoops_do6MpnKOopClosure__v_;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cYGenAdjustPointersClosureNdo_generation6MpnKGeneration__v_: genMarkSweep.o;
@@ -2840,7 +2691,6 @@
text: .text%__1cMLinkResolverbEvtable_index_of_miranda_method6FnLKlassHandle_nMsymbolHandle_2pnGThread__i_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cRPrivilegedElementHoops_do6MpnKOopClosure__v_;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cMOopMapStream2t6MpnGOopMap_i_v_;
text: .text%__1cQComputeCallStackIdo_float6M_v_: generateOopMap.o;
text: .text%jni_DeleteWeakGlobalRef: jni.o;
@@ -2849,7 +2699,6 @@
text: .text%__1cNCanonicalizerPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cLMonitorExitFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_MonitorExit6MpnLMonitorExit__v_;
-text: .text%__1cNAccessMonitorPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cTNullCheckEliminatorUhandle_AccessMonitor6MpnNAccessMonitor__v_;
text: .text%__1cQNullCheckVisitorOdo_MonitorExit6MpnLMonitorExit__v_;
@@ -2867,7 +2716,6 @@
text: .text%jni_AllocObject: jni.o;
text: .text%__1cQinstanceRefKlassUoop_oop_iterate_nv_m6MpnHoopDesc_pnQFilteringClosure_nJMemRegion__i_;
text: .text%__1cNCanonicalizerMset_constant6Mi_v_: c1_Canonicalizer.o;
-text: .text%__1cJTypeCheckPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cNLIR_AssemblerMcheck_icache6M_i_;
text: .text%__1cNLIR_AssemblerZjobject2reg_with_patching6MpnMRegisterImpl_pnMCodeEmitInfo__v_;
text: .text%__1cIRuntime1Mnew_instance6FpnKJavaThread_pnMklassOopDesc__v_;
@@ -2878,7 +2726,6 @@
text: .text%__1cJFloatTypeMas_FloatType6M_p0_: c1_Canonicalizer.o;
text: .text%__1cRAbstractAssemblerGa_long6Mi_v_;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
-text: .text%__1cINewArrayPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cIRuntime1Mmonitorenter6FpnKJavaThread_pnHoopDesc_pnPBasicObjectLock__v_;
text: .text%__1cIRuntime1Lmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cNVM_DeoptimizeEdoit6M_v_;
@@ -2887,14 +2734,8 @@
text: .text%__1cKJavaThreadbFdeoptimized_wrt_marked_nmethods6M_v_;
text: .text%__1cJCodeCachebGmake_marked_nmethods_not_entrant6F_v_;
text: .text%__1cJCodeCacheNalive_nmethod6FpnICodeBlob__pnHnmethod__;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cKNativeJumpUpatch_verified_entry6FpC11_v_;
text: .text%__1cHnmethodVmark_as_seen_on_stack6M_v_;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
-text: .text%__1cKJavaThreadLnmethods_do6M_v_;
-text: .text%__1cGThreadLnmethods_do6M_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
-text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
text: .text%__1cONMethodSweeperPprocess_nmethod6FpnHnmethod__v_;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cKCompiledIC2t6MpnKRelocation__v_;
@@ -2902,14 +2743,9 @@
text: .text%__1cTMaskFillerForNativeIpass_int6M_v_: oopMapCache.o;
text: .text%__1cNSharedRuntimeDf2l6Ff_x_;
text: .text%__1cMGraphBuilderKcompare_op6MpnJValueType_nJBytecodesECode__v_;
-text: .text%__1cJCompareOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_CompareOp6MpnJCompareOp__v_;
-text: .text%__1cJCompareOpEhash6kM_i_: c1_Instruction.o;
-text: .text%__1cJCompareOpEname6kM_pkc_: c1_Instruction.o;
-text: .text%__1cJCompareOpMas_CompareOp6M_p0_: c1_Instruction.o;
text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cQPlaceholderEntryHoops_do6MpnKOopClosure__v_;
text: .text%__1cHnmethodFflush6M_v_;
text: .text%__1cICodeBlobFflush6M_v_;
@@ -2951,9 +2787,7 @@
text: .text%__1cMGraphBuilderNlookup_switch6M_v_;
text: .text%__1cMLookupSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerPdo_LookupSwitch6MpnMLookupSwitch__v_;
-text: .text%__1cMUnsafePutRawPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafePutRaw6MpnMUnsafePutRaw__v_;
-text: .text%__1cLUnsafeRawOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
text: .text%__1cQNullCheckVisitorPdo_LookupSwitch6MpnMLookupSwitch__v_;
text: .text%__1cNSharedRuntimeEldiv6Fxx_x_;
--- a/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc Tue Nov 02 22:15:35 2010 -0700
@@ -135,7 +135,6 @@
text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cORuntimeServiceEinit6F_v_;
text: .text%__1cTClassLoadingServiceEinit6F_v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cObytecodes_init6F_v_;
text: .text%__1cJBytecodesKinitialize6F_v_;
text: .text%__1cJBytecodesNpd_initialize6F_v_;
@@ -181,9 +180,7 @@
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cICodeHeapSallocated_capacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cXresource_allocate_bytes6FI_pc_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cRAbstractAssembler2t6MpnKCodeBuffer__v_;
text: .text%__1cTICacheStubGeneratorVgenerate_icache_flush6MppFpCii_i_v_;
text: .text%__1cMStubCodeMark2t6MpnRStubCodeGenerator_pkc4_v_;
@@ -194,7 +191,6 @@
text: .text%__1cRAbstractAssemblerFflush6M_v_;
text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cRStubCodeGeneratorLstub_epilog6MpnMStubCodeDesc__v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
text: .text%__1cPVM_Version_init6F_v_;
text: .text%jio_snprintf;
@@ -314,10 +310,8 @@
text: .text%__1cLReadClosureGdo_ptr6Mppv_v_: restore.o;
text: .text%__1cLReadClosureJdo_size_t6MpI_v_: restore.o;
text: .text%__1cLReadClosureGdo_oop6MppnHoopDesc__v_: restore.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
text: .text%__1cICodeHeapLfirst_block6kM_pnJHeapBlock__;
text: .text%__1cICodeHeapJnext_free6kMpnJHeapBlock__pv_;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cICodeHeapLblock_start6kMpv_pnJHeapBlock__;
text: .text%__1cICodeHeapKfind_start6kMpv_1_;
text: .text%__1cICodeHeapKnext_block6kMpnJHeapBlock__2_;
@@ -334,7 +328,6 @@
text: .text%__1cbCAbstractInterpreterGeneratorMgenerate_all6M_v_;
text: .text%__1cJStubQdDueueHrequest6Mi_pnEStub__;
text: .text%__1cJStubQdDueueGcommit6Mi_v_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cZInterpreterMacroAssemblerZget_2_byte_integer_at_bcp6MipnMRegisterImpl_2n0ALsignedOrNot_n0AKsetCCOrNot__v_;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_next6MnITosState_i_v_;
text: .text%__1cOMacroAssemblerKverify_FPU6Mipkc_v_;
@@ -357,7 +350,6 @@
text: .text%__1cQRelocationHolderEplus6kMi_0_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC222_v_;
text: .text%__1cOMacroAssemblerNset_vm_result6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpnMRegisterImpl_pCi_v_;
text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_method_entry6MnTAbstractInterpreterKMethodKind__pC_;
text: .text%__1cUInterpreterGeneratorVgenerate_counter_incr6MpnFLabel_22_v_;
@@ -513,7 +505,6 @@
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableH_return6FnITosState__v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cNTemplateTableJputstatic6Fi_v_;
text: .text%__1cNTemplateTableIgetfield6Fi_v_;
text: .text%__1cOMacroAssemblerKnull_check6MpnMRegisterImpl_i_v_;
@@ -521,7 +512,6 @@
text: .text%__1cNTemplateTableNinvokevirtual6Fi_v_;
text: .text%__1cNTemplateTableTinvokevfinal_helper6FpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerSprofile_final_call6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_2_v_;
text: .text%__1cNTemplateTableUgenerate_vtable_call6FpnMRegisterImpl_22_v_;
text: .text%__1cNTemplateTableNinvokespecial6Fi_v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
@@ -629,8 +619,6 @@
text: .text%__1cOvmStructs_init6F_v_;
text: .text%__1cMRegisterImplEname6kM_pkc_;
text: .text%__1cRFloatRegisterImplEname6kM_pkc_;
-text: .text%__1cIFrameMapEinit6F_v_;
-text: .text%__1cIRuntime1Kinitialize6F_v_;
text: .text%__1cIRuntime1Ninitialize_pd6F_v_;
text: .text%__1cNSharedRuntimeTgenerate_deopt_blob6F_v_;
text: .text%__1cOMacroAssemblerZtotal_frame_size_in_bytes6Mi_i_;
@@ -689,7 +677,6 @@
text: .text%__1cNinstanceKlassRallocate_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cNinstanceKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cMstringStream2t6MI_v_;
@@ -788,8 +775,6 @@
text: .text%__1cNmethodOopDescVset_signature_handler6MpC_v_;
text: .text%jni_RegisterNatives: jni.o;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cOJNIHandleBlockNrelease_block6Fp0pnGThread__v_;
text: .text%__1cSObjectSynchronizerJnotifyall6FnGHandle_pnGThread__v_;
text: .text%__1cSInterpreterRuntimeJanewarray6FpnKJavaThread_pnTconstantPoolOopDesc_ii_v_;
@@ -829,7 +814,6 @@
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
text: .text%__1cNmethodOopDescIbci_from6kMpC_i_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cNmethodOopDescIbcp_from6kMi_pC_;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cRSignatureIteratorSiterate_parameters6M_v_;
@@ -983,7 +967,6 @@
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%__1cHUNICODELutf8_length6FpHi_i_;
text: .text%jni_GetStringLength: jni.o;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%jni_GetStringUTFRegion: jni.o;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc_ii_pc_;
text: .text%JVM_FindClassFromClassLoader;
@@ -1022,7 +1005,6 @@
text: .text%__1cbIjava_lang_reflect_AccessibleObjectIoverride6FpnHoopDesc__C_;
text: .text%__1cbDjava_lang_reflect_ConstructorPparameter_types6FpnHoopDesc__2_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cRClassPathZipEntryLopen_stream6Mpkc_pnPClassFileStream__;
@@ -1060,8 +1042,6 @@
text: .text%method_compare: methodOop.o;
text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
text: .text%__1cUvisit_all_interfaces6FpnPobjArrayOopDesc_pnXInterfaceVisiterClosure__v_;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
@@ -1077,7 +1057,6 @@
text: .text%__1cPClassFileParserbCcheck_super_interface_access6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cIRewriterHrewrite6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cYconstantPoolCacheOopDescKinitialize6MrnIintArray__v_;
text: .text%JVM_MaxMemory;
@@ -1091,15 +1070,11 @@
text: .text%__1cNSignatureInfoIdo_float6M_v_: bytecode.o;
text: .text%jni_NewObjectV: jni.o;
text: .text%jni_GetStringRegion: jni.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%jni_GetObjectField: jni.o;
text: .text%jni_GetStringCritical: jni.o;
text: .text%jni_ReleaseStringCritical: jni.o;
text: .text%__1cQSimpleCompPolicyXmethod_invocation_event6MnMmethodHandle_pnGThread__v_;
text: .text%__1cRInvocationCounterJset_carry6M_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
text: .text%JVM_LoadLibrary;
text: .text%JVM_FindLibraryEntry;
@@ -1153,7 +1128,6 @@
text: .text%__1cCosOsignal_init_pd6F_v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cICompiler2t6M_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cTsignal_thread_entry6FpnKJavaThread_pnGThread__v_: os.o;
@@ -1188,7 +1162,6 @@
text: .text%__1cKPerfStringKset_string6Mpkc_v_;
text: .text%__1cPciObjectFactory2t6MpnFArena_i_v_;
text: .text%__1cPciObjectFactoryTinit_shared_objects6M_v_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cIciObject2t6MnGHandle__v_;
text: .text%__1cIciObjectJset_ident6MI_v_;
text: .text%__1cGciType2t6MnJBasicType__v_;
@@ -1267,7 +1240,6 @@
text: .text%__1cOGenerateOopMapNreport_result6M_v_;
text: .text%__1cLCompilationJbuild_hir6M_v_;
text: .text%__1cCIR2t6MpnLCompilation_pnIciMethod_i_v_;
-text: .text%__1cJValueTypeKinitialize6F_v_;
text: .text%__1cMciNullObjectEmake6F_p0_;
text: .text%__1cMGraphBuilderKinitialize6F_v_;
text: .text%__1cJXHandlers2t6MpnIciMethod__v_;
@@ -1275,13 +1247,11 @@
text: .text%__1cLCompilationTdebug_info_recorder6kM_pnYDebugInformationRecorder__;
text: .text%__1cHIRScopeLbuild_graph6MpnLCompilation_i_pnKBlockBegin__;
text: .text%__1cQBlockListBuilderLset_leaders6M_v_;
-text: .text%__1cKValueStack2t6MpnHIRScope_ii_v_;
text: .text%__1cLciSignatureHtype_at6kMi_pnGciType__;
text: .text%__1cMas_ValueType6FnJBasicType__pnJValueType__;
text: .text%__1cIValueMap2t6M_v_;
text: .text%__1cNResourceArrayGexpand6MIiri_v_;
text: .text%__1cIValueMapIkill_all6M_v_;
-text: .text%__1cKValueStackEcopy6M_p0_;
text: .text%__1cMGraphBuilderbBiterate_bytecodes_for_block6Mi_pnIBlockEnd__;
text: .text%__1cMGraphBuilderJScopeDataIblock_at6Mi_pnKBlockBegin__;
text: .text%__1cMGraphBuilderKload_local6MpnJValueType_i_v_;
@@ -1322,7 +1292,6 @@
text: .text%__1cHciField2t6MpnPciInstanceKlass_i_v_;
text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cKValueStackKcopy_locks6M_p0_;
text: .text%__1cJLoadFieldFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cJLoadFieldEhash6kM_i_: c1_Instruction.o;
@@ -1365,27 +1334,18 @@
text: .text%__1cGBitMapIset_from6M0_v_;
text: .text%__1cQNullCheckVisitorNdo_BlockBegin6MpnKBlockBegin__v_;
text: .text%__1cQNullCheckVisitorHdo_Base6MpnEBase__v_;
-text: .text%__1cKStateSplitPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
text: .text%__1cEGotoFvisit6MpnSInstructionVisitor__v_: c1_Canonicalizer.o;
text: .text%__1cQNullCheckVisitorHdo_Goto6MpnEGoto__v_;
-text: .text%__1cCIfPinput_values_do6MpFppnLInstruction__v_v_: c1_Canonicalizer.o;
-text: .text%__1cTNullCheckEliminatorIdo_value6FppnLInstruction__v_;
-text: .text%__1cFLocalPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cFLocalFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorIdo_Local6MpnFLocal__v_;
text: .text%__1cQNullCheckVisitorFdo_If6MpnCIf__v_;
-text: .text%__1cGReturnPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
-text: .text%__1cIConstantPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorLdo_Constant6MpnIConstant__v_;
text: .text%__1cQNullCheckVisitorJdo_Return6MpnGReturn__v_;
-text: .text%__1cJTypeCheckPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorNdo_InstanceOf6MpnKInstanceOf__v_;
text: .text%__1cQNullCheckVisitorMdo_CheckCast6MpnJCheckCast__v_;
-text: .text%__1cLAccessFieldPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorMdo_LoadField6MpnJLoadField__v_;
text: .text%__1cTNullCheckEliminatorShandle_AccessField6MpnLAccessField__v_;
text: .text%__1cQNullCheckVisitorPdo_ArithmeticOp6MpnMArithmeticOp__v_;
-text: .text%__1cLAccessArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_ArrayLength6MpnLArrayLength__v_;
text: .text%__1cTNullCheckEliminatorShandle_ArrayLength6MpnLArrayLength__v_;
text: .text%__1cQNullCheckVisitorOdo_LoadIndexed6MpnLLoadIndexed__v_;
@@ -1403,16 +1363,12 @@
text: .text%__1cCIRMcompute_code6M_v_;
text: .text%__1cLInstructionGnegate6Fn0AJCondition__1_;
text: .text%__1cJBlockListJblocks_do6MpFpnKBlockBegin__v_v_;
-text: .text%__1cQUseCountComputerQupdate_use_count6FppnLInstruction__v_: c1_IR.o;
-text: .text%__1cKStateSplitPstate_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cKValueStackJvalues_do6MpFppnLInstruction__v_v_;
text: .text%__1cFLocalIas_Local6M_p0_: c1_GraphBuilder.o;
text: .text%__1cLCompilationIemit_lir6M_v_;
text: .text%__1cLInstructionGas_Phi6M_pnDPhi__: c1_Canonicalizer.o;
text: .text%__1cMas_BasicType6FpnJValueType__nJBasicType__;
text: .text%__1cJValueTypeRas_ObjectConstant6M_pnOObjectConstant__: c1_Canonicalizer.o;
text: .text%__1cLLIR_OprFactKvalue_type6FpnJValueType__pnLLIR_OprDesc__;
-text: .text%__1cKValueStackMcaller_state6kM_p0_;
text: .text%__1cJArrayTypeMas_ArrayType6M_p0_: c1_ValueType.o;
text: .text%__1cILIR_ListKshift_left6MpnLLIR_OprDesc_222_v_;
text: .text%__1cJValueTypeLas_VoidType6M_pnIVoidType__: c1_Canonicalizer.o;
@@ -1442,7 +1398,6 @@
text: .text%__1cNLIR_AssemblerKemit_delay6MpnLLIR_OpDelay__v_;
text: .text%__1cNLIR_AssemblerLcode_offset6kM_i_;
text: .text%__1cNLIR_AssemblerQemit_opTypeCheck6MpnPLIR_OpTypeCheck__v_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cOoop_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNLIR_AssemblerEload6MpnMRegisterImpl_i2nJBasicType_pnMCodeEmitInfo__i_;
text: .text%__1cNLIR_AssemblerIemit_op16MpnHLIR_Op1__v_;
@@ -1477,7 +1432,6 @@
text: .text%__1cNRelocIteratorTadvance_over_prefix6M_v_;
text: .text%__1cOoop_RelocationLunpack_data6M_v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
@@ -1487,7 +1441,6 @@
text: .text%__1cOoop_RelocationGoffset6M_i_: relocInfo.o;
text: .text%__1cKRelocationRpd_set_data_value6MpCi_v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cLCompilation2T6M_v_;
text: .text%__1cFArena2T6M_v_;
@@ -1512,7 +1465,6 @@
text: .text%__1cVPreserveExceptionMark2T6M_v_;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
text: .text%__1cSThreadLocalStorageGthread6F_pnGThread__: assembler_sparc.o;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThread_pnHoopDesc__pC_;
text: .text%__1cNmethodOopDescbEfast_exception_handler_bci_for6MnLKlassHandle_ipnGThread__i_;
text: .text%__1cFframeZinterpreter_frame_set_bcp6MpC_v_;
@@ -1530,8 +1482,6 @@
text: .text%__1cLNewInstanceFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerOdo_NewInstance6MpnLNewInstance__v_;
text: .text%__1cMGraphBuilderGinvoke6MnJBytecodesECode__v_;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cPciObjectFactoryTget_unloaded_method6MpnPciInstanceKlass_pnIciSymbol_4_pnIciMethod__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cNciMethodKlassEmake6F_p0_;
@@ -1542,16 +1492,11 @@
text: .text%__1cGInvokeFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cGInvokeJas_Invoke6M_p0_: c1_Instruction.o;
-text: .text%__1cFThrowFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerIdo_Throw6MpnFThrow__v_;
-text: .text%__1cFThrowIas_Throw6M_p0_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorOdo_NewInstance6MpnLNewInstance__v_;
-text: .text%__1cGInvokePinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorJdo_Invoke6MpnGInvoke__v_;
text: .text%__1cTNullCheckEliminatorNhandle_Invoke6MpnGInvoke__v_;
-text: .text%__1cFThrowPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorIdo_Throw6MpnFThrow__v_;
-text: .text%__1cFThrowPstate_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cIVoidTypeLas_VoidType6M_p0_: c1_ValueType.o;
text: .text%__1cLNewInstanceKexact_type6kM_pnGciType__;
text: .text%__1cLNewInstanceOas_NewInstance6M_p0_: c1_Instruction.o;
@@ -1562,7 +1507,6 @@
text: .text%__1cNLIR_AssemblerJemit_call6MpnOLIR_OpJavaCall__v_;
text: .text%__1cNLIR_AssemblerKalign_call6MnILIR_Code__v_;
text: .text%__1cICodeStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_sparc.o;
-text: .text%__1cNLIR_AssemblerEcall6MpCnJrelocInfoJrelocType_pnMCodeEmitInfo__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cYinternal_word_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cMPatchingStubJemit_code6MpnNLIR_Assembler__v_;
@@ -1586,8 +1530,6 @@
text: .text%__1cMLinkResolverbCresolve_virtual_call_or_null6FnLKlassHandle_1nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cNCanonicalizerMdo_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cKValueStackKpush_scope6MpnHIRScope__p0_;
-text: .text%__1cHIRScopeXcompute_lock_stack_size6M_v_;
text: .text%__1cMGraphBuilderJScopeDataLnum_returns6M_i_;
text: .text%__1cNCanonicalizerHdo_Goto6MpnEGoto__v_;
text: .text%__1cMGraphBuilderJScopeDataQincr_num_returns6M_v_;
@@ -1596,10 +1538,7 @@
text: .text%__1cFciEnvVnotice_inlined_method6MpnIciMethod__v_;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cLInstructionEprev6MpnKBlockBegin__p0_;
-text: .text%__1cIConstantPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIBlockEndPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cQNullCheckVisitorMdo_NullCheck6MpnJNullCheck__v_;
-text: .text%__1cHIRScopeNtop_scope_bci6kM_i_;
text: .text%__1cIFrameMapQmake_new_address6kMi_nHAddress__;
text: .text%__1cNLIR_AssemblerFstore6MpnMRegisterImpl_2inJBasicType_pnMCodeEmitInfo__v_;
text: .text%__1cNLIR_AssemblerJstack2reg6MpnLLIR_OprDesc_2nJBasicType__v_;
@@ -1610,7 +1549,6 @@
text: .text%JVM_IsNaN;
text: .text%__1cXNativeSignatureIteratorJdo_double6M_v_: interpreterRT_sparc.o;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorLpass_double6M_v_;
-text: .text%__1cEIfOpPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
text: .text%__1cEIfOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cQNullCheckVisitorHdo_IfOp6MpnEIfOp__v_;
text: .text%__1cOGenerateOopMapIcopy_cts6MpnNCellTypeState_2_i_;
@@ -1642,8 +1580,6 @@
text: .text%__1cHLogicOpEname6kM_pkc_: c1_Instruction.o;
text: .text%__1cMLinkResolverbBresolve_static_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cQNullCheckVisitorNdo_StoreField6MpnKStoreField__v_;
-text: .text%__1cINewArrayPinput_values_do6MpFppnLInstruction__v_v_: c1_Instruction.o;
-text: .text%__1cHConvertPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_Convert6MpnHConvert__v_;
text: .text%__1cQNullCheckVisitorPdo_NewTypeArray6MpnMNewTypeArray__v_;
text: .text%__1cJLoadFieldMas_LoadField6M_p0_: c1_Instruction.o;
@@ -1665,7 +1601,6 @@
text: .text%__1cNLIR_AssemblerOmembar_release6M_v_;
text: .text%__1cNLIR_AssemblerGmembar6M_v_;
text: .text%__1cNLIR_AssemblerOmembar_acquire6M_v_;
-text: .text%__1cNLIR_AssemblerHic_call6MpCpnMCodeEmitInfo__v_;
text: .text%__1cNLIR_AssemblerCpc6kM_pC_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNLIR_AssemblerIlogic_op6MnILIR_Code_pnLLIR_OprDesc_33_v_;
@@ -1675,7 +1610,6 @@
text: .text%__1cNinstanceKlassVadd_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cLRegisterMapIpd_clear6M_v_;
text: .text%__1cPBytecode_invokeNstatic_target6MpnGThread__nMmethodHandle__;
text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
@@ -1690,8 +1624,6 @@
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cOGenerateOopMapGdo_ldc6Mii_v_;
text: .text%__1cMGraphBuilderNload_constant6M_v_;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cKExceptionsL_throw_args6FpnGThread_pkcinMsymbolHandle_5pnRJavaCallArguments__v_;
text: .text%__1cMPeriodicTaskOreal_time_tick6FI_v_;
@@ -1700,7 +1632,6 @@
text: .text%JVM_Read;
text: .text%jni_GetByteArrayRegion: jni.o;
text: .text%JVM_DefineClassWithSource;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbDverify_legal_method_signature6MnMsymbolHandle_1pnGThread__i_;
text: .text%__1cPClassFileParserXverify_legal_class_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
@@ -1780,7 +1711,6 @@
text: .text%__1cCosXterminate_signal_thread6F_v_;
text: .text%__1cCosNsigexitnum_pd6F_i_;
text: .text%__1cCosNsignal_notify6Fi_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cIVMThreadXwait_for_vm_thread_exit6F_v_;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
@@ -1795,7 +1725,6 @@
text: .text%__1cQSystemDictionaryStry_get_next_class6F_pnMklassOopDesc__;
text: .text%__1cKDictionaryStry_get_next_class6M_pnMklassOopDesc__;
text: .text%__1cNinstanceKlassKmethods_do6MpFpnNmethodOopDesc__v_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cHVM_ExitbJwait_for_threads_in_native_to_block6F_i_;
text: .text%__1cIVMThreadHdestroy6F_v_;
@@ -1839,7 +1768,6 @@
text: .text%__1cIValueMapKkill_array6MpnJValueType__v_;
text: .text%__1cNCanonicalizerPdo_StoreIndexed6MpnMStoreIndexed__v_;
text: .text%__1cQNullCheckVisitorPdo_StoreIndexed6MpnMStoreIndexed__v_;
-text: .text%__1cKValueStackElock6MpnHIRScope_pnLInstruction__i_;
text: .text%__1cKValueStackGunlock6M_i_;
text: .text%__1cQMonitorEnterStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_sparc.o;
text: .text%__1cNLIR_AssemblerJemit_lock6MpnKLIR_OpLock__v_;
@@ -1859,7 +1787,6 @@
text: .text%__1cNCanonicalizerMdo_Intrinsic6MpnJIntrinsic__v_;
text: .text%__1cMas_ValueType6FnKciConstant__pnJValueType__;
text: .text%__1cQNullCheckVisitorMdo_Intrinsic6MpnJIntrinsic__v_;
-text: .text%__1cDOp2Pinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorKdo_ShiftOp6MpnHShiftOp__v_;
text: .text%__1cILIR_ListLshift_right6MpnLLIR_OprDesc_222_v_;
text: .text%__1cMNewTypeArrayKexact_type6kM_pnGciType__;
@@ -1876,7 +1803,6 @@
text: .text%__1cLInstructionGmirror6Fn0AJCondition__1_;
text: .text%__1cKBlockBeginVadd_exception_handler6Mp0_v_;
text: .text%__1cIciObjectEhash6M_i_;
-text: .text%__1cLAccessFieldPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cFChunk2n6FII_pv_;
text: .text%jni_CallStaticVoidMethodV: jni.o;
text: .text%JVM_GetLastErrorString;
@@ -1899,8 +1825,6 @@
text: .text%__1cPfieldDescriptorRint_initial_value6kM_i_;
text: .text%__1cSSetupItableClosureEdoit6MpnMklassOopDesc_i_v_: klassVtable.o;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
-text: .text%__1cQSimpleCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
text: .text%__1cMGraphBuilderQnew_object_array6M_v_;
text: .text%__1cONewObjectArrayFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerRdo_NewObjectArray6MpnONewObjectArray__v_;
@@ -1919,7 +1843,6 @@
text: .text%__1cMGraphBuilderMtable_switch6M_v_;
text: .text%__1cLTableSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_TableSwitch6MpnLTableSwitch__v_;
-text: .text%__1cGSwitchPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorOdo_TableSwitch6MpnLTableSwitch__v_;
text: .text%__1cSCompiledStaticCallNcompute_entry6FnMmethodHandle_rnOStaticCallInfo__v_;
text: .text%__1cSCompiledStaticCallDset6MrknOStaticCallInfo__v_;
@@ -1972,7 +1895,6 @@
text: .text%__1cXJNI_ArgumentPusherVaArgIget_long6M_v_: jni.o;
text: .text%__1cINegateOpFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerLdo_NegateOp6MpnINegateOp__v_;
-text: .text%__1cINegateOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorLdo_NegateOp6MpnINegateOp__v_;
text: .text%__1cILIR_ListLstore_check6MpnLLIR_OprDesc_2222pnMCodeEmitInfo__v_;
text: .text%__1cXArrayStoreExceptionStub2t6MpnMCodeEmitInfo__v_;
@@ -2008,13 +1930,11 @@
text: .text%__1cYjava_lang_reflect_MethodPparameter_types6FpnHoopDesc__2_;
text: .text%__1cYjava_lang_reflect_MethodLreturn_type6FpnHoopDesc__2_;
text: .text%JVM_IsInterrupted;
-text: .text%__1cMArithmeticOpKlock_stack6kM_pnKValueStack__: c1_Instruction.o;
text: .text%__1cNLIR_AssemblerIemit_op36MpnHLIR_Op3__v_;
text: .text%__1cNLIR_AssemblerbCadd_debug_info_for_div0_here6MpnMCodeEmitInfo__v_;
text: .text%__1cNDivByZeroStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_sparc.o;
text: .text%__1cNDivByZeroStubJemit_code6MpnNLIR_Assembler__v_;
text: .text%__1cIFrameMapLnr2floatreg6Fi_pnRFloatRegisterImpl__;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%Unsafe_EnsureClassInitialized;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
@@ -2070,7 +1990,6 @@
text: .text%__1cKGenerationInext_gen6kM_p0_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
text: .text%__1cbAVM_GenCollectForAllocationEdoit6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cTContiguousSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cTContiguousSpacePoolNused_in_bytes6M_I_: memoryPool.o;
@@ -2094,8 +2013,6 @@
text: .text%__1cPFastScanClosureGdo_oop6MppnHoopDesc__v_: defNewGeneration.o;
text: .text%__1cPContiguousSpaceIallocate6MI_pnIHeapWord__;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cOJNIHandleBlockHoops_do6MpnKOopClosure__v_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
text: .text%__1cFframeVinterpreter_frame_bci6kM_i_;
@@ -2124,8 +2041,6 @@
text: .text%__1cTMaskFillerForNativeLpass_object6M_v_: oopMapCache.o;
text: .text%__1cTMaskFillerForNativeJpass_long6M_v_: oopMapCache.o;
text: .text%__1cRComputeEntryStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
text: .text%__1cKManagementHoops_do6FpnKOopClosure__v_;
@@ -2221,7 +2136,6 @@
text: .text%__1cRTenuredGenerationPupdate_counters6M_v_;
text: .text%__1cUCompactingPermGenGenPupdate_counters6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%__1cNJvmtiGCMarker2T6M_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
@@ -2232,7 +2146,6 @@
text: .text%__1cNCanonicalizerPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cLMonitorExitFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerOdo_MonitorExit6MpnLMonitorExit__v_;
-text: .text%__1cNAccessMonitorPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_MonitorEnter6MpnMMonitorEnter__v_;
text: .text%__1cQNullCheckVisitorOdo_MonitorExit6MpnLMonitorExit__v_;
text: .text%__1cMLongConstantPas_LongConstant6M_p0_: c1_Canonicalizer.o;
@@ -2246,10 +2159,7 @@
text: .text%Unsafe_AllocateInstance;
text: .text%jni_AllocObject: jni.o;
text: .text%__1cNCanonicalizerMset_constant6Mi_v_: c1_Canonicalizer.o;
-text: .text%__1cJTypeCheckPother_values_do6MpFppnLInstruction__v_v_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cQComputeCallStackIdo_float6M_v_: generateOopMap.o;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cMOopMapStreamJfind_next6M_v_;
text: .text%__1cQinstanceRefKlassSoop_oop_iterate_nv6MpnHoopDesc_pnQFilteringClosure__i_;
text: .text%__1cQinstanceRefKlassUoop_oop_iterate_nv_m6MpnHoopDesc_pnQFilteringClosure_nJMemRegion__i_;
@@ -2284,7 +2194,6 @@
text: .text%__1cQinstanceRefKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQconstMethodKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cFJNIidHoops_do6MpnKOopClosure__v_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryValways_strong_oops_do6FpnKOopClosure__v_;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
text: .text%__1cVLoaderConstraintTableYalways_strong_classes_do6MpnKOopClosure__v_;
@@ -2341,9 +2250,6 @@
text: .text%__1cJHashtableHoops_do6MpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryYalways_strong_classes_do6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryPplaceholders_do6FpnKOopClosure__v_;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cYGenAdjustPointersClosureNdo_generation6MpnKGeneration__v_: genMarkSweep.o;
text: .text%__1cKGenerationPadjust_pointers6M_v_;
@@ -2379,32 +2285,24 @@
text: .text%__1cVcompiledICHolderKlassRoop_oop_iterate_m6MpnHoopDesc_pnKOopClosure_nJMemRegion__i_;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
text: .text%__1cOMacroAssemblerEmult6MpnMRegisterImpl_22_v_;
-text: .text%__1cINewArrayPother_values_do6MpFppnLInstruction__v_v_;
text: .text%__1cJValueTypeLas_LongType6M_pnILongType__: c1_Canonicalizer.o;
text: .text%__1cNVM_DeoptimizeEdoit6M_v_;
text: .text%__1cODeoptimizationVdeoptimize_dependents6F_i_;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
text: .text%__1cKJavaThreadbFdeoptimized_wrt_marked_nmethods6M_v_;
text: .text%__1cJCodeCachebGmake_marked_nmethods_not_entrant6F_v_;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cKNativeJumpUpatch_verified_entry6FpC11_v_;
text: .text%signalHandler;
text: .text%JVM_handle_solaris_signal;
text: .text%JVM_HoldsLock;
text: .text%__1cQinstanceRefKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceRefKlass.o;
text: .text%__1cJCodeCacheFfirst6F_pnICodeBlob__;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cJCodeCacheEnext6FpnICodeBlob__2_;
text: .text%__1cONewObjectArrayKexact_type6kM_pnGciType__;
text: .text%__1cPciObjArrayKlassNelement_klass6M_pnHciKlass__;
text: .text%__1cIRuntime1Noop_arraycopy6FpnIHeapWord_2i_v_;
text: .text%__1cMGraphBuilderKcompare_op6MpnJValueType_nJBytecodesECode__v_;
-text: .text%__1cJCompareOpFvisit6MpnSInstructionVisitor__v_: c1_Instruction.o;
text: .text%__1cNCanonicalizerMdo_CompareOp6MpnJCompareOp__v_;
-text: .text%__1cJCompareOpEhash6kM_i_: c1_Instruction.o;
-text: .text%__1cJCompareOpEname6kM_pkc_: c1_Instruction.o;
-text: .text%__1cJCompareOpMas_CompareOp6M_p0_: c1_Instruction.o;
text: .text%__1cJValueTypeOas_IntConstant6M_pnLIntConstant__: c1_Canonicalizer.o;
text: .text%__1cHIntTypeKas_IntType6M_p0_: c1_Canonicalizer.o;
text: .text%__1cNSharedRuntimeDf2l6Ff_x_;
@@ -2422,7 +2320,6 @@
text: .text%__1cTMaskFillerForNativeIpass_int6M_v_: oopMapCache.o;
text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cLCardTableRSFclear6MnJMemRegion__v_: cardTableRS.o;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
text: .text%__1cHnmethodFflush6M_v_;
@@ -2445,9 +2342,7 @@
text: .text%__1cMGraphBuilderNlookup_switch6M_v_;
text: .text%__1cMLookupSwitchFvisit6MpnSInstructionVisitor__v_: c1_GraphBuilder.o;
text: .text%__1cNCanonicalizerPdo_LookupSwitch6MpnMLookupSwitch__v_;
-text: .text%__1cMUnsafePutRawPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafePutRaw6MpnMUnsafePutRaw__v_;
-text: .text%__1cLUnsafeRawOpPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBuilder.o;
text: .text%__1cQNullCheckVisitorPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
text: .text%__1cQNullCheckVisitorPdo_LookupSwitch6MpnMLookupSwitch__v_;
text: .text%__1cIRuntime1Mnew_instance6FpnKJavaThread_pnMklassOopDesc__v_;
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_amd64 Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_amd64 Tue Nov 02 22:15:35 2010 -0700
@@ -4,38 +4,22 @@
text: .text%__1cECopyRpd_disjoint_words6FpnIHeapWord_2L_v_;
text: .text%__1cSPSPromotionManagerWcopy_to_survivor_space6MpnHoopDesc__2_;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cJMarkSweepO_mark_and_push6FppnHoopDesc__v_;
text: .text%__1cNinstanceKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNinstanceKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cOtypeArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cOtypeArrayKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQIndexSetIteratorEnext6M_I_;
-text: .text%__1cJMarkSweepPmark_and_follow6FppnHoopDesc__v_;
-text: .text%__1cCosOjavaTimeMillis6F_x_;
-text: .text%__1cNRelocIteratorEnext6M_i_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cNobjArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cQObjectStartArrayMobject_start6kMpnIHeapWord__2_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_;
-text: .text%__1cJMarkSweepOIsAliveClosureLdo_object_b6MpnHoopDesc__i_;
-text: .text%__1cENodeGis_Phi6M_pnHPhiNode__;
text: .text%__1cIPhaseIFGIadd_edge6MII_i_;
-text: .text%__1cPBoundRelocationLunpack_data6MnJrelocInfoJrelocType__v_;
-text: .text%__1cIMachNodeHis_Mach6M_p0_;
-text: .text%__1cENodeHis_Copy6kM_I_;
-text: .text%__1cUCompressedReadStreamIread_int6M_i_;
text: .text%__1cQIndexSetIterator2t6MpnIIndexSet__v_;
text: .text%__1cOPhaseIdealLoopOidom_no_update6kMpnENode__2_;
-text: .text%__1cHnmethodKcan_unload6MpnRBoolObjectClosure_pnKOopClosure_ppnHoopDesc_i_i_;
-text: .text%__1cIMachNodeNrematerialize6kM_i_;
-text: .text%__1cHRegMaskFis_UP6kM_i_;
text: .text%__1cXresource_allocate_bytes6FL_pc_;
text: .text%__1cNRelocIteratorFreloc6M_pnKRelocation__;
-text: .text%__1cENodeHis_Mach6M_pnIMachNode__;
text: .text%__1cHRegMaskESize6kM_I_;
text: .text%__1cIIndexSetLalloc_block6M_pn0AIBitBlock__;
text: .text%__1cWConstantPoolCacheEntryPadjust_pointers6M_v_;
@@ -48,7 +32,6 @@
text: .text%__1cLsymbolKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cYPSPromotionFailedClosureJdo_object6MpnHoopDesc__v_;
text: .text%__1cENodeEjvms6kM_pnIJVMState__;
-text: .text%__1cKRelocationSfix_oop_relocation6M_v_;
text: .text%__1cIIndexSetWalloc_block_containing6MI_pn0AIBitBlock__;
text: .text%__1cENodeHdel_out6Mp0_v_;
text: .text%__1cKRelocationLunpack_data6M_v_;
@@ -56,18 +39,11 @@
text: .text%__1cJAssemblerOlocate_operand6FpCn0AMWhichOperand__1_;
text: .text%__1cKRelocationSpd_address_in_code6M_ppC_;
text: .text%__1cOoop_RelocationIoop_addr6M_ppnHoopDesc__;
-text: .text%__1cRMachSpillCopyNodeMis_SpillCopy6M_p0_;
text: .text%__1cOPhaseIdealLoopSget_ctrl_no_update6kMpnENode__2_;
text: .text%__1cJCProjNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cENodeGis_CFG6kM_i_;
-text: .text%__1cKRelocationNunpack_2_ints6Mri1_v_;
text: .text%__1cETypeDcmp6Fpk02_i_;
-text: .text%__1cQObjectStartArrayWobject_starts_in_range6kMpnIHeapWord_2_i_;
text: .text%__1cOoop_RelocationLunpack_data6M_v_;
text: .text%__1cHRegMaskJis_bound16kM_i_;
-text: .text%__1cENodeHis_Proj6M_pnIProjNode__;
-text: .text%__1cENodeMis_SpillCopy6M_pnRMachSpillCopyNode__;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cHRegMaskJis_bound26kM_i_;
text: .text%__1cRmethodDataOopDescHdata_at6Mi_pnLProfileData__;
text: .text%__1cNGrowableArray4CI_Hat_grow6MirkI_I_;
@@ -78,126 +54,74 @@
text: .text%__1cQconstMethodKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cLmethodKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cRmethodDataOopDescJnext_data6MpnLProfileData__2_;
-text: .text%__1cMOopTaskQdDueueOpop_local_slow6MInOTaskQdDueueSuperDAge__i_;
-text: .text%__1cRMachSpillCopyNodeHis_Copy6kM_I_;
-text: .text%__1cENodeGpinned6kM_i_;
text: .text%__1cOoop_RelocationJoop_value6M_pnHoopDesc__;
text: .text%__1cJrRegPOperEtype6kM_pknEType__;
text: .text%__1cECopyQpd_fill_to_words6FpnIHeapWord_LI_v_;
-text: .text%__1cMOopTaskQdDueueKpop_global6MrpnHoopDesc__i_;
-text: .text%__1cPOopTaskQdDueueSetPsteal_best_of_26MipirpnHoopDesc__i_;
text: .text%__1cJVectorSet2R6MI_rnDSet__;
text: .text%__1cNRelocIteratorTadvance_over_prefix6M_v_;
-text: .text%__1cSPSPromotionManagerUflush_prefetch_queue6M_v_;
-text: .text%__1cIProjNodeHis_Proj6M_p0_;
text: .text%__1cPDictionaryEntrybDprotection_domain_set_oops_do6MpnKOopClosure__v_;
text: .text%__1cMOopMapStreamJfind_next6M_v_;
-text: .text%__1cMloadConPNodePoper_input_base6kM_I_;
-text: .text%__1cMloadConPNodeHtwo_adr6kM_I_;
text: .text%__1cMloadConPNodeErule6kM_I_;
-text: .text%__1cHPhiNodeGis_Phi6M_p0_;
text: .text%__1cITypeNodeLbottom_type6kM_pknEType__;
-text: .text%__1cENodeGis_Cmp6kM_pknHCmpNode__;
text: .text%__1cDff16FI_i_;
-text: .text%__1cENodeNrematerialize6kM_i_;
text: .text%__1cRLowMemoryDetectorbLdetect_low_memory_for_collected_pools6F_v_;
-text: .text%__1cFframeVoopmapreg_to_location6kMipknLRegisterMap__ppnHoopDesc__;
text: .text%__1cIIndexSetKinitialize6MI_v_;
-text: .text%__1cENodeJis_Region6kM_pknKRegionNode__;
text: .text%__1cMMutableSpaceMcas_allocate6ML_pnIHeapWord__;
text: .text%__1cIMachNodeGOpcode6kM_i_;
-text: .text%__1cMget_live_bit6Fpii_i_: buildOopMap.o;
-text: .text%__1cNSafePointNodeGis_CFG6kM_i_;
-text: .text%__1cIMachNodeQis_MachNullCheck6M_pnRMachNullCheckNode__;
text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cENodeIout_grow6MI_v_;
-text: .text%__1cMset_live_bit6Fpii_v_: buildOopMap.o;
text: .text%__1cKTypeOopPtrFklass6kM_pnHciKlass__;
text: .text%__1cIIndexSetKfree_block6MI_v_;
-text: .text%__1cJCProjNodeGis_CFG6kM_i_;
text: .text%__1cETypeFuhash6Fpk0_i_;
text: .text%__1cJrRegIOperEtype6kM_pknEType__;
text: .text%__1cMPhaseChaitinLskip_copies6MpnENode__2_;
-text: .text%__1cIMachNodeMcisc_operand6kM_i_;
-text: .text%__1cVCompressedWriteStreamJwrite_int6Mi_v_;
text: .text%__1cICallNodeKmatch_edge6kMI_I_;
-text: .text%__1cENodeHis_Call6M_pnICallNode__;
text: .text%__1cNCollectedHeapbDcheck_for_bad_heap_word_value6MpnIHeapWord_L_v_;
-text: .text%__1cEDictGInsert6Mpv1i_1_;
text: .text%JVM_CurrentTimeMillis;
-text: .text%__1cINodeHashLhash_delete6MpknENode__i_;
-text: .text%__1cETypeJtype_dict6F_pnEDict__;
text: .text%__1cOPSPromotionLABKinitialize6MnJMemRegion__v_;
text: .text%__1cOPSPromotionLABFflush6M_v_;
-text: .text%__1cIrc_class6Fi_nCRC__: ad_amd64.o;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cINodeHashQhash_find_insert6MpnENode__2_;
-text: .text%__1cNCollectedHeapbAcommon_mem_allocate_noinit6FLipnGThread__pnIHeapWord__;
-text: .text%__1cENodeHis_Load6M_pnILoadNode__;
-text: .text%__1cFArenaIcontains6kMpkv_i_;
-text: .text%__1cJMultiNodeGis_CFG6kM_i_;
text: .text%__1cHPhiNodeGOpcode6kM_i_;
-text: .text%__1cMPhaseChaitinKelide_copy6MpnENode_ipnFBlock_rnJNode_List_6i_i_;
text: .text%__1cKjmpDirNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cIProjNodeGis_CFG6kM_i_;
text: .text%__1cRMachSpillCopyNodeJideal_reg6kM_I_;
text: .text%__1cETypeIhashcons6M_pk0_;
text: .text%__1cENodeEhash6kM_I_;
-text: .text%__1cNMachIdealNodeMideal_Opcode6kM_i_;
-text: .text%__1cOlower_pressure6FpnDLRG_IpnFBlock_pI4_v_: ifg.o;
-text: .text%__1cPOopTaskQdDueueSetFsteal6MipirpnHoopDesc__i_;
-text: .text%__1cENodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cKRegionNodeGis_CFG6kM_i_;
-text: .text%__1cHCompileRvalid_bundle_info6MpknENode__i_;
text: .text%__1cIProjNodeGOpcode6kM_i_;
-text: .text%__1cENodeLis_MergeMem6M_pnMMergeMemNode__;
text: .text%__1cOoop_RelocationSfix_oop_relocation6M_v_;
text: .text%__1cPClassFileStreamGget_u26MpnGThread__H_;
-text: .text%__1cENodeIis_Store6kM_pknJStoreNode__;
text: .text%__1cPVirtualCallDataKcell_count6M_i_;
-text: .text%__1cIProjNodeGpinned6kM_i_;
text: .text%__1cENodeMcisc_operand6kM_i_;
text: .text%__1cRInterpreterOopMapLoop_iterate6MpnKOopClosure__v_;
text: .text%__1cMMachCallNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cMloadConINodePoper_input_base6kM_I_;
-text: .text%__1cMloadConINodeHtwo_adr6kM_I_;
text: .text%__1cHNTarjanEEVAL6M_p0_;
text: .text%__1cNMachIdealNodeErule6kM_I_;
text: .text%__1cKHandleMarkKinitialize6MpnGThread__v_;
text: .text%__1cKHandleMark2T6M_v_;
-text: .text%__1cETypeLisa_oop_ptr6kM_i_;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cENode2t6MI_v_;
text: .text%__1cJloadPNodeErule6kM_I_;
-text: .text%__1cIMachNodeLis_MachCall6M_pnMMachCallNode__;
text: .text%__1cMloadConINodeErule6kM_I_;
text: .text%__1cICodeHeapKfind_start6kMpv_1_;
text: .text%__1cWShouldNotReachHereNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cHTypeIntCeq6kMpknEType__i_;
text: .text%__1cLProfileDataPfollow_contents6M_v_;
text: .text%__1cLProfileDataPadjust_pointers6M_v_;
-text: .text%__1cIMachNodeQis_MachSafePoint6M_pnRMachSafePointNode__;
text: .text%__1cHRegMaskMClearToPairs6M_v_;
text: .text%__1cJPhaseLiveLadd_liveout6MpnFBlock_IrnJVectorSet__v_;
text: .text%__1cLemit_opcode6FrnKCodeBuffer_i_v_;
text: .text%__1cIPhaseIFGQeffective_degree6kMI_i_;
-text: .text%__1cENodeIis_Catch6kM_pknJCatchNode__;
text: .text%__1cFArenaIArealloc6MpvLL_1_;
text: .text%__1cGIfNodeGOpcode6kM_i_;
text: .text%__1cHTypePtrEhash6kM_i_;
text: .text%__1cIPhaseIFGLremove_node6MI_pnIIndexSet__;
text: .text%__1cIPhaseIFGJre_insert6MI_v_;
text: .text%__1cRMachSpillCopyNodeLbottom_type6kM_pknEType__;
-text: .text%__1cMclr_live_bit6Fpii_v_: buildOopMap.o;
text: .text%__1cETypeEmeet6kMpk0_2_;
-text: .text%__1cMPhaseChaitinQis_high_pressure6MpnFBlock_pnDLRG_I_i_;
text: .text%__1cKBranchDataKcell_count6M_i_;
text: .text%__1cNCollectedHeapOarray_allocate6FnLKlassHandle_iipnGThread__pnHoopDesc__;
text: .text%__1cOPhaseIdealLoopYsplit_if_with_blocks_pre6MpnENode__2_;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
text: .text%__1cOPhaseIdealLoopZsplit_if_with_blocks_post6MpnENode__v_;
text: .text%__1cDfh16FI_i_;
-text: .text%__1cJraw_score6Fdd_d_: chaitin.o;
text: .text%__1cDLRGFscore6kM_d_;
text: .text%__1cKTypeOopPtrEhash6kM_i_;
text: .text%__1cIAddPNodeGOpcode6kM_i_;
@@ -205,11 +129,8 @@
text: .text%__1cMPhaseChaitinMchoose_color6MrnDLRG_i_i_;
text: .text%__1cMPhaseIterGVNNtransform_old6MpnENode__2_;
text: .text%__1cGcmpkey6Fpkv1_i_;
-text: .text%__1cETypeJsingleton6kM_i_;
text: .text%__1cIMachNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cSPSPromotionManagerMdrain_stacks6M_v_;
text: .text%__1cHConNodeGOpcode6kM_i_;
-text: .text%__1cITypeLongCeq6kMpknEType__i_;
text: .text%__1cUParallelScavengeHeapVlarge_typearray_limit6M_L_;
text: .text%__1cOtypeArrayKlassIallocate6MipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cKoopFactoryNnew_typeArray6FnJBasicType_ipnGThread__pnQtypeArrayOopDesc__;
@@ -220,133 +141,90 @@
text: .text%__1cJCodeCacheEnext6FpnICodeBlob__2_;
text: .text%__1cRMachSpillCopyNodeKin_RegMask6kMI_rknHRegMask__;
text: .text%__1cMMachProjNodeLbottom_type6kM_pknEType__;
-text: .text%__1cLOptoRuntimeXdeoptimize_caller_frame6FpnKJavaThread_i_v_;
text: .text%__1cSCallStaticJavaNodeGOpcode6kM_i_;
text: .text%__1cYCallStaticJavaDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cJCodeCacheFalive6FpnICodeBlob__2_;
-text: .text%__1cHRegMaskQis_aligned_Pairs6kM_i_;
-text: .text%__1cSis_single_register6FI_i_: postaloc.o;
text: .text%__1cRMachSpillCopyNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMPhaseIterGVNWadd_users_to_worklist06MpnENode__v_;
text: .text%__1cECopyYconjoint_words_to_higher6FpnIHeapWord_2L_v_;
text: .text%__1cILRG_ListGextend6MII_v_;
text: .text%__1cWstatic_stub_RelocationLunpack_data6M_v_;
-text: .text%__1cIciObjectGequals6Mp0_i_;
text: .text%__1cJPhaseLiveGgetset6MpnFBlock__pnIIndexSet__;
text: .text%__1cIConINodeGOpcode6kM_i_;
-text: .text%__1cENodeRis_cisc_alternate6kM_i_;
text: .text%__1cLIfFalseNodeGOpcode6kM_i_;
text: .text%__1cKNode_ArrayGinsert6MIpnENode__v_;
text: .text%__1cLCounterDataKcell_count6M_i_;
-text: .text%__1cWThreadLocalAllocBufferFreset6M_v_;
text: .text%__1cMMachProjNodeGOpcode6kM_i_;
text: .text%__1cENodeEgrow6MI_v_;
text: .text%__1cIMachNodePcompute_padding6kMi_i_;
-text: .text%__1cKup_one_dom6FpnENode__1_: ifnode.o;
text: .text%__1cIMachNodeSalignment_required6kM_i_;
text: .text%__1cOPhaseIdealLoopEsort6MpnNIdealLoopTree_2_2_;
-text: .text%__1cFframeOis_entry_frame6kM_i_;
text: .text%__1cNCollectedHeapXallocate_from_tlab_slow6FpnGThread_L_pnIHeapWord__;
-text: .text%__1cUParallelScavengeHeapVunsafe_max_tlab_alloc6kM_L_;
text: .text%__1cHNTarjanICOMPRESS6M_v_;
text: .text%__1cWThreadLocalAllocBufferXclear_before_allocation6M_v_;
-text: .text%__1cFMutexGunlock6M_v_;
-text: .text%__1cJMultiNodeIis_Multi6M_p0_;
text: .text%__1cIBoolNodeGOpcode6kM_i_;
text: .text%__1cSInterpreterRuntimeInewarray6FpnKJavaThread_nJBasicType_i_v_;
text: .text%__1cUParallelScavengeHeapRallocate_new_tlab6ML_pnIHeapWord__;
-text: .text%__1cKSharedHeapXfill_region_with_object6FnJMemRegion__v_;
text: .text%__1cWThreadLocalAllocBufferKinitialize6MpnIHeapWord_22_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2t6M_v_;
text: .text%__1cWThreadLocalAllocBufferEfill6MpnIHeapWord_2L_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2T6M_v_;
-text: .text%__1cKTypeOopPtrCeq6kMpknEType__i_;
-text: .text%__1cHTypePtrCeq6kMpknEType__i_;
text: .text%__1cRMachSpillCopyNodePoper_input_base6kM_I_;
text: .text%__1cIIndexSetFclear6M_v_;
-text: .text%__1cHTypeIntJsingleton6kM_i_;
text: .text%__1cJPhaseLiveLadd_liveout6MpnFBlock_pnIIndexSet_rnJVectorSet__v_;
text: .text%__1cECopyXconjoint_words_to_lower6FpnIHeapWord_2L_v_;
text: .text%__1cNRelocIteratorKset_limits6MpC1_v_;
-text: .text%__1cNRelocIteratorKinitialize6MlpnICodeBlob_pC3_v_;
text: .text%__1cNinstanceKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cSinstanceKlassKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cITypeNodeJideal_reg6kM_I_;
-text: .text%__1cFframeUis_interpreted_frame6kM_i_;
text: .text%__1cHTypeIntEhash6kM_i_;
text: .text%__1cIPhaseGVNJtransform6MpnENode__2_;
text: .text%__1cNinstanceKlassGitable6kM_pnLklassItable__;
text: .text%__1cLklassItable2t6MnTinstanceKlassHandle__v_;
-text: .text%__1cIMachNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cIciObjectEhash6M_i_;
-text: .text%__1cENodeIis_Multi6M_pnJMultiNode__;
-text: .text%__1cFState2T6M_v_;
-text: .text%__1cPVirtualCallDataPfollow_contents6M_v_;
-text: .text%__1cPVirtualCallDataPadjust_pointers6M_v_;
-text: .text%__1cENodeGis_Con6kM_I_;
-text: .text%__1cJrRegIOperJnum_edges6kM_I_;
-text: .text%__1cENodeIget_long6kM_x_;
text: .text%__1cNCellTypeStateFmerge6kM0i_0_;
text: .text%__1cOPhaseIdealLoopUbuild_loop_tree_impl6MpnENode_i_i_;
text: .text%__1cWNode_Backward_IteratorEnext6M_pnENode__;
text: .text%__1cHemit_rm6FrnKCodeBuffer_iii_v_;
-text: .text%__1cHPhiNodeGpinned6kM_i_;
text: .text%__1cITypeNodeEhash6kM_I_;
text: .text%__1cIIndexSetKinitialize6MIpnFArena__v_;
text: .text%__1cJPhaseLiveKgetfreeset6M_pnIIndexSet__;
text: .text%__1cMMachProjNodeJideal_reg6kM_I_;
text: .text%__1cHPhiNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIParmNodeGis_CFG6kM_i_;
text: .text%__1cENodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cNCollectedHeapMobj_allocate6FnLKlassHandle_ipnGThread__pnHoopDesc__;
text: .text%__1cNinstanceKlassRallocate_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cKRegionNodeGOpcode6kM_i_;
text: .text%__1cMMachProjNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLOptoRuntimeFnew_C6FpnMklassOopDesc_pnKJavaThread__v_;
text: .text%__1cOBytecodeStreamEnext6M_nJBytecodesECode__;
text: .text%__1cIProjNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cIJVMStateOis_monitor_use6kMI_i_;
text: .text%__1cLTypeInstPtrEhash6kM_i_;
-text: .text%__1cLuse_dom_lca6FpnFBlock_pnENode_3rnLBlock_Array__1_: gcm.o;
text: .text%__1cITypeLongEhash6kM_i_;
-text: .text%__1cIBoolNodeHis_Bool6M_p0_;
text: .text%__1cOPhaseIdealLoopOget_early_ctrl6MpnENode__2_;
text: .text%__1cOPhaseIdealLoopOset_early_ctrl6MpnENode__v_;
-text: .text%__1cENodeHis_Loop6M_pnILoopNode__;
text: .text%__1cIJumpDataKcell_count6M_i_;
text: .text%__1cHNTarjanELINK6Mp01_v_;
text: .text%__1cENodeIIdentity6MpnOPhaseTransform__p0_;
-text: .text%__1cIMachNode2t6M_v_;
-text: .text%__1cFStateRMachOperGenerator6MipnIMachNode_pnHCompile__pnIMachOper__;
text: .text%__1cRPSOldPromotionLABFflush6M_v_;
-text: .text%__1cICallNodeHis_Call6M_p0_;
-text: .text%__1cENodeFIdeal6MpnIPhaseGVN_i_p0_;
text: .text%__1cENodeRraise_bottom_type6MpknEType__v_;
text: .text%__1cOJNIHandleBlockPallocate_handle6MpnHoopDesc__pnI_jobject__;
text: .text%__1cENodeNis_block_proj6kM_pk0_;
-text: .text%__1cUParallelScavengeHeapPis_in_permanent6kMpkv_i_;
-text: .text%__1cHdom_lca6FpnFBlock_1_1_: gcm.o;
text: .text%__1cOPhaseIdealLoopThas_local_phi_input6MpnENode__2_;
text: .text%__1cJVectorSet2F6kMI_i_;
text: .text%__1cIMachOperDreg6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cICallNodeLbottom_type6kM_pknEType__;
text: .text%JVM_ArrayCopy;
-text: .text%__1cOtypeArrayKlassQoop_is_typeArray6kM_i_;
text: .text%__1cOtypeArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cIMachNodeLbottom_type6kM_pknEType__;
-text: .text%__1cPClassFileParserOcheck_property6MipkcipnGThread__v_;
text: .text%__1cFState2t6M_v_;
-text: .text%__1cFStateDDFA6MipknENode__i_;
text: .text%__1cJPhaseLiveHfreeset6MpknFBlock__v_;
text: .text%__1cOPhaseIdealLoopbIdom_lca_for_get_late_ctrl_internal6MpnENode_22_2_;
-text: .text%__1cKRegionNodeGpinned6kM_i_;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
text: .text%__1cRSignatureIteratorGexpect6Mc_v_;
text: .text%__1cIProjNodeEhash6kM_I_;
text: .text%__1cENodeFclone6kM_p0_;
text: .text%__1cILocationIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cIPhaseCCPOtransform_once6MpnENode__2_;
-text: .text%__1cHCompileMFillLocArray6MpnENode_pnNGrowableArray4CpnKScopeValue____i_;
text: .text%__1cHRegMaskPfind_first_pair6kM_i_;
text: .text%__1cENodeKmatch_edge6kMI_I_;
text: .text%__1cKJNIHandlesKmake_local6FpnHJNIEnv__pnHoopDesc__pnI_jobject__;
@@ -355,41 +233,27 @@
text: .text%__1cNPhaseRegAllocUreg2offset_unchecked6kMi_i_;
text: .text%__1cbAfinal_graph_reshaping_impl6FpnENode_rnUFinal_Reshape_Counts__v_: compile.o;
text: .text%__1cETypeFxmeet6kMpk0_2_;
-text: .text%__1cENodeFis_If6M_pnGIfNode__;
text: .text%__1cJStartNodeLbottom_type6kM_pknEType__;
text: .text%__1cICmpPNodeGOpcode6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockXcompute_gen_kill_single6MpnQciBytecodeStream__v_;
text: .text%__1cKjmpDirNodeMideal_Opcode6kM_i_;
text: .text%__1cOPhaseIdealLoopZremix_address_expressions6MpnENode__2_;
-text: .text%__1cFMutexElock6MpnGThread__v_;
-text: .text%__1cILoadNodeHis_Load6M_p0_;
text: .text%__1cGciTypeEmake6FnJBasicType__p0_;
text: .text%__1cQUnique_Node_ListGremove6MpnENode__v_;
text: .text%__1cKNode_Array2t6MpnFArena__v_;
text: .text%__1cRMachSafePointNodeEjvms6kM_pnIJVMState__;
text: .text%__1cNinstanceKlassMclass_loader6kM_pnHoopDesc__;
text: .text%__1cOPhaseIdealLoopNget_late_ctrl6MpnENode_2_2_;
-text: .text%__1cRMachSpillCopyNodeOimplementation6kMpnKCodeBuffer_pnNPhaseRegAlloc_i_I_;
text: .text%__1cKTypeAryPtrEhash6kM_i_;
text: .text%__1cIIndexSet2t6Mp0_v_;
text: .text%__1cNrFlagsRegOperEtype6kM_pknEType__;
text: .text%__1cHTypeInt2t6Miii_v_;
-text: .text%__1cTconstantPoolOopDescbAname_and_type_ref_index_at6Mi_i_;
text: .text%__1cMPhaseChaitinSuse_prior_register6MpnENode_I2pnFBlock_rnJNode_List_6_i_;
-text: .text%__1cIGraphKitHstopped6M_i_;
-text: .text%__1cKTypeOopPtrJsingleton6kM_i_;
text: .text%__1cENodeQIdeal_DU_postCCP6MpnIPhaseCCP__p0_;
-text: .text%__1cNSafePointNodeGpinned6kM_i_;
-text: .text%__1cQCompressedStream2t6MpCi_v_;
text: .text%__1cIConLNodeGOpcode6kM_i_;
text: .text%__1cHPhiNodeEhash6kM_I_;
-text: .text%__1cGIfNodeGpinned6kM_i_;
-text: .text%__1cOis_diamond_phi6FpnENode__i_: cfgnode.o;
-text: .text%__1cLTypeInstPtrCeq6kMpknEType__i_;
text: .text%__1cENodeHsize_of6kM_I_;
-text: .text%__1cENodeSremove_dead_region6MpnIPhaseGVN_i_i_;
text: .text%__1cHRegMaskMSmearToPairs6M_v_;
-text: .text%__1cSCallStaticJavaNodeEhash6kM_I_;
text: .text%jni_GetObjectField: jni.o;
text: .text%__1cJMarkSweepXrevisit_weak_klass_link6FpnFKlass__v_;
text: .text%__1cKklassKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -398,53 +262,33 @@
text: .text%__1cKNode_ArrayEgrow6MI_v_;
text: .text%__1cLklassVtableToop_adjust_pointers6M_v_;
text: .text%__1cLklassVtableToop_follow_contents6M_v_;
-text: .text%__1cCosOis_interrupted6FpnGThread_i_i_;
text: .text%__1cICmpINodeGOpcode6kM_i_;
-text: .text%__1cHMatcherKLabel_Root6MpknENode_pnFState_p16_6_;
text: .text%__1cMPhaseChaitinHnew_lrg6MpknENode_I_v_;
text: .text%__1cFframeYinterpreter_frame_method6kM_pnNmethodOopDesc__;
text: .text%__1cUGenericGrowableArrayMraw_allocate6Mi_pv_;
text: .text%__1cJMarkSweepNpreserve_mark6FpnHoopDesc_pnLmarkOopDesc__v_;
text: .text%__1cIMachNodeKconst_size6kM_i_;
-text: .text%__1cGIfNodeFis_If6M_p0_;
text: .text%__1cINodeHashLhash_insert6MpnENode__v_;
-text: .text%__1cOPhaseIdealLoopMis_dominator6MpnENode_2_i_;
-text: .text%__1cKTypeOopPtrLxadd_offset6kMi_i_;
text: .text%JVM_Read;
text: .text%__1cDhpiEread6FipvI_L_;
-text: .text%__1cIMachNodeIpeephole6MpnFBlock_ipnNPhaseRegAlloc_ri_p0_;
text: .text%__1cMPhaseIterGVNVadd_users_to_worklist6MpnENode__v_;
-text: .text%__1cIHaltNodeGis_CFG6kM_i_;
-text: .text%__1cENodeKis_PCTable6kM_pknLPCTableNode__;
text: .text%__1cPClassFileStreamGget_u16MpnGThread__C_;
text: .text%__1cMMergeMemNodeGOpcode6kM_i_;
text: .text%__1cPciObjectFactoryEfind6MpnHoopDesc_pnNGrowableArray4CpnIciObject____i_;
-text: .text%__1cJCodeCacheQfind_blob_unsafe6Fpv_pnICodeBlob__;
text: .text%__1cHemit_d86FrnKCodeBuffer_i_v_;
-text: .text%__1cKCodeBuffer2t6MiiiiiipnKBufferBlob_pnJrelocInfo_pnORelocateBuffer_ipnLOopRecorder_pkcii_v_;
text: .text%__1cLOopRecorder2t6MpnFArena__v_;
text: .text%__1cKCodeBuffer2T6M_v_;
-text: .text%__1cKCodeBufferQalloc_relocation6MI_v_;
text: .text%__1cIMachNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIMachNodeJemit_size6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cLTypeInstPtr2t6MnHTypePtrDPTR_pnHciKlass_ipnIciObject_i_v_;
-text: .text%__1cLOptoRuntimeKjbyte_copy6FpW1L_v_;
text: .text%__1cJloadINodeErule6kM_I_;
text: .text%__1cMOopMapStream2t6MpnGOopMap_i_v_;
-text: .text%__1cPciObjectFactoryLis_found_at6MipnHoopDesc_pnNGrowableArray4CpnIciObject____i_;
text: .text%__1cIMachOperDreg6kMpnNPhaseRegAlloc_pknENode__i_;
text: .text%__1cIAddINodeGOpcode6kM_i_;
text: .text%__1cWShouldNotReachHereNodeMideal_Opcode6kM_i_;
-text: .text%__1cOmatch_into_reg6FpnENode_iii1_i_: matcher.o;
-text: .text%__1cENodeJis_Branch6kM_I_;
-text: .text%__1cITypeLong2t6Mxxi_v_;
text: .text%__1cRconstantPoolKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cIJVMStateIof_depth6kMi_p0_;
-text: .text%__1cFMutexElock6M_v_;
text: .text%__1cJrRegLOperEtype6kM_pknEType__;
text: .text%__1cENode2t6Mp0_v_;
-text: .text%__1cLTypeInstPtrEmake6FnHTypePtrDPTR_pnHciKlass_ipnIciObject_i_pk0_;
-text: .text%__1cJStartNodeGpinned6kM_i_;
text: .text%__1cHhashptr6Fpkv_i_;
text: .text%__1cLklassItableToop_adjust_pointers6M_v_;
text: .text%__1cLklassItableToop_follow_contents6M_v_;
@@ -455,62 +299,39 @@
text: .text%__1cNinstanceKlassXfollow_weak_klass_links6MpnRBoolObjectClosure_pnKOopClosure__v_;
text: .text%__1cNinstanceKlassUadjust_static_fields6M_v_;
text: .text%__1cNinstanceKlassUfollow_static_fields6M_v_;
-text: .text%__1cFBlockLis_uncommon6kMrnLBlock_Array__i_;
text: .text%__1cEDict2F6kMpkv_pv_;
text: .text%__1cIProjNodeLbottom_type6kM_pknEType__;
text: .text%__1cNCatchProjNodeGOpcode6kM_i_;
text: .text%__1cJCodeCacheJfind_blob6Fpv_pnICodeBlob__;
text: .text%__1cICallNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cJdo_method6FpnNmethodOopDesc__v_: recompilationMonitor.o;
text: .text%__1cWconstantPoolCacheKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cKjmpConNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadPNodeGOpcode6kM_i_;
text: .text%__1cLSymbolTableGlookup6MipkciI_pnNsymbolOopDesc__;
text: .text%__1cWconstantPoolCacheKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cWconstantPoolCacheKlassToop_adjust_pointers6MpnHoopDesc__i_;
-text: .text%__1cOindOffset8OperJnum_edges6kM_I_;
-text: .text%__1cKBufferBlobIis_alive6kM_i_;
-text: .text%__1cFframeGsender6kMpnLRegisterMap_pnICodeBlob__0_;
-text: .text%__1cJTypeTupleJsingleton6kM_i_;
-text: .text%__1cKTypeAryPtrCeq6kMpknEType__i_;
text: .text%__1cHPhiNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cETypeKhas_memory6kM_i_;
-text: .text%__1cHMatcherKReduceOper6MpnFState_ipnIMachNode_rpnENode__v_;
text: .text%__1cGIfNodeLbottom_type6kM_pknEType__;
text: .text%__1cENodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIMachNodeFreloc6kM_i_;
text: .text%__1cPciObjectFactoryDget6MpnHoopDesc__pnIciObject__;
text: .text%__1cOThreadCritical2T6M_v_;
text: .text%__1cOThreadCritical2t6M_v_;
-text: .text%__1cFframeOis_first_frame6kM_i_;
-text: .text%__1cICodeBlobOis_osr_adapter6kM_i_;
-text: .text%__1cHConNodeGis_Con6kM_I_;
text: .text%__1cIAddPNodeKmatch_edge6kMI_I_;
text: .text%__1cILoadNodeEhash6kM_I_;
text: .text%__1cRMachSpillCopyNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cICodeBlobTfix_oop_relocations6MpC1_v_;
-text: .text%__1cICodeBlobTfix_oop_relocations6M_v_;
text: .text%__1cIimmIOperIconstant6kM_l_;
-text: .text%__1cHCmpNodeGis_Cmp6kM_pk0_;
-text: .text%__1cFMutexbClock_without_safepoint_check6M_v_;
text: .text%__1cENodeHdel_req6MI_v_;
text: .text%__1cJCProjNodeEhash6kM_I_;
-text: .text%__1cHCompileJcan_alias6MpknHTypePtr_i_i_;
text: .text%__1cJMultiNodeEhash6kM_I_;
text: .text%__1cRSignatureIteratorKparse_type6M_i_;
-text: .text%__1cHnmethodIis_alive6kM_i_;
text: .text%__1cIHaltNodeGOpcode6kM_i_;
-text: .text%__1cMMergeMemNodeLis_MergeMem6M_p0_;
-text: .text%__1cUPSMarkSweepDecoratorQinsert_deadspace6MrlpnIHeapWord_L_i_;
text: .text%__1cHPhiNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMPhaseIterGVNZremove_globally_dead_node6MpnENode__v_;
text: .text%__1cETypeEhash6kM_i_;
text: .text%__1cJHashtableLhash_symbol6Fpkci_I_;
-text: .text%__1cKTypeAryPtrEmake6FnHTypePtrDPTR_pnIciObject_pknHTypeAry_pnHciKlass_ii_pk0_;
-text: .text%__1cYDebugInformationRecorderLcheck_phase6Mn0AFPhase__v_;
text: .text%__1cOMachReturnNodeKin_RegMask6kMI_rknHRegMask__;
text: .text%__1cFframeVinterpreter_frame_bcp6kM_pC_;
-text: .text%__1cICodeBlobKis_nmethod6kM_i_;
text: .text%__1cICmpUNodeGOpcode6kM_i_;
text: .text%__1cJOopMapSetSfind_map_at_offset6kMi_pnGOopMap__;
text: .text%__1cICodeBlobbAoop_map_for_return_address6MpC_pnGOopMap__;
@@ -519,91 +340,53 @@
text: .text%__1cIParmNodeGOpcode6kM_i_;
text: .text%__1cTconvI2L_reg_regNodeErule6kM_I_;
text: .text%__1cHTypeIntFxmeet6kMpknEType__3_;
-text: .text%__1cLAdapterInfoFequal6kMp0_i_;
-text: .text%__1cGOopMapbEmap_compiler_reg_to_oopmap_reg6Miii_i_;
-text: .text%__1cTconstantPoolOopDescSklass_ref_index_at6Mi_i_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cMloadConINodeMideal_Opcode6kM_i_;
text: .text%__1cGTarjanEEVAL6M_p0_;
-text: .text%__1cKRelocationYindex_to_runtime_address6Fl_pC_;
text: .text%__1cYexternal_word_RelocationLunpack_data6M_v_;
text: .text%__1cJCatchNodeGOpcode6kM_i_;
text: .text%__1cZPhaseConservativeCoalesceIcoalesce6MpnFBlock__v_;
-text: .text%__1cITypeLongJsingleton6kM_i_;
-text: .text%__1cNencode_RegMem6FrnKCodeBuffer_iiiiii_v_;
-text: .text%__1cFBlockGselect6MrnJNode_List_rnLBlock_Array_pirnJVectorSet_IrnNGrowableArray4CI___pnENode__;
-text: .text%__1cGOopMapHset_xxx6MinLOopMapValueJoop_types_iii_v_;
-text: .text%__1cFMutexNowned_by_self6kM_i_;
text: .text%__1cTCreateExceptionNodeErule6kM_I_;
text: .text%__1cIJVMStateLdebug_start6kM_I_;
-text: .text%__1cRCardTableModRefBSEkind6M_nKBarrierSetEName__;
text: .text%__1cMloadConPNodeMideal_Opcode6kM_i_;
text: .text%__1cIMachNodeNoperand_index6kMI_i_;
-text: .text%__1cKMachIfNodeJis_MachIf6kM_pk0_;
text: .text%__1cFBlockIis_Empty6kM_i_;
text: .text%__1cMMachTypeNodeLbottom_type6kM_pknEType__;
text: .text%__1cIAddPNodeLbottom_type6kM_pknEType__;
text: .text%__1cFBlockOcode_alignment6M_I_;
-text: .text%__1cKRegionNodeJis_Region6kM_pk0_;
text: .text%__1cGBitMapUclear_range_of_words6MLL_v_;
-text: .text%__1cGBitMapFclear6M_v_;
-text: .text%__1cSinstanceKlassKlassMoop_is_klass6kM_i_;
text: .text%__1cJrRegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKCastPPNodeGOpcode6kM_i_;
text: .text%__1cIPhaseIFGMtest_edge_sq6kMII_i_;
-text: .text%__1cFframeQoops_do_internal6MpnKOopClosure_pnLRegisterMap_i_v_;
text: .text%__1cNinstanceKlassLfind_method6FpnPobjArrayOopDesc_pnNsymbolOopDesc_4_pnNmethodOopDesc__;
text: .text%__1cFStateRMachNodeGenerator6MipnHCompile__pnIMachNode__;
text: .text%__1cHMatcherKReduceInst6MpnFState_irpnENode__pnIMachNode__;
-text: .text%__1cENodeOis_CountedLoop6M_pnPCountedLoopNode__;
text: .text%__1cPClassFileStreamHskip_u16MipnGThread__v_;
-text: .text%__1cMMachCallNodeGpinned6kM_i_;
-text: .text%__1cHnmethodJis_zombie6kM_i_;
text: .text%__1cMMergeMemNodeLbottom_type6kM_pknEType__;
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cKTypeAryPtrKadd_offset6kMi_pknHTypePtr__;
-text: .text%__1cKCodeBufferIrelocate6MpCrknQRelocationHolder_i_v_;
text: .text%__1cILoadNodeLbottom_type6kM_pknEType__;
text: .text%__1cLConvI2LNodeGOpcode6kM_i_;
text: .text%__1cHTypeIntEmake6Fi_pk0_;
-text: .text%__1cbFCompressedLineNumberWriteStreamKwrite_pair6Mii_v_;
text: .text%__1cJMultiNodeIproj_out6kMI_pnIProjNode__;
-text: .text%__1cFKlassMoop_is_array6kM_i_;
text: .text%__1cIBoolNodeEhash6kM_I_;
text: .text%__1cIimmPOperEtype6kM_pknEType__;
text: .text%__1cMloadConPNodeLbottom_type6kM_pknEType__;
-text: .text%__1cJrRegPOperJnum_edges6kM_I_;
text: .text%__1cOrFlagsRegUOperEtype6kM_pknEType__;
text: .text%__1cGIfNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNsymbolOopDescLas_C_string6kM_pc_;
text: .text%__1cNsymbolOopDescLas_C_string6kMpci_1_;
-text: .text%__1cGOopMapJset_value6Miii_v_;
text: .text%__1cITypeLongFxmeet6kMpknEType__3_;
text: .text%__1cNCollectedHeapbHcheck_for_non_bad_heap_word_value6MpnIHeapWord_L_v_;
-text: .text%__1cHMatcherTReduceInst_Interior6MpnFState_ipnIMachNode_IrpnENode__I_;
-text: .text%__1cNsymbolOopDescGequals6kMpkci_i_;
text: .text%__1cMPhaseChaitinLinsert_proj6MpnFBlock_IpnENode_I_v_;
-text: .text%__1cKjmpConNodeGpinned6kM_i_;
-text: .text%__1cNSafePointNodebBneeds_polling_address_input6F_i_;
text: .text%__1cHCompileRprobe_alias_cache6MpknHTypePtr__pn0APAliasCacheEntry__;
-text: .text%__1cHnmethodOis_not_entrant6kM_i_;
-text: .text%__1cIAddPNodeHis_AddP6M_p0_;
-text: .text%__1cNobjArrayKlassQarray_klass_impl6MiipnGThread__pnMklassOopDesc__;
-text: .text%__1cNobjArrayKlassQarray_klass_impl6FnTobjArrayKlassHandle_iipnGThread__pnMklassOopDesc__;
-text: .text%__1cIMachNodeGExpand6MpnFState_rnJNode_List__p0_;
text: .text%__1cXInterpreterFrameClosureJoffset_do6Mi_v_;
-text: .text%__1cNinstanceKlassQarray_klass_impl6FnTinstanceKlassHandle_iipnGThread__pnMklassOopDesc__;
-text: .text%__1cNinstanceKlassQarray_klass_impl6MiipnGThread__pnMklassOopDesc__;
text: .text%__1cENodeIdestruct6M_v_;
text: .text%__1cIAddPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cPClassFileParserbEparse_constant_pool_utf8_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cPClassFileParserRverify_legal_utf86MpkCipnGThread__v_;
text: .text%__1cMMachHaltNodeEjvms6kM_pnIJVMState__;
text: .text%__1cKoopFactoryMnew_objArray6FpnMklassOopDesc_ipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cNinstanceKlassRallocate_objArray6MiipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cGBitMapJset_union6M0_v_;
-text: .text%__1cPciInstanceKlassMis_interface6M_i_;
text: .text%__1cHTypeIntEmake6Fiii_pk0_;
text: .text%__1cJTypeTupleEhash6kM_i_;
text: .text%__1cFParsePdo_one_bytecode6M_v_;
@@ -614,27 +397,14 @@
text: .text%__1cJPSPermGenSallocate_permanent6ML_pnIHeapWord__;
text: .text%__1cPmethodDataKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cIHaltNodeKmatch_edge6kMI_I_;
-text: .text%__1cENodeOis_block_start6kM_i_;
-text: .text%__1cHMatcherQis_save_on_entry6Mi_i_;
-text: .text%__1cLsymbolKlassNoop_is_symbol6kM_i_;
-text: .text%__1cITypeLongEmake6Fxxi_pk0_;
text: .text%__1cPmethodDataKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cPmethodDataKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cMPhaseIterGVNKis_IterGVN6M_p0_;
text: .text%__1cGBitMap2t6MpLL_v_;
-text: .text%__1cLOptoRuntimePnew_typeArray_C6FnJBasicType_ipnKJavaThread__v_;
-text: .text%__1cHCompilePfind_alias_type6MpknHTypePtr_i_pn0AJAliasType__;
text: .text%__1cNnew_loc_value6FpnNPhaseRegAlloc_inILocationEType__pnNLocationValue__: output.o;
-text: .text%__1cKjmpDirNodePoper_input_base6kM_I_;
-text: .text%__1cMMachCallNodeLis_MachCall6M_p0_;
-text: .text%__1cHPhiNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cXjava_lang_ref_ReferenceNreferent_addr6FpnHoopDesc__p2_;
text: .text%__1cOindOffset8OperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOindOffset8OperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cZPhaseConservativeCoalesceJcopy_copy6MpnENode_2pnFBlock_I_i_;
-text: .text%__1cKutf8_write6FpCH_0_: utf8.o;
text: .text%__1cKNode_ArrayGremove6MI_v_;
-text: .text%__1cTconstantPoolOopDescQsignature_ref_at6Mi_pnNsymbolOopDesc__;
text: .text%__1cHPhiNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cRSignatureIterator2t6MnMsymbolHandle__v_;
text: .text%__1cJloadPNodeMideal_Opcode6kM_i_;
@@ -642,17 +412,11 @@
text: .text%__1cOindOffset8OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cLjmpConUNodeMideal_Opcode6kM_i_;
text: .text%__1cFBlockJfind_node6kMpknENode__I_;
-text: .text%__1cOis_range_check6FpnENode_r12ri_i_: ifnode.o;
-text: .text%__1cENodeIis_Start6M_pnJStartNode__;
text: .text%__1cHhashkey6Fpkv_i_;
text: .text%__1cNLoadRangeNodeGOpcode6kM_i_;
text: .text%__1cJLoadINodeGOpcode6kM_i_;
-text: .text%__1cKis_x2logic6FpnIPhaseGVN_pnENode__3_: cfgnode.o;
-text: .text%__1cHAbsNodeLis_absolute6FpnIPhaseGVN_pnENode__4_;
text: .text%__1cGTarjanICOMPRESS6M_v_;
text: .text%__1cTconstantPoolOopDescNklass_at_impl6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cENodeHis_Goto6kM_I_;
-text: .text%__1cLPCTableNodeGpinned6kM_i_;
text: .text%JVM_ReleaseUTF;
text: .text%__1cHSubNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cFChunk2t6ML_v_;
@@ -662,7 +426,6 @@
text: .text%__1cFframebCsender_for_interpreter_frame6kMpnLRegisterMap__0_;
text: .text%__1cFChunk2k6Fpv_v_;
text: .text%__1cOMachReturnNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cJrelocInfo2t6Mn0AJrelocType_ii_v_;
text: .text%__1cHMatcherKmatch_tree6MpknENode__pnIMachNode__;
text: .text%__1cLTypeInstPtrFxmeet6kMpknEType__3_;
text: .text%__1cKjmpConNodePoper_input_base6kM_I_;
@@ -670,84 +433,45 @@
text: .text%__1cMciMethodDataHdata_at6Mi_pnLProfileData__;
text: .text%__1cJrelocInfoNfinish_prefix6Mph_p0_;
text: .text%__1cIProjNodeHsize_of6kM_I_;
-text: .text%__1cENodeHis_AddP6M_pnIAddPNode__;
-text: .text%__1cLTypeInstPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cHBitDataKcell_count6M_i_;
-text: .text%__1cFframeZsender_for_compiled_frame6kMpnLRegisterMap_pnICodeBlob__0_;
text: .text%__1cFArenaEgrow6ML_pv_;
-text: .text%__1cNCollectedHeapWpermanent_obj_allocate6FnLKlassHandle_ipnGThread__pnHoopDesc__;
text: .text%__1cMPhaseIterGVNMsubsume_node6MpnENode_2_v_;
-text: .text%__1cLBoxLockNodeNrematerialize6kM_i_;
-text: .text%__1cRMachSafePointNodeQis_MachSafePoint6M_p0_;
text: .text%__1cJloadBNodeErule6kM_I_;
-text: .text%__1cITypeNodeRraise_bottom_type6MpknEType__v_;
text: .text%__1cHConNodeEhash6kM_I_;
-text: .text%__1cICodeBlobLlink_offset6M_i_;
text: .text%__1cENodeRdisconnect_inputs6Mp0_i_;
text: .text%__1cIHaltNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cICodeBlobOis_i2c_adapter6kM_i_;
text: .text%__1cTconstantPoolOopDescWsignature_ref_index_at6Mi_i_;
-text: .text%__1cIJVMStateNclone_shallow6kM_p0_;
text: .text%__1cRMachSpillCopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cGOopMapQset_callee_saved6Miiii_v_;
text: .text%__1cKRegionNodeLbottom_type6kM_pknEType__;
-text: .text%__1cJOopMapSetTupdate_register_map6FpknFframe_pnICodeBlob_pnLRegisterMap__v_;
text: .text%__1cIJVMStateJdebug_end6kM_I_;
-text: .text%__1cXjava_lang_ref_ReferenceJnext_addr6FpnHoopDesc__p2_;
text: .text%__1cENode2t6Mp011_v_;
-text: .text%__1cENodeMis_SafePoint6M_pnNSafePointNode__;
-text: .text%__1cHMatcherTcollect_null_checks6MpnENode__v_;
-text: .text%__1cNSafePointNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cHMemNodeMIdeal_common6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cGBitMapGat_put6MLi_v_;
-text: .text%__1cFciEnvIis_in_vm6F_i_;
text: .text%__1cNSafePointNodeHsize_of6kM_I_;
-text: .text%__1cMgetTimeNanos6F_x_;
-text: .text%__1cKciTypeFlowLStateVectorSapply_one_bytecode6MpnQciBytecodeStream__i_;
text: .text%__1cKPSScavengeUoop_promotion_failed6FpnHoopDesc_pnLmarkOopDesc__v_;
text: .text%__1cHTypePtrLmeet_offset6kMi_i_;
-text: .text%__1cOMergeMemStreamOnext_non_empty6Mi_i_;
-text: .text%__1cNPhaseRegAllocGis_oop6kMpknENode__i_;
text: .text%__1cSPSPromotionManagerUoop_promotion_failed6MpnHoopDesc_pnLmarkOopDesc__2_;
-text: .text%__1cIMachOperLdisp_is_oop6kM_i_;
text: .text%__1cRSignatureIteratorSiterate_parameters6M_v_;
text: .text%__1cNmethodOopDescIbci_from6kMpC_i_;
-text: .text%__1cICodeBlobYcaller_must_gc_arguments6kMpnKJavaThread__i_;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockIload_one6Mi_v_;
-text: .text%__1cJTypeTupleCeq6kMpknEType__i_;
text: .text%__1cHCmpNodeLbottom_type6kM_pknEType__;
text: .text%__1cFDictI2i6M_v_;
-text: .text%__1cPjava_lang_ClassMis_primitive6FpnHoopDesc__i_;
text: .text%JVM_GetMethodIxExceptionTableLength;
-text: .text%__1cKC2IAdapterIis_alive6kM_i_;
text: .text%__1cENodeHget_int6kM_i_;
text: .text%__1cMMachCallNodeLbottom_type6kM_pknEType__;
text: .text%__1cOGenerateOopMapHinterp16MpnOBytecodeStream__v_;
-text: .text%__1cIAddPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMloadConINodeLbottom_type6kM_pknEType__;
text: .text%__1cPCheckCastPPNodeGOpcode6kM_i_;
text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cENodeXis_iteratively_computed6M_i_;
-text: .text%__1cNloadConI0NodePoper_input_base6kM_I_;
-text: .text%__1cNinstanceKlassPoop_is_instance6kM_i_;
text: .text%__1cENodeKreplace_by6Mp0_v_;
text: .text%__1cHPhiNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cIBoolTestKcc2logical6kMpknEType__3_;
text: .text%__1cIBoolNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cJrelocInfoKset_format6Mi_v_;
text: .text%__1cXruntime_call_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cKRelocationJpack_data6M_i_;
-text: .text%__1cXjava_lang_ref_ReferencePdiscovered_addr6FpnHoopDesc__p2_;
text: .text%__1cNPhaseCoalesceRcombine_these_two6MpnENode_2_v_;
text: .text%__1cNtestP_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cETypeFempty6kM_i_;
-text: .text%__1cHMemNodeGis_Mem6M_p0_;
-text: .text%__1cZload_can_see_stored_value6FpnILoadNode_pnENode_pnOPhaseTransform__3_: memnode.o;
text: .text%__1cICallNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cICodeBlobJis_zombie6kM_i_;
text: .text%__1cJTypeTupleGfields6FI_ppknEType__;
-text: .text%__1cOGenerateOopMapPjump_targets_do6MpnOBytecodeStream_pFp0ipi_v4_i_;
text: .text%__1cPClassFileParserUassemble_annotations6MpCi1ipnGThread__nPtypeArrayHandle__;
text: .text%method_compare: methodOop.o;
text: .text%__1cMMergeMemNodeEhash6kM_I_;
@@ -755,47 +479,30 @@
text: .text%__1cILoadNodeKmatch_edge6kMI_I_;
text: .text%__1cFBlockUneeded_for_next_call6MpnENode_rnJVectorSet_rnLBlock_Array__v_;
text: .text%__1cIIndexSetSpopulate_free_list6F_v_;
-text: .text%__1cGIfNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cCosPelapsed_counter6F_x_;
text: .text%__1cIAddPNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIemit_d326FrnKCodeBuffer_i_v_;
-text: .text%__1cNloadConI0NodeHtwo_adr6kM_I_;
text: .text%__1cJStoreNodeKmatch_edge6kMI_I_;
text: .text%__1cITypeNodeDcmp6kMrknENode__I_;
text: .text%__1cMPhaseChaitinFUnion6MpknENode_3_v_;
-text: .text%__1cFKlassMoop_is_klass6kM_i_;
text: .text%__1cRSignatureIteratorTcheck_signature_end6M_v_;
text: .text%__1cRSignatureIteratorSiterate_returntype6M_v_;
text: .text%__1cNinstanceKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cHnmethodKis_nmethod6kM_i_;
text: .text%__1cILoadNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNSafePointNodeKmatch_edge6kMI_I_;
text: .text%__1cPClassFileStreamGget_u46MpnGThread__I_;
-text: .text%__1cSCallStaticJavaNodeRis_CallStaticJava6kM_pk0_;
text: .text%__1cKarrayKlassLobject_size6kMi_i_;
-text: .text%__1cPciInstanceKlassRis_instance_klass6M_i_;
-text: .text%__1cOno_flip_branch6FpnFBlock__i_: block.o;
text: .text%__1cKarrayKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cYCallStaticJavaDirectNodePoper_input_base6kM_I_;
text: .text%__1cOGenerateOopMapEpush6MnNCellTypeState__v_;
-text: .text%__1cKjmpDirNodeGpinned6kM_i_;
-text: .text%__1cTconstantPoolOopDescLname_ref_at6Mi_pnNsymbolOopDesc__;
-text: .text%__1cKjmpDirNodeHtwo_adr6kM_I_;
text: .text%__1cPciInstanceKlassGloader6M_pnHoopDesc__;
-text: .text%__1cJrRegLOperJnum_edges6kM_I_;
text: .text%__1cOGenerateOopMapDpop6M_nNCellTypeState__;
-text: .text%__1cNGrowableArray4CpnKScopeValue__2t6Mii_v_;
text: .text%__1cYDebugInformationRecorderWserialize_scope_values6MpnNGrowableArray4CpnKScopeValue____i_;
text: .text%__1cYDebugInformationRecorderTcreate_scope_values6MpnNGrowableArray4CpnKScopeValue____pnKDebugToken__;
text: .text%__1cITypeNodeHsize_of6kM_I_;
text: .text%__1cILoadNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cPPerfLongVariantGsample6M_v_;
text: .text%__1cNloadConI0NodeErule6kM_I_;
-text: .text%__1cJCodeCacheIcontains6Fpv_i_;
text: .text%__1cQciBytecodeStreamMreset_to_bci6Mi_v_;
-text: .text%__1cJOopMapSetGall_do6FpknFframe_pnICodeBlob_pknLRegisterMap_pnKOopClosure_pFppnHoopDesc_9E_v9B9B_v_;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
-text: .text%__1cJOopMapSetHoops_do6FpknFframe_pnICodeBlob_pknLRegisterMap_pnKOopClosure__v_;
text: .text%__1cHPhiNodeHsize_of6kM_I_;
text: .text%__1cSInterpreterRuntimeJanewarray6FpnKJavaThread_pnTconstantPoolOopDesc_ii_v_;
text: .text%__1cMPhaseChaitinNFind_compress6MI_I_;
@@ -804,92 +511,55 @@
text: .text%__1cOGenerateOopMapKcheck_type6MnNCellTypeState_1_v_;
text: .text%__1cPciInstanceKlassRprotection_domain6M_pnHoopDesc__;
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_;
-text: .text%__1cILoadNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cMPhaseIterGVNbGregister_new_node_with_optimizer6MpnENode__2_;
-text: .text%__1cKBufferBlobMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_;
text: .text%__1cLRegisterMapFclear6M_v_;
text: .text%__1cIBoolNodeLbottom_type6kM_pknEType__;
text: .text%__1cITypeNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cKRegionNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cLBlock_Array2t6MpnFArena__v_;
-text: .text%__1cPSignatureStreamHis_done6kM_i_;
-text: .text%__1cNrFlagsRegOperJnum_edges6kM_I_;
-text: .text%__1cLPhaseValuesGintcon6Mi_pnIConINode__;
text: .text%__1cKStoreINodeGOpcode6kM_i_;
-text: .text%__1cLRegisterMap2t6MpnKJavaThread_i_v_;
-text: .text%__1cNmethodOopDescPis_empty_method6kM_i_;
text: .text%__1cJcmpOpOperJnum_edges6kM_I_;
text: .text%__1cNExceptionMark2t6MrpnGThread__v_;
text: .text%__1cNExceptionMark2T6M_v_;
text: .text%__1cCosMvm_page_size6F_i_;
-text: .text%__1cJloadPNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cOcompU_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cNmethodOopDescLis_accessor6kM_i_;
-text: .text%__1cPloadConUL32NodePoper_input_base6kM_I_;
text: .text%__1cMPhaseChaitinSget_spillcopy_wide6MpnENode_2I_2_;
-text: .text%__1cKI2CAdapterIis_alive6kM_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cIGraphKitJsync_jvms6kM_pnIJVMState__;
text: .text%__1cFframebFinterpreter_frame_monitor_begin6kM_pnPBasicObjectLock__;
-text: .text%__1cENodeGis_Mem6M_pnHMemNode__;
-text: .text%__1cQSystemDictionaryXcheck_signature_loaders6FnMsymbolHandle_nGHandle_2ipnGThread__v_;
-text: .text%__1cIGraphKitEstop6M_v_;
text: .text%__1cNidealize_test6FpnIPhaseGVN_pnGIfNode__3_: ifnode.o;
-text: .text%__1cPloadConUL32NodeHtwo_adr6kM_I_;
text: .text%__1cNSafePointNodeLbottom_type6kM_pknEType__;
text: .text%__1cPTwoOopHashtableMcompute_hash6MnMsymbolHandle_nGHandle__I_;
text: .text%__1cRSignatureIterator2t6MpnNsymbolOopDesc__v_;
text: .text%__1cKStorePNodeGOpcode6kM_i_;
-text: .text%__1cHMonitorKnotify_all6M_i_;
text: .text%__1cFframeVinterpreter_frame_bci6kM_i_;
text: .text%__1cHRetNodeNis_block_proj6kM_pknENode__;
text: .text%__1cMPhaseChaitinMyank_if_dead6MpnENode_pnFBlock_pnJNode_List_6_i_;
text: .text%__1cENodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cFBlockLfind_remove6MpknENode__v_;
text: .text%__1cOGenerateOopMapRdo_exception_edge6MpnOBytecodeStream__v_;
-text: .text%__1cKOopClosureLdo_nmethods6kM_ki_;
-text: .text%__1cGOopMapHset_oop6Miii_v_;
text: .text%__1cNSafePointNodeSset_next_exception6Mp0_v_;
text: .text%__1cPloadConUL32NodeErule6kM_I_;
text: .text%__1cFChunkEchop6M_v_;
text: .text%__1cMciMethodDataJnext_data6MpnLProfileData__2_;
text: .text%__1cJStoreNodeLbottom_type6kM_pknEType__;
-text: .text%__1cPciObjectFactorySget_unloaded_klass6MpnHciKlass_pnIciSymbol_i_2_;
text: .text%__1cLBlock_StackXmost_frequent_successor6MpnFBlock__I_;
text: .text%__1cFBlockScall_catch_cleanup6MrnLBlock_Array__v_;
-text: .text%__1cFBlockOschedule_local6MrnHMatcher_rnLBlock_Array_pirnJVectorSet_rnNGrowableArray4CI___i_;
text: .text%__1cXPhaseAggressiveCoalesceIcoalesce6MpnFBlock__v_;
text: .text%__1cOGenerateOopMapFppop16MnNCellTypeState__v_;
text: .text%__1cKstorePNodePoper_input_base6kM_I_;
-text: .text%__1cMPhaseIterGVNFwiden6kMpknEType_3_3_;
-text: .text%__1cKRegionNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNmethodOopDescRis_not_compilable6kMi_i_;
-text: .text%__1cLis_cond_add6FpnIPhaseGVN_pnHPhiNode__pnENode__;
text: .text%__1cPsplit_flow_path6FpnIPhaseGVN_pnHPhiNode__pnENode__: cfgnode.o;
text: .text%__1cKRegionNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGTarjanELINK6Mp01_v_;
-text: .text%__1cKTypeRawPtrKadd_offset6kMi_pknHTypePtr__;
-text: .text%__1cWMutableSpaceUsedHelperLtake_sample6M_x_;
-text: .text%__1cIBoolNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIsplit_if6FpnGIfNode_pnMPhaseIterGVN__pnENode__: ifnode.o;
-text: .text%__1cTremove_useless_bool6FpnGIfNode_pnIPhaseGVN__pnENode__: ifnode.o;
text: .text%__1cMPhaseChaitinNFind_compress6MpknENode__I_;
text: .text%__1cRInterpreterOopMapKinitialize6M_v_;
text: .text%__1cJTypeTupleEmake6FIppknEType__pk0_;
-text: .text%__1cYCallStaticJavaDirectNodeHtwo_adr6kM_I_;
text: .text%__1cKDictionaryJget_entry6MiInMsymbolHandle_nGHandle__pnPDictionaryEntry__;
text: .text%__1cLLShiftINodeGOpcode6kM_i_;
text: .text%__1cQResultTypeFinderDset6MinJBasicType__v_;
-text: .text%__1cHnmethodMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
text: .text%__1cNmethodOopDescLresult_type6kM_nJBasicType__;
text: .text%__1cIMachOperOindex_position6kM_i_;
-text: .text%__1cKReflectionTverify_field_access6FpnMklassOopDesc_22nLAccessFlags_ii_i_;
text: .text%__1cOemit_d32_reloc6FrnKCodeBuffer_irknQRelocationHolder_i_v_;
text: .text%__1cLjmpConUNodePoper_input_base6kM_I_;
text: .text%__1cHAddNodeEhash6kM_I_;
-text: .text%__1cNtestP_regNodePoper_input_base6kM_I_;
-text: .text%__1cHSubNodeGis_Sub6M_p0_;
text: .text%__1cPcheckCastPPNodePoper_input_base6kM_I_;
text: .text%__1cIRootNodeGOpcode6kM_i_;
text: .text%__1cFframebDinterpreter_frame_monitor_end6kM_pnPBasicObjectLock__;
@@ -900,20 +570,14 @@
text: .text%__1cRInterpreterOopMapNresource_copy6MpnQOopMapCacheEntry__v_;
text: .text%__1cLOopMapCacheGlookup6MnMmethodHandle_ipnRInterpreterOopMap__v_;
text: .text%__1cRInterpreterOopMap2t6M_v_;
-text: .text%__1cFframeToops_interpreted_do6MpnKOopClosure_pknLRegisterMap_i_v_;
text: .text%__1cSInterpreterRuntimeLcache_entry6FpnKJavaThread__pnWConstantPoolCacheEntry__;
text: .text%__1cOindOffset8OperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOJNIHandleBlockHoops_do6MpnKOopClosure__v_;
text: .text%__1cKstorePNodeMideal_Opcode6kM_i_;
text: .text%__1cFChunkJnext_chop6M_v_;
text: .text%__1cENode2t6Mp0111_v_;
-text: .text%__1cITypeLongEmake6Fx_pk0_;
-text: .text%__1cLjmpConUNodeGpinned6kM_i_;
text: .text%__1cPciObjectFactoryNfind_non_perm6MpnHoopDesc__rpn0ANNonPermObject__;
text: .text%__1cHCmpNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cKTypeRawPtrJsingleton6kM_i_;
-text: .text%__1cNGCTaskManagerNresource_flag6MI_i_;
-text: .text%__1cNGCTaskManagerYshould_release_resources6MI_i_;
text: .text%__1cIAddINodeLbottom_type6kM_pknEType__;
text: .text%__1cNloadRangeNodeErule6kM_I_;
text: .text%__1cNrFlagsRegOperKin_RegMask6kMi_pknHRegMask__;
@@ -923,9 +587,7 @@
text: .text%__1cOBasicHashtableJnew_entry6MI_pnTBasicHashtableEntry__;
text: .text%__1cJHashtableJnew_entry6MIpnHoopDesc__pnOHashtableEntry__;
text: .text%__1cSCountedLoopEndNodeGOpcode6kM_i_;
-text: .text%__1cTOopMapForCacheEntryRpossible_gc_point6MpnOBytecodeStream__i_;
text: .text%__1cKstoreINodePoper_input_base6kM_I_;
-text: .text%__1cNtestP_regNodeHtwo_adr6kM_I_;
text: .text%__1cCosVcurrent_stack_pointer6F_pC_;
text: .text%__1cMMergeMemNodePiteration_setup6Mpk0_v_;
text: .text%__1cRMachSafePointNodeKin_RegMask6kMI_rknHRegMask__;
@@ -933,13 +595,8 @@
text: .text%__1cMMergeMemNodeJmemory_at6kMI_pnENode__;
text: .text%__1cJloadSNodeErule6kM_I_;
text: .text%__1cLLShiftLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cMBasicAdapterHoops_do6MpnKOopClosure__v_;
-text: .text%__1cKjmpConNodeJnum_opnds6kM_I_;
-text: .text%__1cLOptoRuntimeOnew_objArray_C6FpnMklassOopDesc_ipnKJavaThread__v_;
text: .text%__1cTconstantPoolOopDescSklass_at_if_loaded6FnSconstantPoolHandle_i_pnMklassOopDesc__;
-text: .text%__1cFciEnvXget_klass_by_index_impl6MpnPciInstanceKlass_iri_pnHciKlass__;
text: .text%__1cKjmpDirNodeHsize_of6kM_I_;
-text: .text%__1cJloadPNodeJnum_opnds6kM_I_;
text: .text%__1cJCProjNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJMultiNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cHOopFlowNcompute_reach6MpnNPhaseRegAlloc_ipnEDict__v_;
@@ -952,127 +609,88 @@
text: .text%__1cNGCTaskManagerWincrement_busy_workers6M_I_;
text: .text%__1cLGCTaskQdDueueHdequeue6M_pnGGCTask__;
text: .text%__1cNGCTaskManagerPnote_completion6MI_v_;
-text: .text%__1cHMatcherXadjust_outgoing_stk_arg6Miiri_i_;
text: .text%__1cTCreateExceptionNodeMideal_Opcode6kM_i_;
text: .text%__1cKIfTrueNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cXvirtual_call_RelocationLunpack_data6M_v_;
-text: .text%__1cMBasicAdapterMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
text: .text%__1cXindIndexScaleOffsetOperJnum_edges6kM_I_;
text: .text%__1cLRShiftINodeGOpcode6kM_i_;
-text: .text%__1cJStoreNodeIis_Store6kM_pk0_;
text: .text%Unsafe_CompareAndSwapLong;
text: .text%__1cNinstanceKlassRprotection_domain6M_pnHoopDesc__;
text: .text%__1cNtestI_regNodeMideal_Opcode6kM_i_;
text: .text%__1cTAbstractInterpreterLmethod_kind6FnMmethodHandle__n0AKMethodKind__;
text: .text%__1cJStoreNodeEhash6kM_I_;
-text: .text%__1cOcompI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cKmethodOperGmethod6kM_l_;
-text: .text%__1cHTypeAryRary_must_be_exact6kM_i_;
text: .text%__1cKstoreINodeMideal_Opcode6kM_i_;
text: .text%__1cGGCTask2t6M_v_;
-text: .text%__1cOcompU_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cNSafePointNodeOnext_exception6kM_p0_;
text: .text%__1cOindOffset8OperNbase_position6kM_i_;
text: .text%__1cOindOffset8OperNconstant_disp6kM_i_;
-text: .text%__1cKjmpDirNodeHis_Goto6kM_I_;
text: .text%__1cENodeHset_req6MIp0_v_;
text: .text%__1cTconstantPoolOopDescNklass_name_at6Mi_pnNsymbolOopDesc__;
-text: .text%__1cSObjectSynchronizerKfast_enter6FnGHandle_pnJBasicLock_pnGThread__v_;
text: .text%__1cSObjectSynchronizerJfast_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cWShouldNotReachHereNodePoper_input_base6kM_I_;
-text: .text%__1cMMergeMemNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cGThreadLis_in_stack6kMpC_i_;
text: .text%__1cLIfFalseNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cKJavaThreadNis_lock_owned6kMpC_i_;
text: .text%__1cXAdaptiveWeightedAverageYcompute_adaptive_average6Mff_f_;
text: .text%__1cOcompU_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cJloadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTconvI2L_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cSPSPromotionManagerbBgc_thread_promotion_manager6Fi_p0_;
-text: .text%__1cNmethodOopDescMintrinsic_id6kM_nMvmIntrinsicsCID__;
-text: .text%__1cKstorePNodeJnum_opnds6kM_I_;
text: .text%__1cQinstanceRefKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cQinstanceRefKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cMMergeMemNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cLciSignatureLreturn_type6kM_pnGciType__;
-text: .text%__1cMMergeMemNodeQclone_all_memory6FpnENode__p0_;
text: .text%__1cIGraphKitJclone_map6M_pnNSafePointNode__;
text: .text%__1cLMachNopNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJchar2type6Fc_nJBasicType__;
text: .text%__1cJFieldTypeKbasic_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cKRelocationLspec_simple6FnJrelocInfoJrelocType__nQRelocationHolder__;
-text: .text%__1cICallNodeLis_CallLeaf6kM_pknMCallLeafNode__;
-text: .text%__1cLrecord_bias6FpknIPhaseIFG_ii_v_: coalesce.o;
text: .text%__1cJrRegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cMObjectLocker2t6MnGHandle_pnGThread__v_;
text: .text%__1cMObjectLocker2T6M_v_;
text: .text%__1cNloadRangeNodeMideal_Opcode6kM_i_;
-text: .text%__1cRMachSafePointNodeRis_safepoint_node6kM_i_;
-text: .text%__1cHTypeIntFempty6kM_i_;
text: .text%__1cRInvocationCounterJset_state6Mn0AFState__v_;
text: .text%__1cRInvocationCounterFreset6M_v_;
-text: .text%__1cKTypeOopPtrWmake_from_klass_common6FpnHciKlass_ii_pk0_;
text: .text%__1cRInvocationCounterEinit6M_v_;
text: .text%__1cNSafePointNodeEjvms6kM_pnIJVMState__;
text: .text%__1cNSignatureInfoJdo_object6Mii_v_;
-text: .text%__1cLPhaseValuesFwiden6kMpknEType_3_3_;
text: .text%__1cTconstantPoolOopDescRname_ref_index_at6Mi_i_;
text: .text%__1cIHaltNodeLbottom_type6kM_pknEType__;
-text: .text%__1cRRawBytecodeStreamMset_interval6Mii_v_;
-text: .text%__1cNtestI_regNodeHtwo_adr6kM_I_;
text: .text%__1cSsafePoint_pollNodeMideal_Opcode6kM_i_;
-text: .text%__1cLOopRecorderOallocate_index6MpnI_jobject__i_;
-text: .text%__1cYDebugInformationRecorderNappend_handle6MpnI_jobject__i_;
text: .text%__1cYCallStaticJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cYCallStaticJavaDirectNodeSalignment_required6kM_i_;
text: .text%__1cMloadConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cOPhaseIdealLoopIsplit_up6MpnENode_22_i_;
-text: .text%__1cWConstantPoolCacheEntryRset_initial_state6Mi_v_;
text: .text%__1cKNativeCallGverify6M_v_;
text: .text%__1cNCompileBrokerLmaybe_block6F_v_;
text: .text%__1cFPhase2t6Mn0ALPhaseNumber__v_;
text: .text%__1cJloadINodeMideal_Opcode6kM_i_;
text: .text%__1cNLoadKlassNodeGOpcode6kM_i_;
text: .text%__1cIBoolNodeKmatch_edge6kMI_I_;
-text: .text%__1cITypeLongEmake6Fxx_pk0_;
-text: .text%__1cKRegionNodeOis_block_start6kM_i_;
text: .text%__1cCosGmalloc6FL_pv_;
text: .text%__1cXAdaptiveWeightedAverageGsample6Mf_v_;
text: .text%__1cFStateM_sub_Op_RegP6MpknENode__v_;
text: .text%__1cPcheckCastPPNodeHtwo_adr6kM_I_;
-text: .text%__1cRMachNullCheckNodeQis_MachNullCheck6M_p0_;
text: .text%__1cOGenerateOopMapGppush16MnNCellTypeState__v_;
text: .text%__1cGBitMapOset_difference6M0_v_;
text: .text%__1cMvalue_of_loc6FppnHoopDesc__l_;
text: .text%__1cRmethodDataOopDescTbytecode_cell_count6FnJBytecodesECode__i_;
text: .text%__1cRmethodDataOopDescRcompute_data_size6FpnOBytecodeStream__i_;
text: .text%__1cRmethodDataOopDescPinitialize_data6MpnOBytecodeStream_i_i_;
-text: .text%__1cOcompI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cLSymbolTableJbasic_add6MipCiIpnGThread__pnNsymbolOopDesc__;
text: .text%__1cLsymbolKlassPallocate_symbol6MpCipnGThread__pnNsymbolOopDesc__;
text: .text%__1cNGrowableArray4CpnKciTypeFlowFBlock__2t6MpnFArena_iirk2_v_;
-text: .text%__1cLPhaseValuesHlongcon6Mx_pnIConLNode__;
text: .text%__1cKDictionaryEfind6MiInMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cOcompI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cKTypeAryPtrFxmeet6kMpknEType__3_;
-text: .text%__1cMPhaseChaitinJsplit_USE6MpnENode_pnFBlock_2IIiinNGrowableArray4CI__i_I_;
-text: .text%__1cNCatchProjNodeMis_CatchProj6kM_pk0_;
text: .text%__1cOcompU_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cNSafePointNodeGOpcode6kM_i_;
-text: .text%__1cTconvI2L_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cMTypeKlassPtrEhash6kM_i_;
-text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
text: .text%__1cMLinkResolverYlookup_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cMciMethodDataLbci_to_data6Mi_pnLProfileData__;
text: .text%JVM_GetCPMethodSignatureUTF;
text: .text%__1cPfieldDescriptorKinitialize6MpnMklassOopDesc_i_v_;
-text: .text%__1cIciMethodbCinterpreter_invocation_count6M_i_;
text: .text%__1cMMergeMemNodeNset_memory_at6MIpnENode__v_;
text: .text%JVM_CurrentThread;
-text: .text%__1cPClassFileParserbLparse_constant_pool_nameandtype_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cKstoreINodeJnum_opnds6kM_I_;
text: .text%__1cHTypeAryEhash6kM_i_;
text: .text%JVM_GetClassModifiers;
text: .text%JVM_GetClassAccessFlags;
@@ -1088,38 +706,24 @@
text: .text%__1cParrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cMrax_RegPOperEtype6kM_pknEType__;
text: .text%__1cKTypeRawPtrEhash6kM_i_;
-text: .text%__1cLmethodKlassNoop_is_method6kM_i_;
text: .text%__1cXindIndexScaleOffsetOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cPSignatureStreamJis_object6kM_i_;
text: .text%__1cVCompressedWriteStream2t6Mi_v_;
text: .text%__1cENode2t6Mp01_v_;
text: .text%__1cHAddNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cJStartNodeIis_Start6M_p0_;
text: .text%__1cMURShiftINodeGOpcode6kM_i_;
-text: .text%__1cNGrowableArray4CpnMMonitorValue__2t6Mii_v_;
-text: .text%__1cYDebugInformationRecorderOdescribe_scope6MpnIciMethod_ipnKDebugToken_44_v_;
text: .text%__1cYDebugInformationRecorderVcreate_monitor_values6MpnNGrowableArray4CpnMMonitorValue____pnKDebugToken__;
text: .text%__1cYDebugInformationRecorderYserialize_monitor_values6MpnNGrowableArray4CpnMMonitorValue____i_;
text: .text%__1cMloadConINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIMachNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cKReflectionTverify_class_access6FpnMklassOopDesc_2i_i_;
text: .text%__1cOMethodLivenessKBasicBlockWcompute_gen_kill_range6MpnQciBytecodeStream__v_;
text: .text%__1cJAssemblerJemit_data6MirknQRelocationHolder_i_v_;
text: .text%__1cIMachOperMdisp_as_type6kM_pknHTypePtr__;
-text: .text%__1cKCompiledICWis_in_transition_state6kM_i_;
-text: .text%__1cRInlineCacheBufferIcontains6FpC_i_;
text: .text%__1cOcompU_rRegNodeErule6kM_I_;
text: .text%__1cRMemBarReleaseNodeGOpcode6kM_i_;
text: .text%__1cKRelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cETypeOget_const_type6FpnGciType__pk0_;
text: .text%__1cMPhaseChaitinPset_was_spilled6MpnENode__v_;
-text: .text%__1cXvirtual_call_RelocationIparse_ic6FrpnICodeBlob_rpC5rppnHoopDesc_pi_nNRelocIterator__;
-text: .text%__1cLCounterDataOis_CounterData6M_i_;
-text: .text%__1cRCompilationPolicyNcanBeCompiled6FnMmethodHandle__i_;
-text: .text%__1cOcompU_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cKcmpOpUOperJnum_edges6kM_I_;
-text: .text%__1cOrFlagsRegUOperJnum_edges6kM_I_;
-text: .text%__1cKCastPPNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIGraphKitMsaved_ex_oop6FpnNSafePointNode__pnENode__;
text: .text%__1cMtlsLoadPNodeErule6kM_I_;
text: .text%__1cIGraphKitGmemory6MI_pnENode__;
@@ -1129,45 +733,22 @@
text: .text%__1cSobjArrayKlassKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cSobjArrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cQciBytecodeStreamPget_field_index6M_i_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
-text: .text%__1cNchunk_oops_do6FpnKOopClosure_pnFChunk_pc_L_: handles.o;
text: .text%__1cKCompiledIC2t6MpnKRelocation__v_;
-text: .text%__1cMUniverseOperFclone6kM_pnIMachOper__;
-text: .text%__1cJlabelOperFclone6kM_pnIMachOper__;
text: .text%__1cRaddI_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cLPhaseValuesHmakecon6MpknEType__pnHConNode__;
text: .text%__1cENodeHins_req6MIp0_v_;
text: .text%__1cIGraphKitLclean_stack6Mi_v_;
text: .text%__1cKRegionNodeHhas_phi6kM_pnHPhiNode__;
text: .text%__1cNloadRangeNodePoper_input_base6kM_I_;
-text: .text%__1cOMachReturnNodeNis_MachReturn6M_p0_;
-text: .text%__1cNaddI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cQPreserveJVMState2t6MpnIGraphKit_i_v_;
-text: .text%__1cNtestP_regNodeMcisc_operand6kM_i_;
-text: .text%__1cKjmpConNodeHtwo_adr6kM_I_;
-text: .text%__1cPClassFileParserbJparse_constant_pool_methodref_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cFKlassNoop_is_symbol6kM_i_;
-text: .text%__1cWConstantPoolCacheEntryLis_resolved6kMnJBytecodesECode__i_;
text: .text%__1cWConstantPoolCacheEntryPbytecode_number6FnJBytecodesECode__i_;
-text: .text%__1cMPhaseChaitinVmay_be_copy_of_callee6kMpnENode__i_;
text: .text%__1cNtestP_regNodeErule6kM_I_;
-text: .text%__1cUThreadSafepointStateXexamine_state_of_thread6Mi_v_;
-text: .text%__1cUSafepointSynchronizeOsafepoint_safe6FpnKJavaThread_nPJavaThreadState__i_;
text: .text%__1cFStateM_sub_Op_ConI6MpknENode__v_;
text: .text%__1cUArgumentSizeComputerDset6MinJBasicType__v_;
-text: .text%__1cOcompU_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cHPhiNodeEmake6FpnENode_2pknEType_pknHTypePtr__p0_;
-text: .text%__1cKCodeBufferOadd_stub_reloc6MpCrknQRelocationHolder_i_v_;
-text: .text%__1cKCodeBufferOalloc_relocate6M_pnORelocateBuffer__;
text: .text%__1cNtestI_regNodeErule6kM_I_;
text: .text%__1cOGenerateOopMapbAget_basic_block_containing6kMi_pnKBasicBlock__;
-text: .text%__1cFParseKensure_phi6Mii_pnHPhiNode__;
text: .text%__1cMLinkResolverZcheck_klass_accessability6FnLKlassHandle_1pnGThread__v_;
text: .text%__1cOGenerateOopMapSget_basic_block_at6kMi_pnKBasicBlock__;
-text: .text%__1cHAddress2t6MpCnJrelocInfoJrelocType__v_;
-text: .text%__1cFciEnvSget_klass_by_index6MpnPciInstanceKlass_iri_pnHciKlass__;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_AddP6MpknENode__v_;
text: .text%__1cICallNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cOcompI_rRegNodeMcisc_operand6kM_i_;
@@ -1178,53 +759,24 @@
text: .text%__1cKJNIHandlesKmake_local6FpnHoopDesc__pnI_jobject__;
text: .text%__1cITypeFuncEhash6kM_i_;
text: .text%__1cOcompI_rRegNodeErule6kM_I_;
-text: .text%__1cIciMethodPliveness_at_bci6Mi_nGBitMap__;
-text: .text%__1cOMethodLivenessPget_liveness_at6Mi_nGBitMap__;
-text: .text%__1cOMethodLivenessKBasicBlockPget_liveness_at6MpnIciMethod_i_nGBitMap__;
-text: .text%__1cITypeLongFempty6kM_i_;
-text: .text%__1cMTypeKlassPtrCeq6kMpknEType__i_;
text: .text%__1cJAssemblerJemit_data6MinJrelocInfoJrelocType_i_v_;
text: .text%__1cJLoadSNodeGOpcode6kM_i_;
text: .text%__1cRMemBarAcquireNodeGOpcode6kM_i_;
-text: .text%__1cIGraphKitObasic_plus_adr6MpnENode_2l_2_;
text: .text%__1cJVectorSet2L6MI_rnDSet__;
text: .text%__1cJVectorSetEgrow6MI_v_;
-text: .text%__1cLCastP2LNodeGOpcode6kM_i_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cJAssemblerEcall6MpCnJrelocInfoJrelocType__v_;
text: .text%__1cPcheckCastPPNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadLNodeGOpcode6kM_i_;
text: .text%__1cMLinkResolverNresolve_klass6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cTconstantPoolOopDescMklass_ref_at6MipnGThread__pnMklassOopDesc__;
-text: .text%__1cRCompilationPolicyOmustBeCompiled6FnMmethodHandle__i_;
text: .text%__1cIAndINodeGOpcode6kM_i_;
-text: .text%__1cKklassKlassMoop_is_klass6kM_i_;
-text: .text%__1cUParallelScavengeHeapNtlab_capacity6kM_L_;
text: .text%__1cTCreateExceptionNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIPhaseCCPFwiden6kMpknEType_3_3_;
-text: .text%__1cHTypePtrJsingleton6kM_i_;
text: .text%__1cNArgumentCountDset6MinJBasicType__v_;
-text: .text%__1cWShouldNotReachHereNodeGpinned6kM_i_;
-text: .text%__1cNsubI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cNtestI_regNodePoper_input_base6kM_I_;
text: .text%__1cLBoxLockNodeGOpcode6kM_i_;
-text: .text%__1cWShouldNotReachHereNodeHtwo_adr6kM_I_;
-text: .text%__1cQMachCallJavaNodePis_MachCallJava6M_p0_;
text: .text%__1cKStoreBNodeGOpcode6kM_i_;
-text: .text%__1cJAssemblerMemit_operand6MpnMRegisterImpl_22nHAddressLScaleFactor_ipCrknQRelocationHolder__v_;
-text: .text%__1cJAssemblerMemit_operand6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cOGenerateOopMapHget_var6Mi_nNCellTypeState__;
-text: .text%__1cITypeFuncCeq6kMpknEType__i_;
-text: .text%__1cMloadConLNodePoper_input_base6kM_I_;
-text: .text%__1cMPhaseIterGVNHmakecon6MpknEType__pnHConNode__;
text: .text%__1cWShouldNotReachHereNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cHoopDescGverify6M_v_;
-text: .text%__1cQconstMethodKlassSoop_is_constMethod6kM_i_;
-text: .text%__1cRconstantPoolKlassToop_is_constantPool6kM_i_;
-text: .text%__1cOcompP_rRegNodePoper_input_base6kM_I_;
text: .text%__1cHTypePtrHget_con6kM_l_;
-text: .text%__1cHMatcherWis_short_branch_offset6Mi_i_;
-text: .text%__1cMloadConLNodeHtwo_adr6kM_I_;
text: .text%__1cMTypeKlassPtr2t6MnHTypePtrDPTR_pnHciKlass_i_v_;
text: .text%__1cYCallStaticJavaDirectNodeKmethod_set6Ml_v_;
text: .text%__1cWMachCallStaticJavaNodePret_addr_offset6M_i_;
@@ -1232,31 +784,20 @@
text: .text%__1cJVectorSet2t6MpnFArena__v_;
text: .text%__1cFStateM_sub_Op_RegI6MpknENode__v_;
text: .text%__1cICmpPNodeDsub6kMpknEType_3_3_;
-text: .text%__1cNloadConP0NodePoper_input_base6kM_I_;
text: .text%__1cOAbstractICachePinvalidate_word6FpC_v_;
text: .text%__1cRNativeInstructionFwrote6Mi_v_;
text: .text%__1cMURShiftLNodeGOpcode6kM_i_;
text: .text%__1cOrFlagsRegUOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cIciMethodLscale_count6Mi_i_;
-text: .text%__1cLjmpConUNodeJnum_opnds6kM_I_;
text: .text%__1cQciBytecodeStreamQget_method_index6M_i_;
text: .text%__1cFciEnvbTget_instance_klass_for_declared_method_holder6FpnHciKlass__pnPciInstanceKlass__;
-text: .text%__1cPSignatureStream2t6MnMsymbolHandle_i_v_;
text: .text%JVM_GetMethodIxLocalsCount;
text: .text%__1cJlabelOperFlabel6kM_pnFLabel__;
text: .text%__1cGOopMapJheap_size6kM_i_;
text: .text%__1cLOopMapCacheLoop_iterate6MpnKOopClosure__v_;
text: .text%__1cMloadConLNodeErule6kM_I_;
-text: .text%__1cOMacroAssemblerZneeds_explicit_null_check6Fi_i_;
-text: .text%__1cNSafePointNode2t6MIpnIJVMState__v_;
text: .text%__1cLas_TosState6FnJBasicType__nITosState__;
text: .text%__1cNloadKlassNodeMideal_Opcode6kM_i_;
-text: .text%__1cWConstantPoolCacheEntryIas_flags6MnITosState_iiiii_i_;
-text: .text%__1cNloadConP0NodeHtwo_adr6kM_I_;
text: .text%__1cWThreadLocalAllocBufferVinitialize_statistics6M_v_;
-text: .text%__1cWThreadLocalAllocBufferFclear6M_v_;
-text: .text%__1cWThreadLocalAllocBufferVaccumulate_statistics6MLi_v_;
-text: .text%__1cWThreadLocalAllocBufferImax_size6F_L_;
text: .text%__1cWThreadLocalAllocBufferGresize6M_v_;
text: .text%__1cJloadINodePoper_input_base6kM_I_;
text: .text%__1cIRootNodeLbottom_type6kM_pknEType__;
@@ -1264,10 +805,8 @@
text: .text%__1cHCompileYout_preserve_stack_slots6F_I_;
text: .text%__1cFParsePload_state_from6Mpn0AFBlock__v_;
text: .text%__1cFParseMmerge_common6Mpn0AFBlock_i_v_;
-text: .text%__1cNloadRangeNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cIGraphKitQkill_dead_locals6M_v_;
text: .text%__1cKMemBarNodeLbottom_type6kM_pknEType__;
-text: .text%__1cKimmL32OperJconstantL6kM_x_;
text: .text%__1cIciObject2t6MnGHandle__v_;
text: .text%__1cITypeFuncEmake6FpknJTypeTuple_3_pk0_;
text: .text%__1cLConvI2LNodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -1276,30 +815,18 @@
text: .text%__1cLBoxLockNodeJideal_reg6kM_I_;
text: .text%__1cPClassFileParserYverify_legal_method_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cICHeapObj2n6FL_pv_;
-text: .text%__1cFframeUentry_frame_is_first6kM_i_;
text: .text%__1cKInlineTreeJcallee_at6kMipnIciMethod__p0_;
text: .text%__1cOFastUnlockNodeGOpcode6kM_i_;
text: .text%__1cFStateM_sub_Op_ConL6MpknENode__v_;
-text: .text%__1cIHaltNodeGpinned6kM_i_;
text: .text%__1cMTypeKlassPtrEmake6FnHTypePtrDPTR_pnHciKlass_i_pk0_;
text: .text%__1cOoop_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cOCallRelocationFvalue6M_pC_;
-text: .text%__1cKRelocationXpd_set_call_destination6MpCl_v_;
-text: .text%__1cOCallRelocationWfix_relocation_at_move6Ml_v_;
-text: .text%__1cKRelocationTpd_call_destination6M_pC_;
-text: .text%__1cOCallRelocationPset_destination6MpCl_v_;
-text: .text%__1cHcommute6FpnENode_ii_i_: addnode.o;
-text: .text%__1cENodeHis_Root6M_pnIRootNode__;
-text: .text%__1cENodeQlatency_from_use6kMrnLBlock_Array_rnNGrowableArray4CI__pk0p0_i_;
-text: .text%__1cHAddNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNinstanceKlassQfind_local_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__i_;
text: .text%__1cMmerge_region6FpnKRegionNode_pnIPhaseGVN__pnENode__: cfgnode.o;
text: .text%__1cNloadConP0NodeErule6kM_I_;
text: .text%__1cIGraphKitMreset_memory6M_pnENode__;
text: .text%__1cPciObjectFactoryRcreate_new_object6MpnHoopDesc__pnIciObject__;
text: .text%__1cNloadRangeNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNloadConI0NodeMideal_Opcode6kM_i_;
-text: .text%__1cJloadPNodeHtwo_adr6kM_I_;
text: .text%__1cNSignatureInfoGdo_int6M_v_;
text: .text%__1cKjmpDirNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPThreadRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
@@ -1311,49 +838,31 @@
text: .text%__1cIAddLNodeGOpcode6kM_i_;
text: .text%__1cJLoadPNodeJideal_reg6kM_I_;
text: .text%__1cNinstanceKlassKfind_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
-text: .text%__1cOkill_dead_code6FpnENode_pnMPhaseIterGVN__i_: node.o;
-text: .text%__1cKjmpDirNodeFclone6kM_pnENode__;
-text: .text%__1cOcompI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__2t6MpnFArena_iirk2_v_;
text: .text%__1cQSystemDictionaryEfind6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cNtestP_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNincI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cICallInfoDset6MnLKlassHandle_1nMmethodHandle_2ipnGThread__v_;
text: .text%__1cHOrINodeGOpcode6kM_i_;
-text: .text%__1cOcompI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMPhaseChaitinJsplit_DEF6MpnENode_pnFBlock_iIp25nNGrowableArray4CI__i_I_;
-text: .text%__1cENodeHis_Type6M_pnITypeNode__;
-text: .text%__1cNSafePointNodeMis_SafePoint6M_p0_;
text: .text%__1cICHeapObj2k6Fpv_v_;
text: .text%__1cRaddP_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cICmpINodeDsub6kMpknEType_3_3_;
-text: .text%__1cENode2n6FLi_pv_;
-text: .text%__1cJTraceTime2t6MpkcpnMelapsedTimer_iipnMoutputStream__v_;
text: .text%__1cIAddINodeGadd_id6kM_pknEType__;
text: .text%__1cKStoreCNodeGOpcode6kM_i_;
text: .text%__1cTconvI2L_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cHMemNodeQIdeal_DU_postCCP6MpnIPhaseCCP__pnENode__;
-text: .text%__1cSvframeStreamCommonPfill_from_frame6M_i_;
-text: .text%__1cILoadNodeRraise_bottom_type6MpknEType__v_;
-text: .text%__1cJStoreNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cNFingerprinterLfingerprint6M_L_;
-text: .text%__1cLConvI2LNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOGenerateOopMapGppload6MpnNCellTypeState_i_v_;
-text: .text%__1cIGraphKitRnull_check_common6MpnENode_nJBasicType_i_2_;
text: .text%__1cKBlock_ListGremove6MI_v_;
text: .text%__1cKMemoryPoolYrecord_peak_memory_usage6M_v_;
text: .text%__1cKciTypeFlowGJsrSetJcopy_into6Mp1_v_;
text: .text%__1cICmpLNodeGOpcode6kM_i_;
-text: .text%__1cLklassVtableTupdate_super_vtable6MpnNinstanceKlass_pnNmethodOopDesc_i_i_;
-text: .text%__1cLcastP2LNodePoper_input_base6kM_I_;
-text: .text%__1cQStackFrameStream2t6MpnKJavaThread_i_v_;
text: .text%__1cTciConstantPoolCacheEfind6Mi_i_;
text: .text%__1cOPhaseIdealLoopGspinup6MpnENode_2222pnLsmall_cache__2_;
text: .text%__1cMVirtualSpaceOcommitted_size6kM_L_;
text: .text%__1cNGrowableArray4CpnIciObject__Praw_at_put_grow6Mirk14_v_;
text: .text%__1cIRootNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cHOopFlowEmake6FpnFArena_i_p0_;
text: .text%__1cJloadLNodeErule6kM_I_;
text: .text%__1cNloadConI0NodeLbottom_type6kM_pknEType__;
text: .text%__1cJimmI0OperIconstant6kM_l_;
@@ -1362,105 +871,57 @@
text: .text%__1cNaddI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cOPhaseIdealLoopKhandle_use6MpnENode_2pnLsmall_cache_22222_v_;
text: .text%__1cOPhaseIdealLoopOfind_use_block6MpnENode_22222_2_;
-text: .text%__1cNmethodOopDescbGupdate_compiled_code_entry_point6Mi_v_;
text: .text%__1cJStoreNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cNSignatureInfoHdo_void6M_v_;
-text: .text%__1cLAdapterInfoKhash_value6kM_l_;
text: .text%JVM_GetCPMethodClassNameUTF;
text: .text%__1cHOopFlowFclone6Mp0i_v_;
text: .text%__1cRSignatureIteratorSiterate_parameters6ML_v_;
-text: .text%__1cILoopNodeHis_Loop6M_p0_;
text: .text%__1cPindOffset32OperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cPindOffset32OperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cMCallLeafNodeGOpcode6kM_i_;
-text: .text%__1cNmethodOopDescPis_final_method6kM_i_;
-text: .text%__1cSComputeAdapterInfoHcompute6Mplii_v_;
-text: .text%__1cLAdapterInfoHcompute6MnMmethodHandle_i_v_;
-text: .text%__1cLAdapterInfo2T6M_v_;
-text: .text%__1cSComputeAdapterInfoLreturn_type6MnJBasicType__i_;
-text: .text%__1cSComputeAdapterInfoMsize_in_bits6FnMmethodHandle__i_;
-text: .text%__1cMAdapterCacheGlookup6MpnLAdapterInfo__pnMBasicAdapter__;
-text: .text%__1cJloadINodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cPadd_derived_oop6FppnHoopDesc_2_v_: oopMap.o;
text: .text%__1cTDerivedPointerTableDadd6FppnHoopDesc_3_v_;
text: .text%__1cFParseFBlockJinit_node6Mp0i_v_;
text: .text%__1cFParseFBlockKinit_graph6Mp0_v_;
-text: .text%__1cOcompP_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cSObjectSynchronizerKslow_enter6FnGHandle_pnJBasicLock_pnGThread__v_;
text: .text%__1cKjmpDirNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cMLinkResolverbFlinktime_resolve_virtual_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cKJavaThreadOis_Java_thread6kM_i_;
-text: .text%__1cKCastPPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cJTraceTime2T6M_v_;
-text: .text%__1cKciTypeFlowNmake_range_at6Mi_pn0AFRange__;
text: .text%__1cNmethodOopDescbAcompute_size_of_parameters6MpnGThread__v_;
-text: .text%__1cKoopFactoryKnew_method6FinLAccessFlags_iiipnGThread__pnNmethodOopDesc__;
-text: .text%__1cNmethodOopDescLobject_size6Fi_i_;
text: .text%__1cSconstMethodOopDescLobject_size6Fiiii_i_;
-text: .text%__1cLklassVtableWneeds_new_vtable_entry6FpnNmethodOopDesc_pnMklassOopDesc_pnHoopDesc_pnNsymbolOopDesc_nLAccessFlags__i_;
text: .text%__1cSconstMethodOopDescZset_inlined_tables_length6Miii_v_;
text: .text%__1cLmethodKlassIallocate6MnRconstMethodHandle_nLAccessFlags_pnGThread__pnNmethodOopDesc__;
-text: .text%__1cQconstMethodKlassIallocate6MiiiipnGThread__pnSconstMethodOopDesc__;
-text: .text%__1cNmethodOopDescJinit_code6M_v_;
-text: .text%__1cKoopFactoryPnew_constMethod6FiiiipnGThread__pnSconstMethodOopDesc__;
-text: .text%__1cPClassFileParserMparse_method6MnSconstantPoolHandle_ipnLAccessFlags_pnPtypeArrayHandle_55pnGThread__nMmethodHandle__;
-text: .text%__1cFBlockUhoist_LCA_above_defs6Mp01IrnLBlock_Array__1_;
-text: .text%__1cScompI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cPciInstanceKlassLfield_cache6M_pnTciConstantPoolCache__;
-text: .text%__1cHciFieldJwill_link6MpnPciInstanceKlass_nJBytecodesECode__i_;
text: .text%__1cFciEnvXget_field_by_index_impl6MpnPciInstanceKlass_i_pnHciField__;
-text: .text%__1cQciBytecodeStreamJget_field6Mri_pnHciField__;
text: .text%__1cFciEnvSget_field_by_index6MpnPciInstanceKlass_i_pnHciField__;
-text: .text%__1cKTypeOopPtrFempty6kM_i_;
text: .text%__1cWConstantPoolCacheEntryOset_bytecode_16MnJBytecodesECode__v_;
-text: .text%__1cKCastPPNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cMMergeMemNodeNgrow_to_match6Mpk0_v_;
-text: .text%__1cFKlassPoop_is_objArray6kM_i_;
text: .text%__1cTCreateExceptionNodePoper_input_base6kM_I_;
text: .text%__1cPciInstanceKlassYunique_concrete_subklass6M_p0_;
text: .text%__1cLStringTableGlookup6MipHiI_pnHoopDesc__;
text: .text%__1cLBoxLockNodeHsize_of6kM_I_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
-text: .text%__1cPClassFileParserbDverify_legal_method_modifiers6MiinMsymbolHandle_pnGThread__v_;
text: .text%__1cIPhaseGVNUtransform_no_reclaim6MpnENode__2_;
-text: .text%__1cIRewriterOrewrite_method6FnMmethodHandle_rnIintArray_pnGThread__1_;
-text: .text%__1cNmethodOopDescLlink_method6FnMmethodHandle__v_;
text: .text%__1cNloadKlassNodePoper_input_base6kM_I_;
text: .text%__1cNObjectMonitorEexit6MpnGThread__v_;
-text: .text%__1cPClassFileParserZskip_over_field_signature6MpciIpnGThread__1_;
text: .text%__1cMMergeMemNode2t6MpnENode__v_;
text: .text%__1cMMergeMemNodeRmake_empty_memory6F_pnENode__;
-text: .text%__1cNinstanceKlassVshould_be_initialized6kM_i_;
-text: .text%__1cNtestP_regNodeJnum_opnds6kM_I_;
-text: .text%__1cJStartNodeGis_CFG6kM_i_;
-text: .text%__1cRaddI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cPVirtualCallDataSis_VirtualCallData6M_i_;
text: .text%__1cMindIndexOperJnum_edges6kM_I_;
text: .text%__1cRInterpretedRFrameKtop_method6kM_nMmethodHandle__;
-text: .text%__1cKGCStatInfoMset_gc_usage6MinLMemoryUsage_i_v_;
text: .text%__1cXmembar_acquire_lockNodeLbottom_type6kM_pknEType__;
text: .text%__1cQPreserveJVMState2T6M_v_;
-text: .text%__1cLRuntimeStubIis_alive6kM_i_;
-text: .text%__1cMWarmCallInfoHis_cold6kM_i_;
text: .text%__1cNObjectMonitorFenter6MpnGThread__v_;
text: .text%__1cKjmpConNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIemit_d646FrnKCodeBuffer_l_v_;
text: .text%__1cFParseFmerge6Mi_v_;
text: .text%__1cOPhaseIdealLoopIset_idom6MpnENode_2I_v_;
-text: .text%__1cIAddINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cFParseMdo_one_block6M_v_;
text: .text%__1cFParseFBlockMrecord_state6Mp0_v_;
-text: .text%__1cNtestP_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cNCollectedHeapYpermanent_array_allocate6FnLKlassHandle_iipnGThread__pnHoopDesc__;
-text: .text%__1cJloadLNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cIPhaseIFGFUnion6MII_v_;
-text: .text%__1cNloadRangeNodeJnum_opnds6kM_I_;
text: .text%__1cWConstantPoolCacheEntryOset_bytecode_26MnJBytecodesECode__v_;
text: .text%__1cOcompP_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cIBoolNodeJideal_reg6kM_I_;
text: .text%__1cHCmpNodeJideal_reg6kM_I_;
text: .text%__1cFStateM_sub_Op_Bool6MpknENode__v_;
-text: .text%__1cJCatchNodeIis_Catch6kM_pk0_;
text: .text%__1cJLoadBNodeGOpcode6kM_i_;
text: .text%__1cENodeHlatency6MI_I_;
text: .text%__1cIGraphKit2t6MpnIJVMState__v_;
@@ -1468,67 +929,42 @@
text: .text%__1cTciConstantPoolCacheDget6Mi_pv_;
text: .text%__1cNmethodOopDescIbcp_from6kMi_pC_;
text: .text%__1cKTypeOopPtrHget_con6kM_l_;
-text: .text%__1cMPhaseChaitinKprompt_use6MpnFBlock_I_i_;
text: .text%__1cIJVMStateLdebug_depth6kM_I_;
-text: .text%__1cIGraphKitTadd_safepoint_edges6MpnNSafePointNode_i_v_;
text: .text%__1cENodeNadd_req_batch6Mp0I_v_;
-text: .text%__1cIJVMStateKclone_deep6kM_p0_;
text: .text%__1cFStateK_sub_Op_If6MpknENode__v_;
text: .text%__1cXindIndexScaleOffsetOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cXindIndexScaleOffsetOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cGBitMapVset_union_with_result6M0_i_;
-text: .text%__1cNSafePointNodeEhash6kM_I_;
text: .text%__1cMelapsedTimerFstart6M_v_;
text: .text%__1cJStartNodeGOpcode6kM_i_;
text: .text%__1cMelapsedTimerEstop6M_v_;
text: .text%__1cOPhaseIdealLoopQconditional_move6MpnENode__2_;
text: .text%__1cJloadLNodeMideal_Opcode6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockJstore_one6Mi_v_;
-text: .text%__1cTC2IAdapterGeneratorXlazy_std_verified_entry6FnMmethodHandle__pC_;
-text: .text%__1cPindOffset32OperJnum_edges6kM_I_;
text: .text%__1cPFieldAccessInfoDset6MnLKlassHandle_nMsymbolHandle_iinJBasicType_nLAccessFlags__v_;
-text: .text%__1cMLinkResolverNresolve_field6FrnPFieldAccessInfo_nSconstantPoolHandle_inJBytecodesECode_iipnGThread__v_;
text: .text%__1cMLinkResolverZcheck_field_accessability6FnLKlassHandle_11rnPfieldDescriptor_pnGThread__v_;
text: .text%__1cNsubI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cTCreateExceptionNodeHtwo_adr6kM_I_;
text: .text%__1cPindOffset32OperFscale6kM_i_;
text: .text%__1cHAddNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cICmpPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cbFCompressedLineNumberWriteStream2t6Mi_v_;
-text: .text%__1cPClassFileParserWparse_linenumber_table6MIIpipnGThread__pC_;
text: .text%__1cSconstMethodOopDescbBcompressed_linenumber_table6kM_pC_;
text: .text%__1cHTypePtrLdual_offset6kM_i_;
text: .text%__1cNMachIdealNodePoper_input_base6kM_I_;
text: .text%__1cSObjectSynchronizerOinflate_helper6FpnHoopDesc__pnNObjectMonitor__;
text: .text%__1cKciTypeFlowIblock_at6Mipn0AGJsrSet_n0AMCreateOption__pn0AFBlock__;
-text: .text%__1cKciTypeFlowFRangeNget_block_for6Mpn0AGJsrSet_n0AMCreateOption__pn0AFBlock__;
-text: .text%__1cSvframeStreamCommonbBfill_from_interpreter_frame6M_v_;
-text: .text%__1cHMonitorEwait6Mil_i_;
-text: .text%__1cLcastP2LNodeMideal_Opcode6kM_i_;
-text: .text%__1cNloadKlassNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cPJavaCallWrapperHoops_do6MpnKOopClosure__v_;
text: .text%__1cFframeNoops_entry_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cXindIndexScaleOffsetOperFscale6kM_i_;
-text: .text%__1cQciBytecodeStreamKget_method6Mri_pnIciMethod__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cYinternal_word_RelocationLunpack_data6M_v_;
text: .text%__1cNstoreImmBNodePoper_input_base6kM_I_;
text: .text%__1cNLoadRangeNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cITypeFuncEmake6FpnIciMethod__pk0_;
-text: .text%__1cMindirectOperJnum_edges6kM_I_;
text: .text%__1cKCompiledICOic_destination6kM_pC_;
text: .text%__1cTconvI2L_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cICmpUNodeDsub6kMpknEType_3_3_;
text: .text%__1cPSignatureStreamJas_symbol6MpnGThread__pnNsymbolOopDesc__;
text: .text%__1cRshrL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cIGraphKitRcreate_and_map_if6MpnENode_2ff_pnGIfNode__;
-text: .text%__1cPClassFileParserbFparse_constant_pool_class_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cOMethodLivenessKBasicBlockMmerge_normal6MnGBitMap__i_;
-text: .text%__1cTleaPIdxScaleOffNodeHtwo_adr6kM_I_;
-text: .text%__1cETypeFwiden6kMpk0_2_;
text: .text%__1cKciTypeFlowLStateVector2t6Mp0_v_;
text: .text%__1cNCatchProjNodeLbottom_type6kM_pknEType__;
text: .text%__1cOcompU_rRegNodeLout_RegMask6kM_rknHRegMask__;
@@ -1536,40 +972,26 @@
text: .text%__1cNCatchProjNodeEhash6kM_I_;
text: .text%__1cSvframeStreamCommonEnext6M_v_;
text: .text%__1cFKlassIsubklass6kM_p0_;
-text: .text%__1cKciTypeFlowFBlockPis_simpler_than6Mp1_i_;
text: .text%__1cJimmI8OperIconstant6kM_l_;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cILoadNodeHsize_of6kM_I_;
-text: .text%__1cHMatcherVReduceInst_Chain_Rule6MpnFState_ipnIMachNode_rpnENode__v_;
text: .text%__1cURethrowExceptionNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cNincI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cLjmpConUNodeHtwo_adr6kM_I_;
-text: .text%__1cHMatcherScalling_convention6FpnLOptoRegPair_Ii_v_;
text: .text%__1cKPerfStringKset_string6Mpkc_v_;
text: .text%__1cENodeLnonnull_req6kM_p0_;
-text: .text%__1cICmpINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cHTypeAryCeq6kMpknEType__i_;
text: .text%__1cQSystemDictionaryKfind_class6FiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
text: .text%__1cKDictionaryKfind_class6MiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
text: .text%__1cQUnique_Node_ListEpush6MpnENode__v_;
text: .text%__1cILoopNodeGOpcode6kM_i_;
text: .text%__1cIGraphKitTadd_exception_state6MpnNSafePointNode__v_;
text: .text%__1cJloadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cICallNodeSis_CallInterpreter6kM_pknTCallInterpreterNode__;
text: .text%__1cOPhaseIdealLoopRregister_new_node6MpnENode_2_v_;
text: .text%__1cQPSGenerationPoolImax_size6kM_L_;
text: .text%__1cQPSGenerationPoolNused_in_bytes6M_L_;
text: .text%__1cQPSGenerationPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cOMethodLivenessNwork_list_get6M_pn0AKBasicBlock__;
text: .text%__1cNinstanceKlassKmethods_do6MpFpnNmethodOopDesc__v_v_;
-text: .text%__1cICallNodeOis_CallRuntime6kM_pknPCallRuntimeNode__;
text: .text%__1cHTypeAryFxmeet6kMpknEType__3_;
text: .text%__1cNstoreImmBNodeMideal_Opcode6kM_i_;
-text: .text%__1cKciTypeFlowLStateVectorEmeet6Mpk1_i_;
-text: .text%__1cIMachNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cJloadINodeJnum_opnds6kM_I_;
text: .text%__1cNaddI_rRegNodeMcisc_operand6kM_i_;
-text: .text%__1cRMachSafePointNode2t6M_v_;
text: .text%__1cHMatcherKmatch_sfpt6MpnNSafePointNode__pnIMachNode__;
text: .text%__1cOcompP_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMPhaseChaitinKFind_const6kMpknENode__I_;
@@ -1591,62 +1013,41 @@
text: .text%__1cOGenerateOopMapJdo_method6Miiii_v_;
text: .text%__1cMloadConPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIimmPOperIconstant6kM_l_;
-text: .text%__1cIimmPOperPconstant_is_oop6kM_i_;
-text: .text%__1cOleaPIdxOffNodeHtwo_adr6kM_I_;
text: .text%__1cHGCCauseJto_string6Fn0AFCause__pkc_;
text: .text%__1cTleaPIdxScaleOffNodeErule6kM_I_;
text: .text%JVM_IsNaN;
-text: .text%__1cXinsert_anti_dependences6FrpnFBlock_pnENode_rnLBlock_Array__i_: gcm.o;
-text: .text%__1cLOptoRuntimebCcomplete_monitor_unlocking_C6FpnHoopDesc_pnJBasicLock__v_;
text: .text%__1cJloadINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLOptoRuntimebAcomplete_monitor_locking_C6FpnHoopDesc_pnJBasicLock_pnKJavaThread__v_;
-text: .text%__1cHCompileKTracePhase2t6MpkcpnMelapsedTimer_i_v_;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cOGenerateOopMapTmerge_state_into_bb6MpnKBasicBlock__v_;
text: .text%__1cHMatcherPc_frame_pointer6kM_i_;
text: .text%__1cFBlockKsched_call6MrnHMatcher_rnLBlock_Array_IrnJNode_List_pipnMMachCallNode_rnJVectorSet__I_;
-text: .text%__1cMMachCallNode2t6M_v_;
text: .text%__1cICallNodeJideal_reg6kM_I_;
text: .text%__1cOleaPIdxOffNodeErule6kM_I_;
text: .text%__1cOGenerateOopMapEppop6MpnNCellTypeState__v_;
text: .text%__1cSCallLeafDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cOcompP_rRegNodeErule6kM_I_;
-text: .text%__1cMany_RegPOperJnum_edges6kM_I_;
-text: .text%__1cIGraphKitbLset_predefined_input_for_runtime_call6MpnNSafePointNode__v_;
text: .text%__1cMany_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cScompI_rReg_immNodeErule6kM_I_;
text: .text%__1cLBoxLockNodeKin_RegMask6kMI_rknHRegMask__;
text: .text%__1cIGraphKitOset_all_memory6MpnENode__v_;
text: .text%__1cLRegisterMap2t6Mpk0_v_;
text: .text%__1cGvframe2t6MpknFframe_pknLRegisterMap_pnKJavaThread__v_;
-text: .text%__1cNmethodOopDescWwas_executed_more_than6kMi_i_;
text: .text%__1cKstoreCNodePoper_input_base6kM_I_;
text: .text%__1cVjava_lang_ClassLoaderbBnon_reflection_class_loader6FpnHoopDesc__2_;
text: .text%__1cHi2sNodeErule6kM_I_;
text: .text%__1cIMulLNodeGOpcode6kM_i_;
-text: .text%__1cOPhaseIdealLoopHdom_lca6kMpnENode_2_2_;
-text: .text%__1cMPrefetchNodeGOpcode6kM_i_;
-text: .text%__1cSReferenceProcessorSdiscover_reference6MpnHoopDesc_nNReferenceType__i_;
-text: .text%__1cSReferenceProcessorTget_discovered_list6MnNReferenceType__ppnHoopDesc__;
-text: .text%__1cXjava_lang_ref_ReferenceIset_next6FpnHoopDesc_2_v_;
text: .text%__1cKciTypeFlowGJsrSet2t6MpnFArena_i_v_;
-text: .text%__1cNtestI_regNodeJnum_opnds6kM_I_;
text: .text%__1cIAddINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIMachOperNconstant_disp6kM_i_;
text: .text%__1cIMachOperFscale6kM_i_;
-text: .text%__1cFframeNis_java_frame6kM_i_;
text: .text%__1cOMethodLivenessKBasicBlockJpropagate6Mp0_v_;
text: .text%__1cQSystemDictionaryStry_get_next_class6F_pnMklassOopDesc__;
text: .text%__1cKDictionaryStry_get_next_class6M_pnMklassOopDesc__;
text: .text%__1cNloadKlassNodeErule6kM_I_;
-text: .text%__1cIciMethodRhas_compiled_code6M_i_;
-text: .text%__1cOoop_RelocationJpack_data6M_i_;
text: .text%__1cKCompiledICKcached_oop6kM_pnHoopDesc__;
text: .text%__1cGOopMap2t6Mii_v_;
text: .text%__1cJOopMapSetKadd_gc_map6MipnGOopMap__v_;
text: .text%__1cNincI_rRegNodeErule6kM_I_;
-text: .text%__1cRMachSafePointNodePis_MachCallLeaf6M_pnQMachCallLeafNode__;
-text: .text%__1cRMachSafePointNodeLset_oop_map6MpnGOopMap__v_;
text: .text%__1cYDebugInformationRecorderNadd_safepoint6MipnGOopMap__v_;
text: .text%__1cHCompileTProcess_OopMap_Node6MpnIMachNode_i_v_;
text: .text%__1cYDebugInformationRecorderKadd_oopmap6MipnGOopMap__v_;
@@ -1660,44 +1061,24 @@
text: .text%__1cGvframeKnew_vframe6FpknFframe_pknLRegisterMap_pnKJavaThread__p0_;
text: .text%__1cNsubI_rRegNodeErule6kM_I_;
text: .text%__1cRaddP_rReg_immNodeErule6kM_I_;
-text: .text%__1cPClassFileParserbGparse_constant_pool_string_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cJloadLNodePoper_input_base6kM_I_;
-text: .text%__1cRshrL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cITypeLongFxdual6kM_pknEType__;
-text: .text%__1cRMachSafePointNodeSis_MachCallRuntime6M_pnTMachCallRuntimeNode__;
-text: .text%__1cNaddI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cENodeJset_req_X6MIp0pnMPhaseIterGVN__v_;
-text: .text%__1cOcompP_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cSInterpreterRuntimePresolve_get_put6FpnKJavaThread_nJBytecodesECode__v_;
-text: .text%__1cMLinkResolverNresolve_field6FrnPFieldAccessInfo_nSconstantPoolHandle_inJBytecodesECode_ipnGThread__v_;
-text: .text%__1cWConstantPoolCacheEntryJset_field6MnJBytecodesECode_2nLKlassHandle_iinITosState_ii_v_;
text: .text%__1cIAndLNodeGOpcode6kM_i_;
text: .text%__1cMindIndexOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cOtypeArrayKlassSallocate_permanent6MipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cOGenerateOopMapCpp6MpnNCellTypeState_2_v_;
-text: .text%__1cMCallJavaNodeLis_CallJava6kM_pk0_;
-text: .text%__1cICallNodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cHCompileSflatten_alias_type6kMpknHTypePtr__3_;
-text: .text%__1cRcmpFastUnlockNodePoper_input_base6kM_I_;
text: .text%__1cYCallStaticJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOcompP_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cFStateW_sub_Op_CallStaticJava6MpknENode__v_;
-text: .text%__1cWMachCallStaticJavaNodeVis_MachCallStaticJava6M_p0_;
-text: .text%__1cRaddP_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cICallInfoDset6MnLKlassHandle_nMmethodHandle_pnGThread__v_;
-text: .text%__1cSComputeAdapterInfoJdo_object6Mii_v_;
-text: .text%__1cRMachSafePointNodeWis_MachCallInterpreter6M_pnXMachCallInterpreterNode__;
text: .text%__1cIGraphKitbDtransfer_exceptions_into_jvms6M_pnIJVMState__;
text: .text%__1cLConvL2INodeGOpcode6kM_i_;
text: .text%__1cOcompI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQSystemDictionarybEresolve_instance_class_or_null6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cNaddI_rRegNodeErule6kM_I_;
-text: .text%__1cHConNodeEmake6FpknEType__p0_;
-text: .text%__1cScompI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cJLoadCNodeGOpcode6kM_i_;
text: .text%__1cYCallStaticJavaDirectNodeFreloc6kM_i_;
text: .text%__1cRcmpFastUnlockNodeMideal_Opcode6kM_i_;
-text: .text%__1cJTraceTime2t6MpkciipnMoutputStream__v_;
text: .text%__1cWstatic_stub_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cIGraphKitQset_saved_ex_oop6FpnNSafePointNode_pnENode__v_;
text: .text%__1cIGraphKitUmake_exception_state6MpnENode__pnNSafePointNode__;
@@ -1705,33 +1086,16 @@
text: .text%__1cMLinkResolverOresolve_invoke6FrnICallInfo_nGHandle_nSconstantPoolHandle_inJBytecodesECode_pnGThread__v_;
text: .text%__1cMLinkResolverMresolve_pool6FrnLKlassHandle_rnMsymbolHandle_42nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cGOopMapHcopy_to6MpC_v_;
-text: .text%__1cNstoreImmBNodeJnum_opnds6kM_I_;
text: .text%__1cVLoaderConstraintTableWfind_loader_constraint6MnMsymbolHandle_nGHandle__ppnVLoaderConstraintEntry__;
-text: .text%__1cJTimeStampJupdate_to6Mx_v_;
text: .text%__1cJTimeStampGupdate6M_v_;
text: .text%__1cFframeZinterpreter_frame_set_bcx6Ml_v_;
-text: .text%__1cCosFsleep6FpnGThread_xi_i_;
-text: .text%__1cNgetTimeMillis6F_x_;
-text: .text%__1cRaddP_rReg_immNodeLbottom_type6kM_pknEType__;
-text: .text%__1cIos_sleep6Fxi_i_: os_solaris.o;
-text: .text%__1cLPhaseValuesHzerocon6MnJBasicType__pnHConNode__;
text: .text%__1cMCreateExNodeKmatch_edge6kMI_I_;
-text: .text%__1cTconvI2L_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cIGraphKitNuncommon_trap6MipnHciKlass_pkci_v_;
-text: .text%__1cILoadNodeEmake6FpnENode_22pknHTypePtr_pknEType_nJBasicType__p0_;
-text: .text%__1cIGraphKitJmake_load6MpnENode_2pknEType_nJBasicType_i_2_;
-text: .text%__1cTconvI2L_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cTno_rax_rbx_RegPOperJnum_edges6kM_I_;
text: .text%__1cLPCTableNodeLbottom_type6kM_pknEType__;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cNSafePointNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cNaddI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cGPcDesc2t6Mii_v_;
-text: .text%__1cHnmethodKcopy_pc_at6MipnGPcDesc__v_;
text: .text%__1cKciTypeFlowLStateVectorJcopy_into6kMp1_v_;
text: .text%__1cXmembar_release_lockNodeMideal_Opcode6kM_i_;
-text: .text%__1cOcompL_rRegNodePoper_input_base6kM_I_;
text: .text%__1cMoutputStreamPupdate_position6MpkcL_v_;
text: .text%__1cMstringStreamFwrite6MpkcL_v_;
text: .text%__1cKciTypeFlowQadd_to_work_list6Mpn0AFBlock__v_;
@@ -1741,87 +1105,57 @@
text: .text%__1cIPipelineXfunctional_unit_latency6kMIpk0_I_;
text: .text%__1cMPhaseIterGVNJtransform6MpnENode__2_;
text: .text%__1cQSystemDictionarybCfind_instance_or_array_klass6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
-text: .text%__1cSCompareAndSwapNodeGis_CFG6kM_i_;
-text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__Icontains6kMrk2_i_;
-text: .text%__1cKciTypeFlowFBlock2t6Mp0pn0AFRange_pn0AGJsrSet__v_;
text: .text%__1cNGrowableArray4CpnKciTypeFlowJJsrRecord__2t6MpnFArena_iirk2_v_;
-text: .text%__1cKstoreCNodeJnum_opnds6kM_I_;
text: .text%__1cNmodI_rRegNodeErule6kM_I_;
-text: .text%__1cKInlineTreeWfind_subtree_from_root6Fp0pnIJVMState_pnIciMethod_i_1_;
text: .text%__1cNGrowableArray4CpnPciInstanceKlass__2t6MpnFArena_iirk1_v_;
text: .text%__1cKciTypeFlowFBlockScompute_exceptions6M_v_;
text: .text%__1cYciExceptionHandlerStreamFcount6M_i_;
text: .text%__1cINodeHashJhash_find6MpknENode__p1_;
-text: .text%__1cFParsePdo_field_access6Mii_v_;
text: .text%__1cPThreadLocalNodeLbottom_type6kM_pknEType__;
-text: .text%__1cOMethodLivenessNmake_block_at6Mipn0AKBasicBlock__2_;
-text: .text%__1cKstorePNodeHtwo_adr6kM_I_;
text: .text%__1cKciTypeFlowPflow_successors6MpnNGrowableArray4Cpn0AFBlock___pn0ALStateVector__v_;
-text: .text%__1cGciTypeMis_classless6kM_i_;
text: .text%__1cRsalI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cJloadFNodeErule6kM_I_;
-text: .text%__1cKBranchDataNis_BranchData6M_i_;
-text: .text%__1cIJumpDataLis_JumpData6M_i_;
text: .text%__1cSMemBarCPUOrderNodeGOpcode6kM_i_;
text: .text%__1cLklassVtableNput_method_at6MpnNmethodOopDesc_i_v_;
text: .text%__1cHi2sNodeMideal_Opcode6kM_i_;
text: .text%__1cKstoreCNodeMideal_Opcode6kM_i_;
text: .text%__1cRshrI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNloadConI0NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNloadKlassNodeJnum_opnds6kM_I_;
text: .text%__1cHCompileKalias_type6MpnHciField__pn0AJAliasType__;
text: .text%__1cLStringTableGintern6FnGHandle_pHipnGThread__pnHoopDesc__;
text: .text%__1cLStringTableLhash_string6FpHi_i_;
-text: .text%__1cMCreateExNodeGpinned6kM_i_;
-text: .text%__1cFciEnvWget_klass_by_name_impl6MpnHciKlass_pnIciSymbol_i_2_;
text: .text%__1cNloadKlassNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRScavengeRootsTaskEname6M_pc_;
text: .text%__1cRScavengeRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
-text: .text%__1cNtestP_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cKstoreINodeHtwo_adr6kM_I_;
text: .text%__1cSInterpreterRuntimeOresolve_invoke6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
-text: .text%__1cHTypeIntEmake6Fii_pk0_;
-text: .text%__1cRcmpFastUnlockNodeHtwo_adr6kM_I_;
text: .text%__1cJloadSNodeMideal_Opcode6kM_i_;
-text: .text%__1cPDictionaryEntrybAcontains_protection_domain6kMpnHoopDesc__i_;
text: .text%__1cIregFOperEtype6kM_pknEType__;
text: .text%__1cLLShiftLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%JVM_GetCPMethodNameUTF;
-text: .text%__1cMLinkResolverbNlinktime_resolve_virtual_method_or_null6FnLKlassHandle_nMsymbolHandle_21i_nMmethodHandle__;
-text: .text%__1cNsubI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cLTypeInstPtrFxdual6kM_pknEType__;
-text: .text%__1cNsubI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cIGraphKitOreplace_in_map6MpnENode_2_v_;
text: .text%__1cMPhaseChaitinLclone_projs6MpnFBlock_IpnENode_4rI_i_;
text: .text%__1cTconstantPoolOopDescbCverify_constant_pool_resolve6FnSconstantPoolHandle_nLKlassHandle_pnGThread__v_;
-text: .text%__1cLcastP2LNodeJnum_opnds6kM_I_;
text: .text%__1cOMethodLivenessNwork_list_add6Mpn0AKBasicBlock__v_;
text: .text%__1cFParseFBlockNlocal_type_at6kMi_pknEType__;
text: .text%__1cWConstantPoolCacheEntryKset_method6MnJBytecodesECode_nMmethodHandle_i_v_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
text: .text%__1cEUTF8Hstrrchr6FpWiW_1_;
text: .text%__1cQConstantIntValueIwrite_on6MpnUDebugInfoWriteStream__v_;
-text: .text%__1cQSystemDictionaryPresolve_or_fail6FnMsymbolHandle_nGHandle_2ipnGThread__pnMklassOopDesc__;
text: .text%__1cNLoadKlassNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cHCompileZintrinsic_insertion_index6MpnIciMethod_i_i_;
-text: .text%__1cIciObjectSis_obj_array_klass6M_i_;
text: .text%__1cJVectorSetFClear6M_v_;
text: .text%__1cMMergeMemNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKMemoryPoolHoops_do6MpnKOopClosure__v_;
text: .text%__1cICodeHeapSallocated_capacity6kM_L_;
-text: .text%__1cICodeBlobRis_at_poll_return6MpC_i_;
text: .text%__1cIMachOperEtype6kM_pknEType__;
text: .text%__1cLjmpConUNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cNCallGenerator2t6MpnIciMethod__v_;
-text: .text%__1cSHighResTimeSamplerLtake_sample6M_x_;
-text: .text%__1cRis_error_reported6F_i_;
text: .text%__1cLStatSamplerLsample_data6FpnMPerfDataList__v_;
text: .text%__1cPStatSamplerTaskEtask6M_v_;
text: .text%__1cMPeriodicTaskMtime_to_wait6F_L_;
text: .text%__1cMPeriodicTaskOreal_time_tick6FL_v_;
-text: .text%__1cNWatcherThreadRis_Watcher_thread6kM_i_;
text: .text%__1cLStatSamplerOcollect_sample6F_v_;
text: .text%__1cJloadBNodePoper_input_base6kM_I_;
text: .text%__1cMVM_OperationPevaluation_mode6kM_n0AEMode__;
@@ -1829,98 +1163,62 @@
text: .text%__1cOemit_d64_reloc6FrnKCodeBuffer_lnJrelocInfoJrelocType_i_v_;
text: .text%__1cNinstanceKlassKlink_class6MpnGThread__v_;
text: .text%__1cIGraphKitNset_map_clone6MpnNSafePointNode__v_;
-text: .text%__1cRRawBytecodeStream2t6MnMmethodHandle__v_;
text: .text%__1cENodeHget_ptr6kM_l_;
text: .text%__1cFStateM_sub_Op_ConP6MpknENode__v_;
text: .text%__1cJloadPNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cKI2CAdapterOis_i2c_adapter6kM_i_;
text: .text%__1cOcompU_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cNinstanceKlassPinitialize_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cQciBytecodeStreamWget_field_holder_index6M_i_;
text: .text%__1cQciBytecodeStreamZget_declared_field_holder6M_pnPciInstanceKlass__;
text: .text%__1cRinterpretedVFrameGmethod6kM_pnNmethodOopDesc__;
-text: .text%__1cMorI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
-text: .text%__1cFParseRensure_memory_phi6Mii_pnHPhiNode__;
text: .text%__1cNdecI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadINodeJideal_reg6kM_I_;
-text: .text%__1cKRelocationWfix_relocation_at_move6Ml_v_;
text: .text%__1cPindOffset32OperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cHAddNodePadd_of_identity6kMpknEType_3_3_;
text: .text%__1cMFastLockNodeGOpcode6kM_i_;
-text: .text%__1cScompU_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cHCompilebAallow_range_check_smearing6kM_i_;
text: .text%__1cLBuildCutout2T6M_v_;
text: .text%__1cLBuildCutout2t6MpnIGraphKit_pnENode_ff_v_;
text: .text%__1cTconstantPoolOopDescOstring_at_impl6FnSconstantPoolHandle_ipnGThread__pnHoopDesc__;
-text: .text%__1cQjava_lang_StringQbasic_create_oop6FpnQtypeArrayOopDesc_ipnGThread__pnHoopDesc__;
text: .text%__1cICodeHeapIcapacity6kM_L_;
text: .text%__1cKMemoryPoolImax_size6kM_L_;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_L_;
-text: .text%__1cMPhaseChaitinTsplit_Rematerialize6MpnENode_pnFBlock_IrInNGrowableArray4CI__ipIp2i_2_;
text: .text%__1cJcmpOpOperFccode6kM_i_;
-text: .text%__1cKjmpDirNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cKjmpDirNodeOis_pc_relative6kM_i_;
text: .text%__1cPClassFileParserXverify_legal_field_name6MnMsymbolHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbCverify_legal_field_signature6MnMsymbolHandle_1pnGThread__v_;
text: .text%__1cEUTF8Enext6FpkcpH_pc_;
text: .text%__1cOcompL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cbAPSEvacuateFollowersClosureHdo_void6M_v_;
-text: .text%__1cFParseKdo_get_xxx6MpknHTypePtr_pnENode_pnHciField_i_v_;
-text: .text%__1cTInlineCallGeneratorJis_inline6kM_i_;
text: .text%__1cHMulNodeEhash6kM_I_;
text: .text%__1cGRFrame2t6MnFframe_pnKJavaThread_p0_v_;
-text: .text%__1cTconvI2L_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cOGenerateOopMapLbb_mark_fct6Fp0ipi_v_;
text: .text%__1cScompU_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNFingerprinterJdo_object6Mii_v_;
-text: .text%__1cMloadConFNodePoper_input_base6kM_I_;
-text: .text%__1cOGenerateOopMapTmerge_state_vectors6MpnNCellTypeState_2_i_;
-text: .text%__1cMloadConFNodeHtwo_adr6kM_I_;
-text: .text%__1cICallNodeSis_CallDynamicJava6kM_pknTCallDynamicJavaNode__;
-text: .text%__1cRcmpFastUnlockNodeJnum_opnds6kM_I_;
text: .text%__1cEUTF8Sconvert_to_unicode6FpkcpHi_v_;
-text: .text%__1cUParallelScavengeHeapMmem_allocate6MLii_pnIHeapWord__;
text: .text%__1cNinstanceKlassbBallocate_permanent_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cKjmpConNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOMethodLivenessKBasicBlockQcompute_gen_kill6MpnIciMethod__v_;
text: .text%__1cOMethodLivenessKBasicBlock2t6Mp0ii_v_;
text: .text%__1cMloadConFNodeErule6kM_I_;
-text: .text%__1cLcastP2LNodeHtwo_adr6kM_I_;
text: .text%__1cIMachOperIconstant6kM_l_;
-text: .text%__1cJloadSNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cPcheckCastPPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMTypeKlassPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cUEdenMutableSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cYSurvivorMutableSpacePoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cYSurvivorMutableSpacePoolImax_size6kM_L_;
text: .text%__1cUEdenMutableSpacePoolNused_in_bytes6M_L_;
text: .text%__1cUEdenMutableSpacePoolImax_size6kM_L_;
text: .text%__1cYSurvivorMutableSpacePoolNused_in_bytes6M_L_;
-text: .text%__1cKjmpConNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cKjmpConNodeOis_pc_relative6kM_i_;
text: .text%__1cHConNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKCodeBufferKend_a_stub6M_v_;
text: .text%__1cTemit_java_to_interp6FrnKCodeBuffer__v_;
-text: .text%__1cKCodeBufferMstart_a_stub6M_v_;
-text: .text%__1cFParseUprofile_taken_branch6Mi_v_;
text: .text%__1cKciTypeFlowGJsrSetNapply_control6Mp0pnQciBytecodeStream_pn0ALStateVector__v_;
-text: .text%__1cKReturnNodeGis_CFG6kM_i_;
text: .text%__1cRSignatureIteratorSskip_optional_size6M_v_;
text: .text%__1cRaddI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cTCompareAndSwapLNodeGOpcode6kM_i_;
-text: .text%__1cNmethodOopDescbHhas_unloaded_classes_in_signature6FnMmethodHandle_pnGThread__i_;
-text: .text%__1cIciObjectRis_instance_klass6M_i_;
text: .text%__1cOGenerateOopMapRsigchar_to_effect6McipnNCellTypeState__2_;
text: .text%__1cOGenerateOopMapIdo_field6Miiii_v_;
text: .text%__1cPloadConUL32NodeMideal_Opcode6kM_i_;
text: .text%__1cEUTF8Ounicode_length6Fpkci_i_;
text: .text%__1cIciMethodRget_flow_analysis6M_pnKciTypeFlow__;
-text: .text%__1cICodeBlobLoop_addr_at6kMi_ppnHoopDesc__;
-text: .text%__1cNloadRangeNodeHtwo_adr6kM_I_;
-text: .text%__1cJloadLNodeJnum_opnds6kM_I_;
text: .text%__1cSmembar_acquireNodeMideal_Opcode6kM_i_;
text: .text%__1cSObjectSynchronizerXidentity_hash_value_for6FnGHandle__l_;
text: .text%__1cHoopDescSslow_identity_hash6M_l_;
@@ -1928,38 +1226,23 @@
text: .text%__1cOGenerateOopMapLmerge_state6Fp0ipi_v_;
text: .text%__1cIMachNodeOpipeline_class6F_pknIPipeline__;
text: .text%__1cIMachNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cJloadCNodeErule6kM_I_;
-text: .text%__1cKOSRAdapterIis_alive6kM_i_;
-text: .text%__1cQjava_lang_StringMbasic_create6FpnQtypeArrayOopDesc_ipnGThread__nGHandle__;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cGThreadXclear_pending_exception6M_v_;
text: .text%__1cXindIndexScaleOffsetOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cOcompL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cTconstantPoolOopDescbBbasic_type_for_signature_at6Mi_nJBasicType__;
text: .text%__1cETypeRget_typeflow_type6FpnGciType__pk0_;
text: .text%__1cLStringTableGintern6FpnNsymbolOopDesc_pnGThread__pnHoopDesc__;
text: .text%__1cNsymbolOopDescKas_unicode6kMri_pH_;
-text: .text%__1cKciTypeFlowLStateVectorJdo_invoke6MpnQciBytecodeStream_i_v_;
text: .text%__1cKstorePNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKReturnNodeKmatch_edge6kMI_I_;
-text: .text%__1cKRegionNodeJideal_reg6kM_I_;
-text: .text%__1cJloadINodeHtwo_adr6kM_I_;
-text: .text%__1cQmark_inner_loops6FpnIPhaseCFG_pnFBlock__v_: block.o;
text: .text%__1cIHaltNodeJideal_reg6kM_I_;
text: .text%__1cFStateM_sub_Op_Halt6MpknENode__v_;
text: .text%__1cWShouldNotReachHereNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReturnNodeGOpcode6kM_i_;
text: .text%__1cJTypeTupleKmake_range6FpnLciSignature__pk0_;
text: .text%__1cKStoreLNodeGOpcode6kM_i_;
-text: .text%__1cPCountedLoopNodeOis_CountedLoop6M_p0_;
text: .text%__1cJTypeTupleLmake_domain6FpnPciInstanceKlass_pnLciSignature__pk0_;
-text: .text%__1cPClassFileParserWparse_field_attributes6MnSconstantPoolHandle_iHpHpi2pnPtypeArrayHandle_pnGThread__v_;
-text: .text%__1cPClassFileParserbCverify_legal_field_modifiers6MiipnGThread__v_;
text: .text%__1cMindirectOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cMindirectOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cMLinkResolverUresolve_virtual_call6FrnICallInfo_nGHandle_nLKlassHandle_4nMsymbolHandle_54iipnGThread__v_;
-text: .text%__1cMLinkResolverbEruntime_resolve_virtual_method6FrnICallInfo_nMmethodHandle_nLKlassHandle_nGHandle_4ipnGThread__v_;
-text: .text%__1cFKlassXcan_be_statically_bound6FpnNmethodOopDesc__i_;
text: .text%__1cLProfileDataOtranslate_from6Mp0_v_;
text: .text%__1cKstorePNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cKstoreINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1967,59 +1250,36 @@
text: .text%__1cNloadConI0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvI2L_reg_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMWarmCallInfoKalways_hot6F_p0_;
-text: .text%__1cMWarmCallInfoGis_hot6kM_i_;
text: .text%__1cNprefetchwNodeMideal_Opcode6kM_i_;
text: .text%__1cIAddINodeJideal_reg6kM_I_;
-text: .text%__1cNCatchProjNode2t6MpnENode_Ii_v_;
-text: .text%__1cENodeHis_Bool6M_pnIBoolNode__;
text: .text%__1cLBoxLockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNmulL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cKciTypeFlowIcan_trap6MrnQciBytecodeStream__i_;
-text: .text%__1cQVMOperationQdDueueLqueue_empty6Mi_i_;
text: .text%__1cIProjNodeDcmp6kMrknENode__I_;
-text: .text%__1cSComputeAdapterInfoGdo_int6M_v_;
text: .text%__1cNCatchProjNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%JVM_GetCPFieldSignatureUTF;
-text: .text%__1cIGraphKitTtoo_many_recompiles6MnODeoptimizationLDeoptReason__i_;
text: .text%__1cHCompileFstart6kM_pnJStartNode__;
text: .text%__1cNmulL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cLPCTableNodeEhash6kM_I_;
text: .text%__1cIGraphKitZadd_exception_states_from6MpnIJVMState__v_;
-text: .text%__1cJStartNodeOis_block_start6kM_i_;
text: .text%__1cQComputeCallStackHdo_void6M_v_;
text: .text%__1cNaddI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIGraphKitOtoo_many_traps6MnODeoptimizationLDeoptReason__i_;
-text: .text%__1cNciCallProfileRapply_prof_factor6Mf_v_;
text: .text%__1cIciMethodTcall_profile_at_bci6Mi_nNciCallProfile__;
-text: .text%__1cHCompileOcall_generator6MpnIciMethod_ipnIJVMState_if_pnNCallGenerator__;
-text: .text%__1cHCompileOfind_intrinsic6MpnIciMethod_i_pnNCallGenerator__;
text: .text%__1cMindIndexOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cMindIndexOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%jni_GetPrimitiveArrayCritical: jni.o;
text: .text%jni_ReleasePrimitiveArrayCritical: jni.o;
-text: .text%__1cSInterpreterRuntimeDldc6FpnKJavaThread_i_v_;
-text: .text%__1cPClassFileParserbIparse_constant_pool_fieldref_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNdecI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cFKlassOis_subclass_of6kMpnMklassOopDesc__i_;
-text: .text%__1cNGrowableArray4Cl_2t6Mii_v_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
-text: .text%__1cLPCTableNodeKis_PCTable6kM_pk0_;
text: .text%__1cLPCTableNodeHsize_of6kM_I_;
text: .text%__1cNincI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKJNIHandlesKmake_local6FpnGThread_pnHoopDesc__pnI_jobject__;
text: .text%__1cQciBytecodeStreamXget_method_holder_index6M_i_;
text: .text%__1cMorI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cLimmUL32OperJconstantL6kM_x_;
text: .text%__1cIGraphKitWround_double_arguments6MpnIciMethod__v_;
text: .text%__1cFParseHdo_call6M_v_;
text: .text%__1cIGraphKitTround_double_result6MpnIciMethod__v_;
-text: .text%__1cFParseZcan_not_compile_call_site6MpnIciMethod_pnPciInstanceKlass__i_;
text: .text%__1cQciBytecodeStreambAget_declared_method_holder6M_pnHciKlass__;
text: .text%__1cFParseMprofile_call6MpnENode__v_;
text: .text%__1cScompP_mem_rRegNodePoper_input_base6kM_I_;
text: .text%__1cICodeHeapLheader_size6F_L_;
-text: .text%__1cJloadBNodeJnum_opnds6kM_I_;
text: .text%__1cENodeLbottom_type6kM_pknEType__;
text: .text%__1cXindIndexScaleOffsetOperNconstant_disp6kM_i_;
text: .text%__1cSindIndexOffsetOperJnum_edges6kM_I_;
@@ -2033,11 +1293,9 @@
text: .text%__1cLLShiftINodeLbottom_type6kM_pknEType__;
text: .text%jni_DeleteLocalRef: jni.o;
text: .text%__1cJloadSNodePoper_input_base6kM_I_;
-text: .text%__1cPno_rax_RegPOperJnum_edges6kM_I_;
text: .text%__1cOcompI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%jni_SetIntField: jni.o;
text: .text%__1cMURShiftLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cMMutableSpaceFclear6M_v_;
text: .text%__1cNtestI_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjava_lang_StringbBcreate_tenured_from_unicode6FpHipnGThread__nGHandle__;
text: .text%__1cKoopFactoryXnew_permanent_charArray6FipnGThread__pnQtypeArrayOopDesc__;
@@ -2048,46 +1306,26 @@
text: .text%__1cVExceptionHandlerTableJadd_entry6MnRHandlerTableEntry__v_;
text: .text%__1cPsalI_rReg_1NodeMideal_Opcode6kM_i_;
text: .text%__1cRaddP_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMLinkResolverbFlinktime_resolve_special_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cMLinkResolverUresolve_special_call6FrnICallInfo_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cMLinkResolverbEruntime_resolve_special_method6FrnICallInfo_nMmethodHandle_nLKlassHandle_4ipnGThread__v_;
text: .text%__1cQComputeCallStackJdo_object6Mii_v_;
-text: .text%__1cIGraphKitNcast_not_null6MpnENode__2_;
text: .text%__1cTconvL2I_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cKPSYoungGenNused_in_bytes6kM_L_;
-text: .text%__1cOCompilerOracleOshould_exclude6FnMmethodHandle__i_;
text: .text%__1cOGenerateOopMapHset_var6MinNCellTypeState__v_;
-text: .text%__1cPcheckCastPPNodeJnum_opnds6kM_I_;
-text: .text%__1cLLShiftLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cGIfNodeHsize_of6kM_I_;
text: .text%__1cPciInstanceKlassFsuper6M_p0_;
text: .text%__1cOcompL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cLLShiftINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cScompI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMMergeMemNodeJideal_reg6kM_I_;
-text: .text%__1cNandL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cIciMethodWwas_executed_more_than6Mi_i_;
-text: .text%__1cSReferenceProcessorbAprocess_discovered_reflist6MppnHoopDesc_pnPReferencePolicy_i_v_;
-text: .text%__1cSReferenceProcessorOprocess_phase36MppnHoopDesc_ipnRBoolObjectClosure_pnKOopClosure_pnLVoidClosure__v_;
-text: .text%__1cSReferenceProcessorOprocess_phase26MppnHoopDesc_pnRBoolObjectClosure_pnKOopClosure__v_;
-text: .text%__1cSReferenceProcessorbAenqueue_discovered_reflist6MpnHoopDesc_p2_v_;
text: .text%__1cTleaPIdxScaleOffNodeMideal_Opcode6kM_i_;
text: .text%__1cTleaPIdxScaleOffNodePoper_input_base6kM_I_;
-text: .text%__1cFLabelJadd_patch6Mi_v_;
text: .text%__1cKMemBarNodeEhash6kM_I_;
text: .text%__1cOcompP_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNloadConL0NodePoper_input_base6kM_I_;
text: .text%__1cNsubI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cJMarkSweepSMarkAndPushClosureLdo_nmethods6kM_ki_;
text: .text%__1cIXorINodeGOpcode6kM_i_;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cMoutputStreamDput6Mc_v_;
text: .text%__1cPindOffset32OperNbase_position6kM_i_;
text: .text%__1cPindOffset32OperNconstant_disp6kM_i_;
text: .text%__1cOcompU_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConL0NodeHtwo_adr6kM_I_;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
-text: .text%__1cFframeNis_glue_frame6kM_i_;
text: .text%__1cLRShiftINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cZPhaseConservativeCoalesceKupdate_ifg6MIIpnIIndexSet_2_v_;
text: .text%__1cZPhaseConservativeCoalesceMunion_helper6MpnENode_2II222pnFBlock_I_v_;
@@ -2095,37 +1333,24 @@
text: .text%__1cOPhaseIdealLoopIsink_use6MpnENode_2_v_;
text: .text%__1cRshrL_rReg_immNodeErule6kM_I_;
text: .text%__1cKInlineTreeMok_to_inline6MpnIciMethod_pnIJVMState_rnNciCallProfile_pnMWarmCallInfo__8_;
-text: .text%__1cTpass_initial_checks6FpnIciMethod_i1_i_;
-text: .text%__1cKInlineTreeMshouldInline6kMpnIciMethod_irnNciCallProfile_pnMWarmCallInfo__pkc_;
-text: .text%__1cOCompilerOracleNshould_inline6FnMmethodHandle__i_;
-text: .text%__1cKInlineTreeNtry_to_inline6MpnIciMethod_irnNciCallProfile_pnMWarmCallInfo__pkc_;
-text: .text%__1cIciMethodbAinterpreter_throwout_count6kM_i_;
-text: .text%__1cIciMethodNshould_inline6M_i_;
-text: .text%__1cIciMethodOshould_exclude6M_i_;
text: .text%__1cScompU_rReg_immNodeErule6kM_I_;
text: .text%__1cKjmpDirNodeJlabel_set6MrnFLabel_I_v_;
-text: .text%__1cKjmpDirNodeJis_Branch6kM_I_;
text: .text%__1cKjmpDirNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMindirectOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cILoadNodeDcmp6kMrknENode__I_;
text: .text%__1cLTypeInstPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cIGraphKitHjava_bc6kM_nJBytecodesECode__;
-text: .text%__1cFLabelSpatch_instructions6MpnRAbstractAssembler__v_;
-text: .text%__1cRAbstractAssemblerHbind_to6MrnFLabel_i_v_;
text: .text%__1cRAbstractAssemblerEbind6MrnFLabel__v_;
text: .text%__1cNloadConL0NodeErule6kM_I_;
text: .text%__1cJStoreNodeSIdeal_masked_input6MpnIPhaseGVN_I_pnENode__;
text: .text%__1cIGraphKitNbuiltin_throw6MnODeoptimizationLDeoptReason_pnENode__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cJrRegIOperFclone6kM_pnIMachOper__;
text: .text%__1cMindIndexOperFscale6kM_i_;
text: .text%__1cScompP_mem_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cFKlassPoop_is_instance6kM_i_;
text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cRandI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cMMachProjNodeHsize_of6kM_I_;
text: .text%__1cJStoreNodeZIdeal_sign_extended_input6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cScompP_mem_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cTconvF2D_reg_memNodeErule6kM_I_;
text: .text%__1cPindOffset32OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFStateM_sub_Op_CmpP6MpknENode__v_;
@@ -2134,38 +1359,24 @@
text: .text%__1cSCompiledStaticCallJfind_stub6M_pC_;
text: .text%__1cIciSymbolEmake6Fpkc_p0_;
text: .text%__1cIciSymbolJmake_impl6Fpkc_p0_;
-text: .text%__1cScompU_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cKimmL32OperIconstant6kM_l_;
-text: .text%__1cHi2sNodePoper_input_base6kM_I_;
text: .text%__1cKimmL32OperJnum_edges6kM_I_;
-text: .text%__1cMMonitorValue2t6MpnKScopeValue_nILocation__v_;
text: .text%__1cMMonitorValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cLBoxLockNodeKstack_slot6FpnENode__i_;
-text: .text%__1cLBoxLockNodeKis_BoxLock6kM_pk0_;
text: .text%__1cIBoolNodeDcmp6kMrknENode__I_;
text: .text%__1cNSignatureInfoIdo_array6Mii_v_;
-text: .text%__1cKDataLayoutPneeds_array_len6FC_i_;
text: .text%__1cKDataLayoutKinitialize6MCHi_v_;
text: .text%__1cJloadLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFframebHnext_monitor_in_interpreter_frame6kMpnPBasicObjectLock__2_;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_;
-text: .text%__1cFParseRbranch_prediction6Mrf_f_;
text: .text%__1cPshrI_rReg_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cHciKlassNis_subtype_of6Mp0_i_;
text: .text%__1cOcompL_rRegNodeErule6kM_I_;
text: .text%__1cNGrowableArray4Cpv_Praw_at_put_grow6Mirk03_v_;
text: .text%__1cNGrowableArray4Cl_Praw_at_put_grow6Mirkl2_v_;
text: .text%__1cISubINodeLbottom_type6kM_pknEType__;
-text: .text%__1cIGraphKitZset_all_rewritable_memory6MpnENode__v_;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
text: .text%__1cMtlsLoadPNodeLbottom_type6kM_pknEType__;
text: .text%__1cJAssemblerEmovq6MnHAddress_pnMRegisterImpl__v_;
-text: .text%__1cRsalI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cNloadRangeNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cICodeBlobPis_runtime_stub6kM_i_;
text: .text%__1cGRFrameMset_distance6Mi_v_;
-text: .text%__1cICodeBlobOis_c2i_adapter6kM_i_;
-text: .text%__1cFframeTis_first_java_frame6kM_i_;
text: .text%__1cFframeLreal_sender6kMpnLRegisterMap__0_;
text: .text%__1cGRFrameGcaller6M_p0_;
text: .text%__1cTStackWalkCompPolicyIsenderOf6MpnGRFrame_pnNGrowableArray4C2___2_;
@@ -2174,51 +1385,31 @@
text: .text%__1cTconstantPoolOopDescMklass_at_put6MipnMklassOopDesc__v_;
text: .text%__1cNFingerprinterGdo_int6M_v_;
text: .text%__1cNSafepointBlobbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_;
-text: .text%__1cRaddI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cRshrL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHPhiNodeEmake6FpnENode_2_p0_;
-text: .text%__1cScompI_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cENodeIis_CMove6M_pnJCMoveNode__;
text: .text%__1cWstatic_call_RelocationLstatic_stub6M_pC_;
-text: .text%__1cLRethrowNodeGis_CFG6kM_i_;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
text: .text%__1cNloadConP0NodeMideal_Opcode6kM_i_;
text: .text%__1cOPhaseIdealLoopOsplit_thru_phi6MpnENode_2i_2_;
-text: .text%__1cNGCTaskManagerRset_resource_flag6MIi_v_;
-text: .text%__1cRshrI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cUmembar_cpu_orderNodeMideal_Opcode6kM_i_;
text: .text%__1cLklassVtableIindex_of6kMpnNmethodOopDesc_i_i_;
text: .text%__1cKEntryPointFentry6kMnITosState__pC_;
-text: .text%__1cJloadCNodeMideal_Opcode6kM_i_;
text: .text%__1cKJavaThreadJframes_do6MpFpnFframe_pknLRegisterMap__v_v_;
text: .text%__1cNMemoryManagerHoops_do6MpnKOopClosure__v_;
text: .text%__1cRInvocationCounterJset_carry6M_v_;
-text: .text%__1cKTypeAryPtrEmake6FnHTypePtrDPTR_pknHTypeAry_pnHciKlass_ii_pk0_;
text: .text%__1cFStateM_sub_Op_RegL6MpknENode__v_;
text: .text%__1cNdecI_rRegNodeErule6kM_I_;
-text: .text%__1cKjmpConNodeJis_Branch6kM_I_;
text: .text%__1cKjmpConNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmpFastLockNodeMideal_Opcode6kM_i_;
text: .text%__1cKjmpConNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cJttyLockerbCbreak_tty_lock_for_safepoint6Fl_v_;
-text: .text%__1cNCallGeneratorJis_inline6kM_i_;
text: .text%__1cUSafepointSynchronizeFblock6FpnKJavaThread__v_;
text: .text%__1cCosRcurrent_thread_id6F_l_;
text: .text%__1cKciTypeFlowLStateVectorMdo_getstatic6MpnQciBytecodeStream__v_;
text: .text%__1cNSignatureInfoHdo_bool6M_v_;
text: .text%__1cLLShiftLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cKstoreLNodeMideal_Opcode6kM_i_;
-text: .text%__1cNloadKlassNodeHtwo_adr6kM_I_;
-text: .text%__1cFParseYprofile_not_taken_branch6M_v_;
text: .text%__1cHPhiNodeMslice_memory6kMpknHTypePtr__p0_;
-text: .text%__1cOcompL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cLRuntimeStubMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
-text: .text%__1cOcompL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cPcmpFastLockNodePoper_input_base6kM_I_;
-text: .text%__1cNCallGeneratorKis_virtual6kM_i_;
-text: .text%__1cKInlineTreePshouldNotInline6kMpnIciMethod_pnMWarmCallInfo__pkc_;
-text: .text%__1cLcastP2LNodeErule6kM_I_;
text: .text%__1cNinstanceKlassKjava_super6kM_pnMklassOopDesc__;
text: .text%__1cNPhaseRegAllocKoffset2reg6kMi_i_;
text: .text%__1cQjmpCon_shortNodeMideal_Opcode6kM_i_;
@@ -2226,88 +1417,53 @@
text: .text%__1cRInterpretedRFrame2t6MnFframe_pnKJavaThread_pnGRFrame__v_;
text: .text%__1cTconvI2L_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJloadINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cENodeRlatency_from_uses6kMrnLBlock_Array_rnNGrowableArray4CI___i_;
text: .text%__1cNGrowableArray4CI_Praw_at_put_grow6MirkI2_v_;
-text: .text%__1cFParseFdo_if6MpnENode_2nIBoolTestEmask_2_v_;
text: .text%__1cXmembar_acquire_lockNodeMideal_Opcode6kM_i_;
text: .text%__1cKklassKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cXindIndexScaleOffsetOperOindex_position6kM_i_;
text: .text%__1cXindIndexScaleOffsetOperNbase_position6kM_i_;
-text: .text%__1cPsalI_rReg_1NodePoper_input_base6kM_I_;
text: .text%__1cIGraphKitJpush_node6MnJBasicType_pnENode__v_;
-text: .text%__1cISubINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cSconstMethodOopDescbEchecked_exceptions_length_addr6kM_pH_;
text: .text%__1cPThreadLocalNodeGOpcode6kM_i_;
text: .text%__1cRsubI_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cJloadCNodePoper_input_base6kM_I_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
-text: .text%__1cLRuntimeStubYcaller_must_gc_arguments6kMpnKJavaThread__i_;
text: .text%__1cIAddPNodeJideal_reg6kM_I_;
-text: .text%__1cTleaPIdxScaleOffNodeJnum_opnds6kM_I_;
text: .text%__1cRaddI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cFParseNthrow_to_exit6MpnNSafePointNode__v_;
text: .text%__1cQCallLeafNoFPNodeGOpcode6kM_i_;
text: .text%__1cKTypeRawPtrHget_con6kM_l_;
text: .text%__1cOClearArrayNodeGOpcode6kM_i_;
-text: .text%__1cOoop_RelocationHoops_do6MpFppnHoopDesc__v_v_;
-text: .text%__1cIciMethodbHhas_unloaded_classes_in_signature6M_i_;
-text: .text%__1cScompP_mem_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
-text: .text%__1cNincI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cJimmP0OperEtype6kM_pknEType__;
text: .text%__1cNloadConP0NodeLbottom_type6kM_pknEType__;
text: .text%__1cPloadConUL32NodeLbottom_type6kM_pknEType__;
text: .text%__1cNloadConI0NodeHsize_of6kM_I_;
-text: .text%__1cRaddI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cPshrI_rReg_1NodePoper_input_base6kM_I_;
text: .text%JVM_handle_solaris_signal;
text: .text%signalHandler;
text: .text%__1cQJNI_FastGetFieldQfind_slowcase_pc6FpC_1_;
-text: .text%__1cMLinkResolverbElinktime_resolve_static_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
-text: .text%__1cRresolve_and_patch6FppnHoopDesc__v_;
text: .text%__1cFStateN_sub_Op_LoadP6MpknENode__v_;
text: .text%__1cISubINodeDsub6kMpknEType_3_3_;
text: .text%__1cPClassFileParserbDverify_legal_method_signature6MnMsymbolHandle_1pnGThread__i_;
text: .text%__1cMLinkResolverVresolve_invokevirtual6FrnICallInfo_nGHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cRInterpretedRFrameOis_interpreted6kM_i_;
-text: .text%__1cGRFrameLis_compiled6kM_i_;
text: .text%__1cUPSGenerationCountersKupdate_all6M_v_;
text: .text%__1cTStackWalkCompPolicyMshouldInline6FnMmethodHandle_fi_pkc_;
text: .text%__1cFArenaRdestruct_contents6M_v_;
-text: .text%__1cIGraphKitPstore_to_memory6MpnENode_22nJBasicType_i_2_;
-text: .text%__1cJStoreNodeEmake6FpnENode_22pknHTypePtr_2nJBasicType__p0_;
text: .text%__1cXPhaseAggressiveCoalesceYinsert_copy_with_overlap6MpnFBlock_pnENode_II_v_;
text: .text%__1cULinearLeastSquareFitGupdate6Mdd_v_;
-text: .text%__1cKciTypeFlowGJsrSetSis_compatible_with6Mp1_i_;
text: .text%__1cENodeIadd_prec6Mp0_v_;
-text: .text%__1cKOSRAdapterOis_osr_adapter6kM_i_;
text: .text%__1cIMulINodeGOpcode6kM_i_;
text: .text%__1cLciSignature2t6MpnHciKlass_pnIciSymbol__v_;
text: .text%__1cNGrowableArray4CpnGciType__2t6MpnFArena_iirk1_v_;
-text: .text%__1cKTypeAryPtrFempty6kM_i_;
-text: .text%__1cHTypeAryFempty6kM_i_;
-text: .text%__1cJloadCNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cIciMethod2t6MnMmethodHandle__v_;
-text: .text%__1cRandI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cJAssemblerDjcc6Mn0AJCondition_rnFLabel_nJrelocInfoJrelocType__v_;
-text: .text%__1cCosRelapsed_frequency6F_x_;
-text: .text%__1cNinstanceKlassVis_same_class_package6FpnHoopDesc_pnNsymbolOopDesc_24_i_;
text: .text%__1cMelapsedTimerHseconds6kM_d_;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
-text: .text%__1cJAssemblerDnop6M_v_;
-text: .text%__1cDCHANprocess_class6FnLKlassHandle_pnNGrowableArray4n0B___pnNGrowableArray4nMmethodHandle___nMsymbolHandle_6_v_;
-text: .text%__1cEUTF8Fequal6FpWi1i_i_;
-text: .text%__1cKstoreLNodeJnum_opnds6kM_I_;
-text: .text%__1cIjniIdMapHoops_do6MpnKOopClosure__v_;
-text: .text%__1cMjniIdMapBaseHoops_do6MpnKOopClosure__v_;
text: .text%__1cJArrayDataKcell_count6M_i_;
text: .text%__1cGBitMapIset_from6M0_v_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cKType_ArrayEgrow6MI_v_;
text: .text%JVM_Write;
text: .text%__1cDhpiFwrite6FipkvI_L_;
-text: .text%__1cMStartC2INodeGOpcode6kM_i_;
text: .text%__1cSindIndexOffsetOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cIAddLNodeLbottom_type6kM_pknEType__;
@@ -2318,33 +1474,21 @@
text: .text%__1cRshrI_rReg_immNodeErule6kM_I_;
text: .text%__1cJcmpOpOperGnegate6M_v_;
text: .text%__1cHTypeAryEmake6FpknEType_pknHTypeInt__pk0_;
-text: .text%__1cFParseRoptimize_inlining6MpnIciMethod_ipnPciInstanceKlass_24irnKInlineTreeLInlineStyle_r2_v_;
-text: .text%__1cQimprove_receiver6FpnPciInstanceKlass_pknLTypeInstPtr_ri_1_;
-text: .text%__1cPcmpFastLockNodeHtwo_adr6kM_I_;
-text: .text%__1cMLinkResolverTresolve_static_call6FrnICallInfo_rnLKlassHandle_nMsymbolHandle_53iipnGThread__v_;
text: .text%__1cPCheckCastPPNodeJideal_reg6kM_I_;
-text: .text%__1cKJavaThreadUin_stack_yellow_zone6MpC_i_;
-text: .text%__1cFParseSmerge_memory_edges6MpnMMergeMemNode_ii_v_;
text: .text%__1cJAssemblerEmovq6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cUSafepointSynchronizebDhandle_polling_page_exception6FpnKJavaThread__v_;
text: .text%__1cUThreadSafepointStatebDhandle_polling_page_exception6M_v_;
text: .text%__1cLjmpConUNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNandL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cKcmpOpUOperFccode6kM_i_;
-text: .text%__1cLjmpConUNodeTmay_be_short_branch6kM_i_;
-text: .text%__1cLjmpConUNodeOis_pc_relative6kM_i_;
text: .text%__1cIPipelinePoperand_latency6kMIpk0_I_;
text: .text%__1cWCallLeafNoFPDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cQPlaceholderTableKfind_entry6MiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
-text: .text%__1cJTimeStampSticks_since_update6kM_x_;
text: .text%__1cURethrowExceptionNodeMideal_Opcode6kM_i_;
text: .text%__1cJloadPNodeFreloc6kM_i_;
text: .text%__1cTno_rax_rbx_RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cNprefetchwNodeJnum_opnds6kM_I_;
text: .text%__1cKjmpConNodeGnegate6M_v_;
text: .text%__1cMindirectOperFscale6kM_i_;
-text: .text%__1cQSystemDictionaryVadd_loader_constraint6FnMsymbolHandle_nGHandle_2pnGThread__v_;
-text: .text%__1cVLoaderConstraintTableJadd_entry6MnMsymbolHandle_pnMklassOopDesc_nGHandle_34pnGThread__i_;
text: .text%__1cRsubI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cTOopMapForCacheEntryZfill_stackmap_for_opcodes6MpnOBytecodeStream_pnNCellTypeState_4i_v_;
text: .text%__1cQComputeCallStackGdo_int6M_v_;
@@ -2352,7 +1496,6 @@
text: .text%__1cNtestP_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNloadRangeNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPCheckCastPPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cFParseMvisit_blocks6M_v_;
text: .text%__1cQjmpDir_shortNodeMideal_Opcode6kM_i_;
text: .text%__1cQjmpDir_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cKciTypeFlowLStateVectorLdo_getfield6MpnQciBytecodeStream__v_;
@@ -2361,40 +1504,26 @@
text: .text%__1cPSignatureStreamRas_symbol_or_null6M_pnNsymbolOopDesc__;
text: .text%__1cNSafePointNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKMemBarNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOjmpLoopEndNodeMideal_Opcode6kM_i_;
-text: .text%__1cFBlockTimplicit_null_check6MrnLBlock_Array_rnNGrowableArray4CI__pnENode_6_v_;
text: .text%__1cKCastPPNodeQIdeal_DU_postCCP6MpnIPhaseCCP__pnENode__;
text: .text%__1cOGenerateOopMapKcopy_state6MpnNCellTypeState_2_v_;
-text: .text%__1cGThreadSis_Compiler_thread6kM_i_;
text: .text%__1cRCardTableModRefBSPdirty_MemRegion6MnJMemRegion__v_;
-text: .text%__1cJloadBNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cQVMOperationQdDueueSqueue_remove_front6Mi_pnMVM_Operation__;
text: .text%__1cOcompI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCompressedWriteStreamEgrow6M_v_;
-text: .text%__1cNCompileBrokerYcheck_compilation_result6FnMmethodHandle_iippnHnmethod__i_;
-text: .text%__1cKReflectionVis_same_class_package6FpnMklassOopDesc_2_i_;
-text: .text%__1cNinstanceKlassVis_same_class_package6MpnMklassOopDesc__i_;
text: .text%JVM_RawMonitorEnter;
-text: .text%__1cFMutexMjvm_raw_lock6M_v_;
text: .text%JVM_RawMonitorExit;
-text: .text%__1cFMutexOjvm_raw_unlock6M_v_;
text: .text%__1cHUNICODELutf8_length6FpHi_i_;
text: .text%__1cRaddP_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cIciMethodLis_accessor6kM_i_;
text: .text%__1cPCountedLoopNodeDphi6kM_pnENode__;
text: .text%__1cLBoxLockNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cSmembar_releaseNodeMideal_Opcode6kM_i_;
-text: .text%__1cQciBytecodeStreamSget_constant_index6kM_i_;
-text: .text%__1cOGenerateOopMapOset_bbmark_bit6Mi_v_;
text: .text%__1cFParseOreturn_current6MpnENode__v_;
text: .text%__1cLConvI2LNodeJideal_reg6kM_I_;
text: .text%__1cJStartNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cMorI_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMloadConPNodeFreloc6kM_i_;
-text: .text%__1cGThreadMis_VM_thread6kM_i_;
text: .text%__1cSPSPromotionManagerFreset6M_v_;
-text: .text%__1cNPrefetchQdDueueFclear6M_v_;
text: .text%__1cSPSPromotionManagerKflush_labs6M_v_;
text: .text%__1cFciEnvVnotice_inlined_method6MpnIciMethod__v_;
text: .text%__1cOJNIHandleBlockNrelease_block6Fp0pnGThread__v_;
@@ -2407,84 +1536,52 @@
text: .text%__1cOcompP_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cHi2sNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerKemit_arith6MiipnMRegisterImpl_2_v_;
-text: .text%__1cLcastP2LNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRciVirtualCallDataOtranslate_from6MpnLProfileData__v_;
text: .text%__1cXinitialize_static_field6FpnPfieldDescriptor_pnGThread__v_: classFileParser.o;
text: .text%__1cKstoreCNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNCompileBrokerXcompilation_is_in_queue6FnMmethodHandle_i_i_;
-text: .text%__1cRsubI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cETypeCeq6kMpk0_i_;
-text: .text%__1cHMatcherPstack_alignment6F_I_;
text: .text%__1cNloadKlassNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJloadSNodeJnum_opnds6kM_I_;
text: .text%__1cJMultiNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRshrL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvI2L_reg_memNodeErule6kM_I_;
text: .text%__1cMURShiftLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cRcmpFastUnlockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSInterpreterRuntimebAfrequency_counter_overflow6FpnKJavaThread_pC_n0AJIcoResult__;
text: .text%__1cHSubNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cLRethrowNodeGOpcode6kM_i_;
-text: .text%__1cPcmpFastLockNodeJnum_opnds6kM_I_;
-text: .text%__1cIciMethodPcan_be_compiled6M_i_;
text: .text%__1cFParseQcreate_entry_map6M_pnNSafePointNode__;
text: .text%__1cFParseIdo_exits6M_v_;
text: .text%__1cFParseLbuild_exits6M_v_;
text: .text%__1cFParseLinit_blocks6M_v_;
text: .text%__1cFParse2t6MpnIJVMState_pnIciMethod_f_v_;
-text: .text%__1cIciMethodVhas_balanced_monitors6M_i_;
text: .text%__1cFParseNdo_all_blocks6M_v_;
text: .text%__1cOParseGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cOParseGeneratorJcan_parse6FpnIciMethod_i_i_;
text: .text%__1cFArenaEused6kM_L_;
text: .text%__1cRandI_rReg_immNodeErule6kM_I_;
text: .text%jni_GetSuperclass: jni.o;
text: .text%__1cPno_rax_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFStateM_sub_Op_AddI6MpknENode__v_;
-text: .text%__1cPClassFileParserUskip_over_field_name6MpciI_1_;
text: .text%__1cFParsePdo_method_entry6M_v_;
text: .text%__1cNCallGeneratorKfor_inline6FpnIciMethod_f_p0_;
-text: .text%__1cKciTypeFlowFBlockPclone_loop_head6Mp0ip1pn0AGJsrSet__3_;
text: .text%__1cLOpaque1NodeGOpcode6kM_i_;
-text: .text%__1cHciKlassOis_subclass_of6Mp0_i_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceFclock6F_x_;
text: .text%__1cTAbstractInterpreterbFsize_top_interpreter_activation6FpnNmethodOopDesc__i_;
-text: .text%__1cRruntime_type_from6FpnJJavaValue__nJBasicType__: javaCalls.o;
-text: .text%__1cCosbCstack_shadow_pages_available6FpnGThread_nMmethodHandle__i_;
text: .text%__1cPJavaCallWrapper2t6MnMmethodHandle_nGHandle_pnJJavaValue_pnGThread__v_;
text: .text%__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_;
text: .text%__1cRJavaCallArgumentsKparameters6M_pl_;
text: .text%__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cLCastP2LNodeLbottom_type6kM_pknEType__;
text: .text%__1cPJavaCallWrapper2T6M_v_;
text: .text%__1cVPreserveExceptionMark2T6M_v_;
text: .text%__1cVPreserveExceptionMark2t6MrpnGThread__v_;
-text: .text%__1cMrax_RegPOperJnum_edges6kM_I_;
text: .text%__1cMrax_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cIimmLOperJconstantL6kM_x_;
-text: .text%__1cIMulLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJloadPNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNCompileBrokerTcompile_method_base6FnMmethodHandle_ii1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
-text: .text%__1cNmethodOopDescWload_signature_classes6FnMmethodHandle_pnGThread__i_;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
-text: .text%__1cYDebugInformationRecorderNadd_dependent6MpnPciInstanceKlass_pnIciMethod__v_;
text: .text%__1cHciField2t6MpnPciInstanceKlass_i_v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
text: .text%__1cMLinkResolverXresolve_klass_no_update6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNaddL_rRegNodePoper_input_base6kM_I_;
text: .text%__1cISubINodeGadd_id6kM_pknEType__;
text: .text%__1cNsubI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
-text: .text%__1cMMutableSpaceKinitialize6MnJMemRegion_i_v_;
text: .text%__1cHciKlass2t6MnLKlassHandle__v_;
-text: .text%__1cKInlineTree2t6MpnHCompile_pk0pnIciMethod_pnIJVMState_if_v_;
text: .text%__1cJEventMark2t6MpkcE_v_;
-text: .text%__1cJloadCNodeJnum_opnds6kM_I_;
text: .text%__1cNaddI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cQComputeCallStackHdo_long6M_v_;
text: .text%__1cMindirectOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
@@ -2492,12 +1589,9 @@
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%__1cQVMOperationQdDueueNqueue_oops_do6MipnKOopClosure__v_;
text: .text%__1cMCreateExNodeJideal_reg6kM_I_;
-text: .text%__1cMorI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cMorI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cRmethodDataOopDescLbci_to_data6Mi_pnLProfileData__;
text: .text%__1cNSCMemProjNodeGOpcode6kM_i_;
text: .text%__1cNSignatureInfoHdo_long6M_v_;
-text: .text%__1cLPCTableNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMCreateExNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cRinterpretedVFrameDbci6kM_i_;
text: .text%__1cKInlineTreeYcompute_callee_frequency6kMi_f_;
@@ -2511,36 +1605,25 @@
text: .text%__1cOMethodLivenessKBasicBlockIload_two6Mi_v_;
text: .text%__1cFKlassTarray_klass_or_null6Mi_pnMklassOopDesc__;
text: .text%__1cNmulL_rRegNodeMcisc_operand6kM_i_;
-text: .text%__1cNobjArrayKlassPoop_is_objArray6kM_i_;
-text: .text%__1cLklassVtableXvtable_accessibility_at6Mi_n0AKAccessType__;
-text: .text%__1cNrFlagsRegOperFclone6kM_pnIMachOper__;
text: .text%__1cIGraphKitJpush_pair6MpnENode__v_;
text: .text%__1cNCatchProjNodeDcmp6kMrknENode__I_;
-text: .text%__1cIGraphKitRmake_slow_call_ex6MpnENode_pnPciInstanceKlass__v_;
text: .text%__1cTcompareAndSwapLNodePoper_input_base6kM_I_;
text: .text%__1cMloadConINodeHsize_of6kM_I_;
text: .text%__1cJAssemblerKemit_arith6MiipnMRegisterImpl_i_v_;
-text: .text%__1cRMachSafePointNodeLis_MachCall6M_pnMMachCallNode__;
text: .text%__1cNstoreImmINodeMideal_Opcode6kM_i_;
-text: .text%__1cJScopeDescGis_top6kM_i_;
text: .text%__1cHOrINodeLbottom_type6kM_pknEType__;
text: .text%__1cPstoreImmI16NodeMideal_Opcode6kM_i_;
text: .text%__1cMindIndexOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cFStateQ_sub_Op_CreateEx6MpknENode__v_;
text: .text%__1cRshrL_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLjmpConUNodeJis_Branch6kM_I_;
text: .text%__1cLjmpConUNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLjmpConUNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cRaddI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cPciInstanceKlass2t6MnLKlassHandle__v_;
text: .text%__1cHCompileXin_preserve_stack_slots6M_I_;
-text: .text%__1cMMachCallNodeHis_Call6M_pnICallNode__;
text: .text%__1cNdecI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKStoreCNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cLLShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cTtypeArrayKlassKlassIoop_size6kMpnHoopDesc__i_;
-text: .text%__1cLklassVtableKis_miranda6FpnNmethodOopDesc_pnPobjArrayOopDesc_pnMklassOopDesc__i_;
-text: .text%__1cTconvL2I_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cRalign_code_offset6Fi_I_;
text: .text%__1cMURShiftINodeLbottom_type6kM_pknEType__;
text: .text%__1cMorI_rRegNodeErule6kM_I_;
@@ -2551,18 +1634,10 @@
text: .text%__1cRmethodDataOopDescJbci_to_dp6Mi_pC_;
text: .text%__1cIAddLNodeGadd_id6kM_pknEType__;
text: .text%__1cRaddL_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cLRShiftINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cFTypeFEhash6kM_i_;
-text: .text%__1cIGraphKitMarray_length6MpnENode__2_;
-text: .text%__1cPCallRuntimeNodeEhash6kM_I_;
text: .text%__1cPsalI_rReg_1NodeErule6kM_I_;
text: .text%__1cIJVMState2t6Mi_v_;
-text: .text%__1cNstoreImmBNodeHtwo_adr6kM_I_;
-text: .text%__1cLLShiftINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cScompU_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cNGrowableArray4Cl_Icontains6kMrkl_i_;
text: .text%__1cScompU_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cQjava_lang_StringGequals6FpnHoopDesc_pHi_i_;
text: .text%__1cOcompP_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTCreateExceptionNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMURShiftINodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -2579,197 +1654,112 @@
text: .text%__1cLRuntimeStubbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_;
text: .text%__1cPshrI_rReg_1NodeErule6kM_I_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cKManagementJtimestamp6F_x_;
-text: .text%__1cbDReferenceProcessorInitializerIis_clean6kM_v_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
-text: .text%__1cNSingletonBlobIis_alive6kM_i_;
-text: .text%__1cKTypeRawPtrCeq6kMpknEType__i_;
text: .text%__1cIregDOperEtype6kM_pknEType__;
-text: .text%__1cQleaPIdxScaleNodeHtwo_adr6kM_I_;
text: .text%__1cTStackWalkCompPolicyPshouldNotInline6FnMmethodHandle__pkc_;
-text: .text%__1cMPrefetchNodeLbottom_type6kM_pknEType__;
text: .text%__1cPcmpFastLockNodeErule6kM_I_;
text: .text%__1cFArena2t6M_v_;
text: .text%__1cSCallLeafDirectNodePoper_input_base6kM_I_;
-text: .text%__1cMCallLeafNodeLis_CallLeaf6kM_pk0_;
text: .text%__1cQleaPIdxScaleNodeMideal_Opcode6kM_i_;
text: .text%__1cJcmpOpOperFequal6kM_i_;
text: .text%__1cScompI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_IsSameObject: jni.o;
-text: .text%__1cNmulL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNmulL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIGraphKitYcombine_exception_states6MpnNSafePointNode_2_v_;
text: .text%__1cJloadBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMrcx_RegIOperJnum_edges6kM_I_;
-text: .text%__1cFKlassNoop_is_method6kM_i_;
text: .text%__1cIMulLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cHnmethodPis_locked_by_vm6kM_i_;
text: .text%__1cONMethodSweeperPprocess_nmethod6FpnHnmethod__v_;
text: .text%__1cRaddP_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cXjava_lang_ref_ReferenceWpending_list_lock_addr6F_ppnHoopDesc__;
-text: .text%__1cJloadLNodeHtwo_adr6kM_I_;
-text: .text%__1cHMulNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMrep_stosNodePoper_input_base6kM_I_;
text: .text%__1cRsalI_rReg_immNodeErule6kM_I_;
text: .text%__1cJFieldTypeSskip_optional_size6FpnNsymbolOopDesc_pi_v_;
text: .text%__1cMloadConPNodeHsize_of6kM_I_;
-text: .text%__1cSCallLeafDirectNodeHtwo_adr6kM_I_;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__;
-text: .text%__1cQsolaris_mprotect6FpcLi_i_: os_solaris.o;
text: .text%__1cRaddI_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cHnmethodLis_unloaded6kM_i_;
text: .text%__1cOGenerateOopMapHppstore6MpnNCellTypeState_i_v_;
-text: .text%__1cIGraphKitXset_edges_for_java_call6MpnMCallJavaNode_i_v_;
-text: .text%__1cTconvI2L_reg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cHi2sNodeJnum_opnds6kM_I_;
text: .text%__1cSconstMethodOopDescZchecked_exceptions_length6kM_i_;
-text: .text%__1cHMatcherXadjust_incoming_stk_arg6Mi_i_;
text: .text%__1cNIdealLoopTreeIset_nest6MI_i_;
text: .text%__1cNIdealLoopTreeMcounted_loop6MpnOPhaseIdealLoop__v_;
-text: .text%__1cRsubI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
-text: .text%__1cTconvI2L_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_CmpU6MpknENode__v_;
text: .text%__1cLRethrowNodeKmatch_edge6kMI_I_;
-text: .text%__1cKcopy_table6FppC1i_v_: interpreter.o;
text: .text%__1cUBytecode_tableswitchOdest_offset_at6kMi_i_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
-text: .text%__1cMVM_OperationVevaluate_at_safepoint6kM_i_;
-text: .text%__1cMVM_OperationVevaluate_concurrently6kM_i_;
-text: .text%__1cMVM_OperationSis_cheap_allocated6kM_i_;
-text: .text%__1cXmembar_release_lockNodePoper_input_base6kM_I_;
-text: .text%__1cRaddL_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cScompP_mem_rRegNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cJFieldTypeOget_array_info6FpnNsymbolOopDesc_pip2pnGThread__nJBasicType__;
-text: .text%__1cJFieldTypeYis_valid_array_signature6FpnNsymbolOopDesc__i_;
text: .text%__1cNincI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIciObject2t6M_v_;
text: .text%__1cPstoreImmI16NodePoper_input_base6kM_I_;
-text: .text%__1cNinstanceKlassbDcheck_valid_for_instantiation6MipnGThread__v_;
text: .text%__1cPClassFileParserbCverify_legal_class_modifiers6MipnGThread__v_;
-text: .text%__1cQLibraryIntrinsicKis_virtual6kM_i_;
text: .text%__1cPciObjectFactoryUget_empty_methodData6M_pnMciMethodData__;
text: .text%__1cMciMethodData2t6M_v_;
-text: .text%__1cPsarI_rReg_1NodePoper_input_base6kM_I_;
text: .text%__1cNstoreImmBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cFTypeDEhash6kM_i_;
-text: .text%__1cMPrefetchNodeKmatch_edge6kMI_I_;
-text: .text%__1cHCompileQcan_generate_C2I6MpnIciMethod_i_i_;
text: .text%__1cPloadConUL32NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPciObjArrayKlassSis_obj_array_klass6M_i_;
text: .text%__1cLOpaque1NodeEhash6kM_I_;
-text: .text%__1cXmembar_release_lockNodeHtwo_adr6kM_I_;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cJloadBNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNandL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cNandL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cFKlassMset_subklass6MpnMklassOopDesc__v_;
text: .text%__1cTCallDynamicJavaNodeGOpcode6kM_i_;
text: .text%__1cJloadINodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cUCompressedReadStreamMraw_read_int6FrpC_i_;
text: .text%__1cIHaltNodeEhash6kM_I_;
text: .text%__1cNstoreImmINodePoper_input_base6kM_I_;
text: .text%__1cLAccessFlagsPatomic_set_bits6Mi_v_;
text: .text%__1cNinstanceKlassWcompute_modifier_flags6kMpnGThread__i_;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cOcompL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQVMOperationQdDueueLremove_next6M_pnMVM_Operation__;
-text: .text%__1cQciTypeArrayKlassTis_type_array_klass6M_i_;
text: .text%__1cRsubI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cFStateP_sub_Op_LShiftL6MpknENode__v_;
text: .text%__1cLjmpConUNodeGnegate6M_v_;
text: .text%__1cKcmpOpUOperGnegate6M_v_;
-text: .text%__1cMrax_RegLOperJnum_edges6kM_I_;
text: .text%__1cLGCTaskQdDueueKinitialize6M_v_;
-text: .text%__1cJStealTask2t6Mi_v_;
text: .text%__1cJStealTaskFdo_it6MpnNGCTaskManager_I_v_;
text: .text%__1cTOldToYoungRootsTaskEname6M_pc_;
text: .text%__1cTOldToYoungRootsTaskFdo_it6MpnNGCTaskManager_I_v_;
text: .text%__1cNGCTaskManagerMnote_release6MI_v_;
text: .text%__1cJStealTaskEname6M_pc_;
text: .text%__1cSCardTableExtensionbAscavenge_contents_parallel6MpnQObjectStartArray_pnMMutableSpace_pnIHeapWord_pnSPSPromotionManager_I_v_;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cQciBytecodeStreamMget_constant6M_nKciConstant__;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cJcmpOpOperFclone6kM_pnIMachOper__;
text: .text%__1cMrep_stosNodeMideal_Opcode6kM_i_;
-text: .text%__1cEhash6Fpkc1_I_;
-text: .text%__1cQput_after_lookup6FnMsymbolHandle_0ppnLNameSigHash__i_;
text: .text%__1cKJavaThreadLgc_epilogue6M_v_;
text: .text%__1cKJavaThreadLgc_prologue6M_v_;
text: .text%__1cTsize_java_to_interp6F_I_;
text: .text%__1cUreloc_java_to_interp6F_I_;
text: .text%__1cQinit_input_masks6FIrnHRegMask_1_p0_: matcher.o;
-text: .text%__1cKOSRAdapterHoops_do6MpnKOopClosure__v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cRitableMethodEntryKinitialize6MpnNmethodOopDesc__v_;
text: .text%__1cTcompareAndSwapLNodeMideal_Opcode6kM_i_;
-text: .text%__1cNinstanceKlassPlink_class_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cIGraphKitbBset_arguments_for_java_call6MpnMCallJavaNode__v_;
text: .text%__1cNCallGeneratorCtf6kM_pknITypeFunc__;
text: .text%__1cMloadConLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cKStoreBNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cNaddL_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cTcompareAndSwapLNodeJnum_opnds6kM_I_;
text: .text%__1cFStateO_sub_Op_StoreI6MpknENode__v_;
text: .text%__1cQleaPIdxScaleNodePoper_input_base6kM_I_;
-text: .text%__1cNGrowableArray4CpnNmethodOopDesc__2t6Mii_v_;
text: .text%__1cLklassVtableMget_mirandas6FpnNGrowableArray4CpnNmethodOopDesc___pnMklassOopDesc_pnPobjArrayOopDesc_8_v_;
text: .text%__1cXJNI_ArgumentPusherVaArgKget_object6M_v_;
text: .text%__1cNloadConP0NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
-text: .text%__1cWstatic_stub_RelocationJpack_data6M_i_;
-text: .text%__1cNsubL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cbAjni_check_async_exceptions6FpnKJavaThread__v_: jni.o;
-text: .text%__1cKJavaThreadbHcheck_and_handle_async_exceptions6Mi_v_;
text: .text%__1cRsalI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMindIndexOperNbase_position6kM_i_;
text: .text%__1cMindIndexOperOindex_position6kM_i_;
text: .text%__1cMindIndexOperNconstant_disp6kM_i_;
-text: .text%__1cJLoadSNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__2t6Mii_v_;
text: .text%__1cKstoreINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cFframeIpatch_pc6MpnGThread_pC_v_;
text: .text%JVM_IsInterface;
text: .text%__1cFKlassQset_next_sibling6MpnMklassOopDesc__v_;
-text: .text%__1cJMultiNodeUdepends_only_on_test6kM_i_;
text: .text%__1cRshrL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjmpCon_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjmpCon_shortNodeJlabel_set6MrnFLabel_I_v_;
-text: .text%__1cKjmpConNodeUshort_branch_version6M_pnIMachNode__;
-text: .text%__1cQjmpCon_shortNodeJis_Branch6kM_I_;
-text: .text%__1cKJavaThreadNpd_last_frame6M_nFframe__;
text: .text%__1cTStackWalkCompPolicyVfindTopInlinableFrame6MpnNGrowableArray4CpnGRFrame____2_;
text: .text%__1cKJavaThreadQlast_java_vframe6MpnLRegisterMap__pnKjavaVFrame__;
text: .text%__1cTStackWalkCompPolicyXmethod_invocation_event6MnMmethodHandle_pnGThread__v_;
text: .text%__1cRInterpretedRFrame2t6MnFframe_pnKJavaThread_nMmethodHandle__v_;
-text: .text%__1cNGrowableArray4CpnGRFrame__2t6Mii_v_;
-text: .text%__1cKjavaVFrameNis_java_frame6kM_i_;
-text: .text%__1cIVerifierRshould_verify_for6FpnHoopDesc__i_;
-text: .text%__1cQciBytecodeStreamPget_klass_index6M_i_;
text: .text%__1cRMachNullCheckNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRMachNullCheckNode2t6MpnENode_2I_v_;
text: .text%__1cRsarI_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cNMachIdealNodeJnum_opnds6kM_I_;
-text: .text%__1cRMachSafePointNodePis_MachCallJava6M_pnQMachCallJavaNode__;
text: .text%__1cKstorePNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cWImplicitExceptionTableGappend6MII_v_;
text: .text%__1cHUNICODEHas_utf86FpHi_pc_;
-text: .text%__1cMStartI2CNodeGOpcode6kM_i_;
-text: .text%__1cKOSRAdapterMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cSvframeStreamCommonbHskip_method_invoke_and_aux_frames6M_v_;
-text: .text%__1cNdecI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIMinINodeGOpcode6kM_i_;
-text: .text%__1cNinstanceKlassbCfind_local_field_from_offset6kMiipnPfieldDescriptor__i_;
-text: .text%__1cNinstanceKlassWfind_field_from_offset6kMiipnPfieldDescriptor__i_;
-text: .text%__1cPciInstanceKlassTget_field_by_offset6Mii_pnHciField__;
text: .text%__1cFArena2T6M_v_;
text: .text%__1cKmethodOperJnum_edges6kM_I_;
text: .text%__1cSconstMethodOopDescYchecked_exceptions_start6kM_pnXCheckedExceptionElement__;
@@ -2780,66 +1770,37 @@
text: .text%__1cNstoreImmBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKstorePNodeFreloc6kM_i_;
text: .text%__1cYCallStaticJavaDirectNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cYCallStaticJavaDirectNodeJnum_opnds6kM_I_;
text: .text%__1cQleaPIdxScaleNodeErule6kM_I_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
-text: .text%__1cNinstanceKlassXmark_dependent_nmethods6MpnMklassOopDesc__i_;
-text: .text%__1cMvframeStream2t6MpnKJavaThread_i_v_;
text: .text%__1cIGraphKitTuse_exception_state6MpnNSafePointNode__pnENode__;
text: .text%__1cIGraphKitSclear_saved_ex_oop6FpnNSafePointNode__pnENode__;
-text: .text%__1cNloadConI0NodeFclone6kM_pnENode__;
-text: .text%__1cJimmI0OperFclone6kM_pnIMachOper__;
-text: .text%__1cLCastP2LNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMLinkResolverbBresolve_static_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cKcmpOpUOperNgreater_equal6kM_i_;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
-text: .text%__1cXcopy_u2_with_conversion6FpH0i_v_: classFileParser.o;
-text: .text%__1cENodeGis_Sub6M_pnHSubNode__;
text: .text%__1cJAssemblerFtestq6MpnMRegisterImpl_2_v_;
text: .text%__1cJCMoveNodeLis_cmove_id6FpnOPhaseTransform_pnENode_44pnIBoolNode__4_;
text: .text%__1cZresource_reallocate_bytes6FpcLL_0_;
text: .text%__1cKstoreINodeFreloc6kM_i_;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cQciBytecodeStreamJget_klass6Mri_pnHciKlass__;
-text: .text%__1cKMemBarNode2t6M_v_;
text: .text%__1cIDivINodeGOpcode6kM_i_;
-text: .text%__1cFframeRis_compiled_frame6kMpi_i_;
-text: .text%__1cPCallRuntimeNodeOis_CallRuntime6kM_pk0_;
text: .text%__1cPshrI_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMorI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cPsalI_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHciField2t6MpnPfieldDescriptor__v_;
-text: .text%__1cIAddLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIModINodeGOpcode6kM_i_;
text: .text%__1cNmulL_rRegNodeErule6kM_I_;
-text: .text%__1cSsafePoint_pollNodeHtwo_adr6kM_I_;
-text: .text%__1cDCHAManalyze_call6FnLKlassHandle_11nMsymbolHandle_2_pnJCHAResult__;
-text: .text%__1cJCHAResult2t6MnLKlassHandle_nMsymbolHandle_2pnNGrowableArray4n0B___pnNGrowableArray4nMmethodHandle___n0E_i_v_;
text: .text%__1cMLinkResolverbCresolve_virtual_call_or_null6FnLKlassHandle_1nMsymbolHandle_21_nMmethodHandle__;
-text: .text%__1cJCHAResultOis_monomorphic6kM_i_;
-text: .text%__1cIciMethodXfind_monomorphic_target6MpnHciKlass_22_p0_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cKMemBarNodeJis_MemBar6kM_pk0_;
-text: .text%__1cIGraphKitOinsert_mem_bar6MpnKMemBarNode__v_;
-text: .text%__1cHi2sNodeHtwo_adr6kM_I_;
text: .text%__1cJCodeCacheMfind_nmethod6Fpv_pnHnmethod__;
text: .text%__1cLConvL2INodeLbottom_type6kM_pknEType__;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
-text: .text%__1cNIdealLoopTreeObeautify_loops6MpnOPhaseIdealLoop__i_;
text: .text%__1cScompP_mem_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKstoreBNodePoper_input_base6kM_I_;
text: .text%__1cRandI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSCallLeafDirectNodeRis_safepoint_node6kM_i_;
text: .text%__1cJloadLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSCallLeafDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKMemBarNodeJideal_reg6kM_I_;
-text: .text%__1cJloadSNodeHtwo_adr6kM_I_;
text: .text%__1cVConstantOopWriteValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cUDebugInfoWriteStreamMwrite_handle6MpnI_jobject__v_;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNaddI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJlog2_long6Fx_i_;
text: .text%__1cTconvL2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIGraphKitPpush_pair_local6Mi_v_;
text: .text%__1cOjmpLoopEndNodePoper_input_base6kM_I_;
@@ -2852,131 +1813,74 @@
text: .text%JVM_InternString;
text: .text%__1cLStringTableGintern6FpnHoopDesc_pnGThread__2_;
text: .text%__1cFKlassQup_cast_abstract6M_p0_;
-text: .text%__1cNGrowableArray4CpnENode__2t6Mii_v_;
-text: .text%__1cPCheckCastPPNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cSInterpreterRuntimeMmonitorenter6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cSCountedLoopEndNodeKstride_con6kM_i_;
-text: .text%__1cTconvI2L_reg_memNodeJnum_opnds6kM_I_;
text: .text%__1cPCheckCastPPNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cLOpaque1NodeLbottom_type6kM_pknEType__;
text: .text%__1cOPhaseIdealLoopRsplit_thru_region6MpnENode_2_2_;
-text: .text%__1cFTypeFCeq6kMpknEType__i_;
-text: .text%__1cNmethodOopDescOis_initializer6kM_i_;
text: .text%__1cFciEnvRfind_system_klass6MpnIciSymbol__pnHciKlass__;
text: .text%__1cNandL_rRegNodeErule6kM_I_;
text: .text%__1cQjmpDir_shortNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cQjmpDir_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKjmpDirNodeUshort_branch_version6M_pnIMachNode__;
-text: .text%__1cQjmpDir_shortNodeJis_Branch6kM_I_;
text: .text%__1cLBlock_ArrayEgrow6MI_v_;
-text: .text%__1cOtypeArrayKlassQarray_klass_impl6MiipnGThread__pnMklassOopDesc__;
-text: .text%__1cSCompareAndSwapNodeLbottom_type6kM_pknEType__;
-text: .text%__1cOtypeArrayKlassQarray_klass_impl6FnUtypeArrayKlassHandle_iipnGThread__pnMklassOopDesc__;
text: .text%__1cMPhaseChaitinVfind_base_for_derived6MppnENode_2rI_2_;
text: .text%__1cSindIndexOffsetOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cSindIndexOffsetOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cNGrowableArray4CI_Egrow6Mi_v_;
-text: .text%__1cHMatcherMreturn_value6Fii_nLOptoRegPair__;
text: .text%__1cFStateP_sub_Op_ConvI2L6MpknENode__v_;
-text: .text%__1cOjmpLoopEndNodeGpinned6kM_i_;
-text: .text%__1cNxorI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cJCHAResultSmonomorphic_target6kM_nMmethodHandle__;
text: .text%__1cNsubI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPCountedLoopNodeNstride_is_con6kM_i_;
text: .text%__1cRcmpFastUnlockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJtimestamp6FpnHoopDesc__x_;
-text: .text%__1cQLRUMaxHeapPolicyWshould_clear_reference6MpnHoopDesc__i_;
-text: .text%__1cLcastP2LNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcheckCastPPNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cPciInstanceKlassLfind_method6MpnIciSymbol_2_pnIciMethod__;
-text: .text%__1cZCallInterpreterDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cILoopNodeHsize_of6kM_I_;
text: .text%__1cSindIndexOffsetOperFscale6kM_i_;
-text: .text%__1cMjniIdSupportNto_method_oop6FpnK_jmethodID__pnNmethodOopDesc__;
text: .text%__1cLBoxLockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRSignatureIterator2t6MpnGThread_pnNsymbolOopDesc__v_;
-text: .text%__1cRaddI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cFKlassQoop_is_typeArray6kM_i_;
-text: .text%__1cGOopMapPset_derived_oop6Miiii_v_;
text: .text%__1cKstoreBNodeMideal_Opcode6kM_i_;
text: .text%__1cHi2bNodeErule6kM_I_;
text: .text%__1cFStateN_sub_Op_LoadI6MpknENode__v_;
-text: .text%__1cMloadConDNodePoper_input_base6kM_I_;
text: .text%__1cPCountedLoopNodeJinit_trip6kM_pnENode__;
text: .text%__1cICmpLNodeDsub6kMpknEType_3_3_;
text: .text%__1cRjmpConU_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cRjmpConU_shortNodeMideal_Opcode6kM_i_;
-text: .text%__1cMloadConDNodeHtwo_adr6kM_I_;
-text: .text%__1cHnmethodKpc_desc_at6MpC_pnGPcDesc__;
-text: .text%__1cJrRegPOperFclone6kM_pnIMachOper__;
-text: .text%__1cFParseNpush_constant6MnKciConstant__i_;
-text: .text%__1cMrep_stosNodeJnum_opnds6kM_I_;
text: .text%__1cOClearArrayNodeKmatch_edge6kMI_I_;
text: .text%__1cUvisit_all_interfaces6FpnPobjArrayOopDesc_pnXInterfaceVisiterClosure__v_;
text: .text%__1cXmembar_release_lockNodeLbottom_type6kM_pknEType__;
text: .text%__1cPThreadLocalNodeJideal_reg6kM_I_;
-text: .text%__1cPstoreImmI16NodeJnum_opnds6kM_I_;
text: .text%__1cTleaPIdxScaleOffNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIGraphKitbMset_predefined_output_for_runtime_call6MpnENode_pnMMergeMemNode__v_;
-text: .text%__1cFKlassXsearch_secondary_supers6kMpnMklassOopDesc__i_;
text: .text%__1cPsarI_rReg_1NodeErule6kM_I_;
text: .text%__1cOPhaseIdealLoopPis_counted_loop6MpnENode_pnNIdealLoopTree__2_;
-text: .text%__1cIGraphKitOhas_ex_handler6M_i_;
text: .text%__1cMloadConDNodeErule6kM_I_;
text: .text%__1cHCompileQsync_stack_slots6kM_i_;
text: .text%__1cNMemoryServiceXtrack_memory_pool_usage6FpnKMemoryPool__v_;
-text: .text%__1cMURShiftLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cKoopFactoryTnew_system_objArray6FipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cNdecI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cPClassFileParserbHparse_constant_pool_integer_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cTDebugInfoReadStream2t6MpknHnmethod_i_v_;
-text: .text%__1cRsalI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cJScopeDescJstream_at6kMi_pnTDebugInfoReadStream__;
text: .text%__1cVjava_lang_ClassLoaderGparent6FpnHoopDesc__2_;
text: .text%__1cIPhaseIFGEinit6MI_v_;
-text: .text%__1cMPhaseChaitinQgather_lrg_masks6Mi_v_;
text: .text%__1cJPhaseLiveHcompute6MI_v_;
text: .text%JVM_GetCPClassNameUTF;
text: .text%__1cMLinkResolverUresolve_invokestatic6FrnICallInfo_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNstoreImmINodeJnum_opnds6kM_I_;
-text: .text%__1cITypeNodeHis_Type6M_p0_;
text: .text%__1cHRetNodePoper_input_base6kM_I_;
-text: .text%__1cLCastP2LNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%jni_GetStringLength: jni.o;
text: .text%__1cPloadConUL32NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOFastUnlockNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPciObjArrayKlassNelement_klass6M_pnHciKlass__;
-text: .text%__1cNprefetchwNodeHtwo_adr6kM_I_;
-text: .text%__1cNnmethodLocker2T6M_v_;
text: .text%__1cKoopFactoryYnew_permanent_shortArray6FipnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cKstoreCNodeHtwo_adr6kM_I_;
-text: .text%__1cQleaPIdxScaleNodeJnum_opnds6kM_I_;
text: .text%__1cNaddL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cOcompL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cTDebugInfoReadStreamLread_handle6M_nGHandle__;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cFStateR_sub_Op_LoadRange6MpknENode__v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
text: .text%__1cOcompU_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPcmovI_reg_gNodePoper_input_base6kM_I_;
-text: .text%__1cLProfileDataSis_VirtualCallData6M_i_;
-text: .text%__1cSmembar_acquireNodePoper_input_base6kM_I_;
text: .text%__1cNsubL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cJMarkSweepMfollow_stack6F_v_;
-text: .text%__1cNnmethodLocker2t6MpnHnmethod__v_;
text: .text%__1cNloadRangeNodeFreloc6kM_i_;
-text: .text%__1cNGrowableArray4CpnKciTypeFlowJJsrRecord__2t6Miirk2i_v_;
text: .text%__1cTcompareAndSwapLNodeErule6kM_I_;
text: .text%__1cZCallDynamicJavaDirectNodeMideal_Opcode6kM_i_;
-text: .text%__1cMURShiftINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cOcompiledVFrameGis_top6kM_i_;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cNxorI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cRshrI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cKciTypeFlow2t6MpnFciEnv_pnIciMethod_i_v_;
-text: .text%__1cKciTypeFlowXmark_known_range_starts6M_v_;
-text: .text%__1cKciTypeFlowLfind_ranges6M_v_;
text: .text%__1cSFixupMirrorClosureJdo_object6MpnHoopDesc__v_;
text: .text%__1cKciTypeFlowKmap_blocks6M_v_;
text: .text%__1cKciTypeFlowHdo_flow6M_v_;
@@ -2984,12 +1888,9 @@
text: .text%__1cKciTypeFlowKflow_types6M_v_;
text: .text%__1cIAndINodeGadd_id6kM_pknEType__;
text: .text%__1cMURShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cJloadBNodeHtwo_adr6kM_I_;
text: .text%__1cKPSYoungGenRcapacity_in_bytes6kM_L_;
-text: .text%__1cHMonitorGnotify6M_i_;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cFParseXcatch_inline_exceptions6MpnNSafePointNode__v_;
-text: .text%__1cHMatcherNfind_receiver6Fi_i_;
text: .text%__1cMciMethodDataJload_data6M_v_;
text: .text%__1cIciMethodJload_code6M_v_;
text: .text%__1cJCmpL3NodeGOpcode6kM_i_;
@@ -3000,14 +1901,9 @@
text: .text%__1cMTypeKlassPtrFxdual6kM_pknEType__;
text: .text%__1cIMaxINodeGOpcode6kM_i_;
text: .text%__1cOPhaseTransform2t6MnFPhaseLPhaseNumber__v_;
-text: .text%__1cPsalI_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cQSystemDictionarybAcompute_loader_lock_object6FnGHandle_pnGThread__1_;
-text: .text%__1cHciKlassMis_interface6M_i_;
-text: .text%__1cPmethodDataKlassRoop_is_methodData6kM_i_;
text: .text%__1cIMulLNodeGadd_id6kM_pknEType__;
-text: .text%__1cJloadCNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cLJvmtiExportHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
text: .text%__1cQVMOperationQdDueueHoops_do6MpnKOopClosure__v_;
@@ -3020,83 +1916,55 @@
text: .text%__1cNThreadServiceHoops_do6FpnKOopClosure__v_;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cXJvmtiCurrentBreakpointsHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIUniverseHoops_do6FpnKOopClosure_i_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollectorXoops_do_for_all_threads6FpnKOopClosure__v_;
text: .text%__1cRindIndexScaleOperJnum_edges6kM_I_;
text: .text%__1cRindIndexScaleOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cKstoreBNodeJnum_opnds6kM_I_;
text: .text%__1cNSignatureInfoJdo_double6M_v_;
text: .text%__1cJAssemblerEmovl6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cRsalI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cMrdx_RegIOperEtype6kM_pknEType__;
text: .text%__1cMciMethodData2t6MnQmethodDataHandle__v_;
-text: .text%__1cSmembar_acquireNodeHtwo_adr6kM_I_;
text: .text%__1cRshrI_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cKJNIHandlesLmake_global6FnGHandle_i_pnI_jobject__;
text: .text%jni_ExceptionOccurred: jni.o;
text: .text%jni_SetObjectArrayElement: jni.o;
-text: .text%__1cSCompareAndSwapNodeKmatch_edge6kMI_I_;
text: .text%__1cISubINodeJideal_reg6kM_I_;
-text: .text%__1cRMachSafePointNodeGpinned6kM_i_;
-text: .text%__1cIimmIOperFclone6kM_pnIMachOper__;
-text: .text%__1cMloadConINodeFclone6kM_pnENode__;
text: .text%__1cICodeHeapIallocate6ML_pv_;
text: .text%__1cICodeHeapPsearch_freelist6ML_pnJFreeBlock__;
-text: .text%__1cbACallCompiledJavaDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cPcmpFastLockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLCastP2LNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cNmulL_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cJLoadBNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cVmerge_point_too_heavy6FpnHCompile_pnENode__i_: loopopts.o;
text: .text%jni_GetByteArrayRegion: jni.o;
-text: .text%__1cFParseKdo_put_xxx6MpknHTypePtr_pnENode_pnHciField_i_v_;
-text: .text%__1cHnmethodOis_java_method6kM_i_;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc_ii_pc_;
text: .text%jni_GetStringUTFRegion: jni.o;
text: .text%jni_GetStringUTFLength: jni.o;
text: .text%__1cOMacroAssemblerWbang_stack_with_offset6Mi_v_;
-text: .text%__1cRsarL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cScompU_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cFciEnvZcheck_klass_accessibility6MpnHciKlass_pnMklassOopDesc__i_;
-text: .text%__1cIciObjectMis_obj_array6M_i_;
-text: .text%__1cOLibraryCallKitOgenerate_guard6MpnENode_pnKRegionNode_f_v_;
text: .text%__1cMoutputStream2t6Mi_v_;
text: .text%__1cMstringStreamJas_string6M_pc_;
text: .text%__1cMstringStream2t6ML_v_;
text: .text%__1cJloadINodeFreloc6kM_i_;
text: .text%__1cMstringStream2T6M_v_;
text: .text%__1cOMethodLivenessKBasicBlockJstore_two6Mi_v_;
-text: .text%__1cJloadINodeIpeephole6MpnFBlock_ipnNPhaseRegAlloc_ri_pnIMachNode__;
-text: .text%__1cTconvL2I_reg_regNodeJnum_opnds6kM_I_;
text: .text%__1cPClassFileParserXverify_legal_class_name6MnMsymbolHandle_pnGThread__v_;
-text: .text%__1cRandI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cOAbstractICachePcall_flush_stub6FpCi_v_;
text: .text%__1cICodeBlobMset_oop_maps6MpnJOopMapSet__v_;
text: .text%__1cRClassPathZipEntryLopen_stream6Mpkc_pnPClassFileStream__;
text: .text%__1cJCodeCacheIallocate6Fi_pnICodeBlob__;
-text: .text%__1cIGraphKitOmake_slow_call6MpknITypeFunc_pCpkcpnENode_88_8_;
text: .text%__1cICodeHeapPfollowing_block6MpnJFreeBlock__2_;
text: .text%__1cOClearArrayNodeLbottom_type6kM_pknEType__;
-text: .text%__1cPshrI_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cEDictIdoubhash6M_v_;
-text: .text%__1cTleaPIdxScaleOffNodeLbottom_type6kM_pknEType__;
text: .text%__1cIProjNodeJideal_reg6kM_I_;
text: .text%__1cHi2sNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLimmI_16OperJnum_edges6kM_I_;
-text: .text%__1cUmembar_cpu_orderNodePoper_input_base6kM_I_;
text: .text%__1cPfieldDescriptorRint_initial_value6kM_i_;
-text: .text%__1cTCallInterpreterNodeGOpcode6kM_i_;
text: .text%__1cMloadConLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRaddL_rReg_immNodeErule6kM_I_;
text: .text%__1cJLoadLNodeJideal_reg6kM_I_;
-text: .text%__1cTleaPIdxScaleOffNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cHCompileTset_cached_top_node6MpnENode__v_;
text: .text%__1cENodeMsetup_is_top6M_v_;
text: .text%__1cIGotoNodeGOpcode6kM_i_;
text: .text%__1cOMachPrologNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHCompilePneed_stack_bang6kMi_i_;
text: .text%__1cKBranchDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
text: .text%__1cNFingerprinterIdo_array6Mii_v_;
text: .text%jni_GetArrayLength: jni.o;
@@ -3104,46 +1972,25 @@
text: .text%__1cKReturnNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSInterpreterRuntimeE_new6FpnKJavaThread_pnTconstantPoolOopDesc_i_v_;
text: .text%__1cMorI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cKTypeRawPtrFempty6kM_i_;
-text: .text%__1cHRetNodeGpinned6kM_i_;
-text: .text%__1cHRetNodeHtwo_adr6kM_I_;
text: .text%__1cPsalI_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cNinstanceKlassVadd_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cHRetNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPGlobalTLABStatsKinitialize6M_v_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJset_clock6Fx_v_;
-text: .text%__1cUParallelScavengeHeapTensure_parseability6M_v_;
text: .text%__1cTDerivedPointerTableFclear6F_v_;
-text: .text%__1cNMemoryServiceGgc_end6Fi_v_;
-text: .text%__1cSReferenceProcessorQprocess_phaseJNI6M_v_;
text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
-text: .text%__1cSReferenceProcessorbDenqueue_discovered_references6M_i_;
-text: .text%__1cSReferenceProcessorbDprocess_discovered_references6M_v_;
text: .text%__1cNCollectedHeapbFaccumulate_statistics_all_tlabs6M_v_;
text: .text%__1cTDerivedPointerTablePupdate_pointers6F_v_;
-text: .text%__1cNCollectedHeapTensure_parseability6M_v_;
-text: .text%__1cNCollectedHeapOfill_all_tlabs6M_v_;
text: .text%__1cKDictionaryHoops_do6MpnKOopClosure__v_;
-text: .text%__1cSReferenceProcessorbBenqueue_discovered_reflists6MppnHoopDesc__v_;
text: .text%__1cWThreadLocalAllocBufferbFaccumulate_statistics_before_gc6F_v_;
-text: .text%__1cSReferenceProcessorOprocess_phase16MppnHoopDesc_pnPReferencePolicy_pnRBoolObjectClosure_pnKOopClosure_pnLVoidClosure__v_;
text: .text%__1cQLRUMaxHeapPolicy2t6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cVLoaderConstraintTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cUParallelScavengeHeapbFaccumulate_statistics_all_tlabs6M_v_;
text: .text%__1cKPSYoungGenPupdate_counters6M_v_;
-text: .text%__1cXjava_lang_ref_ReferenceRpending_list_addr6F_ppnHoopDesc__;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cQSystemDictionaryHoops_do6FpnKOopClosure__v_;
-text: .text%__1cNMemoryServiceIgc_begin6Fi_v_;
-text: .text%__1cUParallelScavengeHeapOfill_all_tlabs6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
-text: .text%__1cXTraceMemoryManagerStats2t6Mi_v_;
text: .text%__1cUParallelScavengeHeapPupdate_counters6M_v_;
-text: .text%__1cQPlaceholderTableJnew_entry6MipnNsymbolOopDesc_pnHoopDesc__pnQPlaceholderEntry__;
text: .text%__1cQPlaceholderTableMremove_entry6MiInMsymbolHandle_nGHandle__v_;
-text: .text%__1cQPlaceholderTableJadd_entry6MiInMsymbolHandle_nGHandle__v_;
text: .text%__1cNCollectedHeapQresize_all_tlabs6M_v_;
text: .text%__1cUParallelScavengeHeapQresize_all_tlabs6M_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
@@ -3152,80 +1999,53 @@
text: .text%__1cbAPSGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cNmethodOopDescbEfast_exception_handler_bci_for6MnLKlassHandle_ipnGThread__i_;
text: .text%__1cSInterpreterRuntimebFexception_handler_for_exception6FpnKJavaThread_pnHoopDesc__pC_;
-text: .text%__1cNaddL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cNaddL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cKstoreLNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cUPSAdaptiveSizePolicyZdecay_supplemental_growth6Mi_v_;
text: .text%__1cUPSAdaptiveSizePolicybPeden_increment_with_supplement_aligned_up6ML_L_;
-text: .text%__1cUPSAdaptiveSizePolicyQdecaying_gc_cost6kM_d_;
-text: .text%__1cUPSAdaptiveSizePolicybDcompute_generation_free_space6MLLLLLLLi_v_;
text: .text%__1cIPSOldGenMmax_gen_size6M_L_;
text: .text%__1cUPSAdaptiveSizePolicybHclear_generation_free_space_flags6M_v_;
text: .text%__1cUPSAdaptiveSizePolicyOeden_increment6MLI_L_;
-text: .text%__1cUPSAdaptiveSizePolicyVadjust_for_throughput6MipL1_v_;
text: .text%__1cQSystemDictionaryTload_instance_class6FnMsymbolHandle_nGHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cUmembar_cpu_orderNodeHtwo_adr6kM_I_;
text: .text%__1cPjava_lang_ClassNcreate_mirror6FnLKlassHandle_pnGThread__pnHoopDesc__;
-text: .text%__1cLklassVtableRinitialize_vtable6MpnGThread__v_;
text: .text%__1cJAssemblerDjmp6MrnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cPshrI_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cRmulI_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cNandI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cOMachEpilogNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cLklassVtableVinitialize_from_super6MnLKlassHandle__i_;
text: .text%__1cIVMThreadHexecute6FpnMVM_Operation__v_;
text: .text%__1cLklassVtableOcopy_vtable_to6MpnLvtableEntry__v_;
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
-text: .text%__1cQinstanceRefKlassbKrelease_and_notify_pending_list_lock6FipnJBasicLock__v_;
text: .text%__1cPVM_GC_OperationbKrelease_and_notify_pending_list_lock6M_v_;
-text: .text%__1cPVM_GC_OperationOskip_operation6kM_i_;
-text: .text%__1cPVM_GC_OperationNdoit_prologue6M_i_;
text: .text%__1cPVM_GC_OperationZacquire_pending_list_lock6M_v_;
text: .text%__1cMTypeKlassPtrFxmeet6kMpknEType__3_;
text: .text%__1cKReturnNodeEhash6kM_I_;
-text: .text%__1cHnmethodVis_dependent_on_entry6MpnMklassOopDesc_2pnNmethodOopDesc__i_;
-text: .text%__1cbDVM_ParallelGCFailedAllocation2t6MLiiI_v_;
text: .text%__1cLlog2_intptr6Fl_i_;
text: .text%__1cKKlass_vtbl2n6FLrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cFKlassVbase_create_klass_oop6FrnLKlassHandle_irknKKlass_vtbl_pnGThread__pnMklassOopDesc__;
text: .text%__1cFKlassRinitialize_supers6MpnMklassOopDesc_pnGThread__v_;
-text: .text%__1cMloadConPNodeFclone6kM_pnENode__;
-text: .text%__1cIimmPOperFclone6kM_pnIMachOper__;
text: .text%__1cFKlassRbase_create_klass6FrnLKlassHandle_irknKKlass_vtbl_pnGThread__1_;
text: .text%__1cSCallLeafDirectNodeKmethod_set6Ml_v_;
text: .text%__1cJcmpOpOperJnot_equal6kM_i_;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRAbstractAssemblerbDgenerate_stack_overflow_check6Mi_v_;
-text: .text%__1cCosOunguard_memory6FpcL_i_;
text: .text%__1cNandL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLLShiftINodeJideal_reg6kM_I_;
-text: .text%__1cRsarI_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cGThreadRis_Watcher_thread6kM_i_;
text: .text%__1cJLoadSNodeJideal_reg6kM_I_;
-text: .text%__1cTconvL2I_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cIPhaseIFGISquareUp6M_v_;
text: .text%__1cPciObjectFactoryMvm_symbol_at6Fi_pnIciSymbol__;
text: .text%__1cCosJyield_all6Fi_v_;
-text: .text%__1cKciTypeFlowLStateVectorOmeet_exception6MpnPciInstanceKlass_pk1_i_;
text: .text%__1cCosbCmake_polling_page_unreadable6F_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cSObjectSynchronizerVdeflate_idle_monitors6F_v_;
text: .text%__1cMCounterDecayFdecay6F_v_;
-text: .text%__1cCosOprotect_memory6FpcL_i_;
text: .text%__1cORuntimeServiceWrecord_safepoint_begin6F_v_;
text: .text%__1cORuntimeServicebDrecord_safepoint_synchronized6F_v_;
text: .text%__1cCosXserialize_thread_states6F_v_;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
-text: .text%__1cUSafepointSynchronizeRis_cleanup_needed6F_i_;
text: .text%__1cUSafepointSynchronizeQdo_cleanup_tasks6F_v_;
-text: .text%__1cRInlineCacheBufferIis_empty6F_i_;
text: .text%__1cRInlineCacheBufferUupdate_inline_caches6F_v_;
-text: .text%__1cTAbstractInterpreterRnotice_safepoints6F_v_;
text: .text%__1cNloadConP0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cCosbAmake_polling_page_readable6F_v_;
text: .text%__1cORuntimeServiceUrecord_safepoint_end6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
-text: .text%__1cTAbstractInterpreterRignore_safepoints6F_v_;
text: .text%__1cQVMOperationQdDueueGinsert6MpnMVM_Operation_2_v_;
text: .text%__1cQVMOperationQdDueueGunlink6MpnMVM_Operation__v_;
text: .text%__1cMVM_OperationIevaluate6M_v_;
@@ -3235,38 +2055,20 @@
text: .text%__1cGThreadMget_priority6Fpk0_nOThreadPriority__;
text: .text%__1cCosTget_native_priority6FpknGThread_pi_nIOSReturn__;
text: .text%__1cIVMThreadSevaluate_operation6MpnMVM_Operation__v_;
-text: .text%__1cQVMOperationQdDueueDadd6MpnMVM_Operation__i_;
text: .text%__1cSmembar_releaseNodeLbottom_type6kM_pknEType__;
text: .text%__1cCosGrandom6F_l_;
-text: .text%__1cNget_next_hash6F_l_: synchronizer.o;
-text: .text%__1cNJvmtiGCMarker2t6Mi_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
-text: .text%__1cKPSScavengeXshould_attempt_scavenge6F_i_;
-text: .text%__1cKPSScavengeQinvoke_no_policy6Fpi_i_;
text: .text%__1cPGlobalTLABStatsHpublish6M_v_;
text: .text%__1cUinitialize_hashtable6FppnLNameSigHash__v_;
-text: .text%__1cPclear_hashtable6FppnLNameSigHash__v_;
-text: .text%__1cQciBytecodeStreamUis_unresolved_string6kM_i_;
-text: .text%__1cFciEnvUis_unresolved_string6kMpnPciInstanceKlass_i_i_;
-text: .text%__1cFciEnvZis_unresolved_string_impl6kMpnNinstanceKlass_i_i_;
text: .text%__1cNtestP_regNodeFreloc6kM_i_;
-text: .text%__1cNSCMemProjNodeGis_CFG6kM_i_;
-text: .text%__1cKPSScavengeGinvoke6Fpi_v_;
-text: .text%__1cUParallelScavengeHeapTfailed_mem_allocate6MpiLii_pnIHeapWord__;
-text: .text%__1cbDVM_ParallelGCFailedAllocationEname6kM_pkc_;
text: .text%__1cbDVM_ParallelGCFailedAllocationEdoit6M_v_;
text: .text%__1cKDictionaryJnew_entry6MIpnMklassOopDesc_pnHoopDesc__pnPDictionaryEntry__;
text: .text%__1cKDictionaryJadd_klass6MnMsymbolHandle_nGHandle_nLKlassHandle__v_;
text: .text%__1cQSystemDictionaryRupdate_dictionary6FiIiInTinstanceKlassHandle_nGHandle_pnGThread__v_;
-text: .text%__1cQSystemDictionaryRcheck_constraints6FiInTinstanceKlassHandle_nGHandle_pnGThread__v_;
text: .text%__1cQSystemDictionaryQfind_placeholder6FiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
-text: .text%__1cVLoaderConstraintTablePcheck_or_update6MnTinstanceKlassHandle_nGHandle_nMsymbolHandle__pkc_;
text: .text%__1cKoopFactoryXnew_permanent_byteArray6FipnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cNIdealLoopTreeTcheck_inner_safepts6MpnOPhaseIdealLoop__v_;
text: .text%__1cPsarI_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKciTypeFlowPflow_exceptions6MpnNGrowableArray4Cpn0AFBlock___pnNGrowableArray4CpnPciInstanceKlass___pn0ALStateVector__v_;
-text: .text%__1cIAndINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cIciObjectOis_null_object6kM_i_;
text: .text%__1cNIdealLoopTreeNDCE_loop_body6M_v_;
text: .text%__1cNprefetchwNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXmembar_release_lockNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3277,10 +2079,8 @@
text: .text%__1cMPhaseChaitinSbuild_ifg_physical6MpnMResourceArea__I_;
text: .text%__1cNPhaseCoalescePcoalesce_driver6M_v_;
text: .text%__1cNdecI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSComputeAdapterInfoHdo_long6M_v_;
text: .text%__1cOGenerateOopMapJdo_astore6Mi_v_;
text: .text%__1cSTailCalljmpIndNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cIciObjectMhas_encoding6M_i_;
text: .text%__1cMrcx_RegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIMulLNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cHPhiNodeKmake_blank6FpnENode_2_p0_;
@@ -3291,11 +2091,7 @@
text: .text%JVM_GetMethodIxByteCode;
text: .text%JVM_GetMethodIxExceptionIndexes;
text: .text%JVM_GetMethodIxExceptionsCount;
-text: .text%__1cENodeUdepends_only_on_test6kM_i_;
-text: .text%__1cXmembar_acquire_lockNodePoper_input_base6kM_I_;
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
-text: .text%__1cNGrowableArray4nLKlassHandle__Icontains6kMrkn0A__i_;
-text: .text%__1cLGCTaskQdDueue2t6Mi_v_;
text: .text%__1cNaddL_rRegNodeErule6kM_I_;
text: .text%__1cGGCTask2t6Mn0AEKindEkind__v_;
text: .text%__1cZSerialOldToYoungRootsTaskEname6M_pc_;
@@ -3312,7 +2108,6 @@
text: .text%__1cUWaitForBarrierGCTaskIwait_for6M_v_;
text: .text%__1cUWaitForBarrierGCTaskIdestruct6M_v_;
text: .text%__1cUWaitForBarrierGCTaskHdestroy6Fp0_v_;
-text: .text%__1cUWaitForBarrierGCTask2t6Mi_v_;
text: .text%__1cUWaitForBarrierGCTaskGcreate6F_p0_;
text: .text%__1cNBarrierGCTaskIdestruct6M_v_;
text: .text%__1cNBarrierGCTaskOdo_it_internal6MpnNGCTaskManager_I_v_;
@@ -3324,35 +2119,21 @@
text: .text%__1cSCardTableExtensionRscavenge_contents6MpnQObjectStartArray_pnMMutableSpace_pnIHeapWord_pnSPSPromotionManager__v_;
text: .text%__1cHThreadsZcreate_thread_roots_tasks6FpnLGCTaskQdDueue__v_;
text: .text%__1cKPSYoungGenLswap_spaces6M_v_;
-text: .text%__1cUPSAdaptiveSizePolicybPcompute_survivor_space_size_and_threshold6MiiL_i_;
text: .text%__1cUParallelScavengeHeapQresize_young_gen6MLL_v_;
-text: .text%__1cUPSAdaptiveSizePolicyPupdate_averages6MiLL_v_;
-text: .text%__1cKPSYoungGenRresize_generation6MLL_i_;
text: .text%__1cKPSYoungGenGresize6MLL_v_;
text: .text%__1cKPSYoungGenNresize_spaces6MLL_v_;
-text: .text%__1cHMatcherKcan_be_arg6Fi_i_;
-text: .text%__1cHMatcherQis_spillable_arg6Fi_i_;
-text: .text%__1cUPSAdaptiveSizePolicyOshould_full_GC6ML_i_;
text: .text%__1cSAdaptiveSizePolicybIupdate_minor_pause_young_estimator6Md_v_;
text: .text%__1cUPSAdaptiveSizePolicybGupdate_minor_pause_old_estimator6Md_v_;
text: .text%__1cNsubL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMStartOSRNodeGOpcode6kM_i_;
text: .text%__1cRsubI_rReg_memNodeErule6kM_I_;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cXmembar_acquire_lockNodeHtwo_adr6kM_I_;
text: .text%__1cNandI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cNcmovI_regNodePoper_input_base6kM_I_;
text: .text%__1cMURShiftINodeJideal_reg6kM_I_;
text: .text%__1cMorI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cLRShiftINodeJideal_reg6kM_I_;
-text: .text%__1cLklassItableRinitialize_itable6M_v_;
text: .text%__1cLklassVtableQfill_in_mirandas6Mri_v_;
text: .text%__1cRandI_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cSmembar_releaseNodePoper_input_base6kM_I_;
-text: .text%__1cFKlassZcan_be_primary_super_slow6kM_i_;
-text: .text%__1cJrRegLOperFclone6kM_pnIMachOper__;
text: .text%__1cFStateR_sub_Op_LoadKlass6MpknENode__v_;
-text: .text%__1cRmethodDataOopDescJis_mature6kM_i_;
text: .text%__1cJcmpOpOperEless6kM_i_;
text: .text%__1cFKlassWappend_to_sibling_list6M_v_;
text: .text%__1cOcompL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3361,39 +2142,23 @@
text: .text%__1cRshrI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIAndINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cTjava_lang_ThrowableNset_backtrace6FpnHoopDesc_2_v_;
-text: .text%__1cPcmovI_reg_gNodeMideal_Opcode6kM_i_;
text: .text%__1cIAndINodeGmul_id6kM_pknEType__;
text: .text%__1cTClassLoadingServiceScompute_class_size6FpnNinstanceKlass__L_;
text: .text%__1cLklassVtableQget_num_mirandas6FpnMklassOopDesc_pnPobjArrayOopDesc_4_i_;
-text: .text%__1cIVerifierQrelax_verify_for6FpnHoopDesc__i_;
-text: .text%__1cLklassVtablebKcompute_vtable_size_and_num_mirandas6Fri1pnMklassOopDesc_pnPobjArrayOopDesc_nLAccessFlags_pnHoopDesc_pnNsymbolOopDesc_5_v_;
text: .text%__1cPClassFileParserbAparse_classfile_attributes6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cRaddI_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cVjava_lang_ClassLoaderRis_trusted_loader6FpnHoopDesc__i_;
-text: .text%__1cNmethodOopDescMsort_methods6FpnPobjArrayOopDesc_222_v_;
text: .text%__1cQSystemDictionaryQadd_to_hierarchy6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cPClassFileParserUcompute_oop_map_size6MnTinstanceKlassHandle_ii_i_;
-text: .text%__1cPClassFileParserOparseClassFile6MnMsymbolHandle_nGHandle_2r1pnGThread__nTinstanceKlassHandle__;
text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v_;
-text: .text%__1cPClassFileParserNfill_oop_maps6MnTinstanceKlassHandle_ii_v_;
text: .text%__1cPClassFileParserbDcompute_transitive_interfaces6MnTinstanceKlassHandle_nOobjArrayHandle_pnGThread__2_;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbCcheck_super_interface_access6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserYcheck_super_class_access6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cPClassFileParserQparse_interfaces6MnSconstantPoolHandle_nGHandle_2pnGThread__nOobjArrayHandle__;
text: .text%__1cPClassFileParserTparse_constant_pool6MpnGThread__nSconstantPoolHandle__;
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_;
-text: .text%__1cTClassLoadingServiceTnotify_class_loaded6FpnNinstanceKlass_i_v_;
text: .text%__1cLklassItableZsetup_itable_offset_table6FnTinstanceKlassHandle__v_;
-text: .text%__1cPClassFileParserMparse_fields6MnSconstantPoolHandle_ipnUFieldAllocationCount_pnOobjArrayHandle_pnGThread__nPtypeArrayHandle__;
-text: .text%__1cPClassFileParserNparse_methods6MnSconstantPoolHandle_ipnLAccessFlags_ppnPobjArrayOopDesc_66pnGThread__nOobjArrayHandle__;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%__1cPClassFileParserbBparse_constant_pool_entries6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cIUniverseTflush_dependents_on6FnTinstanceKlassHandle__v_;
-text: .text%__1cKoopFactoryQnew_constantPool6FipnGThread__pnTconstantPoolOopDesc__;
-text: .text%__1cRconstantPoolKlassIallocate6MipnGThread__pnTconstantPoolOopDesc__;
text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassbBdo_local_static_fields_impl6FnTinstanceKlassHandle_pFpnPfieldDescriptor_pnGThread__v5_v_;
text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
@@ -3402,9 +2167,6 @@
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cNinstanceKlassQeager_initialize6MpnGThread__v_;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cQSystemDictionaryVresolve_super_or_fail6FnMsymbolHandle_1nGHandle_2pnGThread__pnMklassOopDesc__;
-text: .text%__1cNinstanceKlassZcan_be_primary_super_slow6kM_i_;
text: .text%__1cKTypeRawPtrEmake6FpC_pk0_;
text: .text%__1cScompI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cScompI_rReg_memNodePoper_input_base6kM_I_;
@@ -3413,11 +2175,8 @@
text: .text%__1cOMethodLivenessRinit_basic_blocks6M_v_;
text: .text%__1cOMethodLivenessNinit_gen_kill6M_v_;
text: .text%__1cOMethodLivenessQcompute_liveness6M_v_;
-text: .text%__1cFKlassRoop_is_methodData6kM_i_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnMsymbolHandle_nGHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cQSystemDictionaryRfind_shared_class6FnMsymbolHandle__pnMklassOopDesc__;
@@ -3428,77 +2187,47 @@
text: .text%__1cPClassFileParserbKparse_classfile_sourcefile_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cKciTypeFlowLStateVectorGdo_ldc6MpnQciBytecodeStream__v_;
text: .text%__1cMPhaseIterGVNIoptimize6M_v_;
-text: .text%__1cOrFlagsRegUOperFclone6kM_pnIMachOper__;
text: .text%__1cNmulL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cMrdi_RegPOperJnum_edges6kM_I_;
text: .text%__1cRsalI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLklassVtableYadd_new_mirandas_to_list6FpnNGrowableArray4CpnNmethodOopDesc___pnPobjArrayOopDesc_6pnMklassOopDesc__v_;
text: .text%__1cQPackageHashtableMcompute_hash6Mpkci_I_;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cRsalL_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cIConINodeHget_int6kMpi_i_;
text: .text%__1cJMarkSweepSFollowStackClosureHdo_void6M_v_;
-text: .text%__1cICallNodeRis_CallStaticJava6kM_pknSCallStaticJavaNode__;
text: .text%__1cLOpaque2NodeGOpcode6kM_i_;
text: .text%__1cOGenerateOopMapJppdupswap6Mipkc_v_;
-text: .text%__1cILoopNode2t6MpnENode_2_v_;
text: .text%__1cJloadBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPClassFileStreamGget_u86MpnGThread__X_;
text: .text%__1cKstoreINodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cTconvI2L_reg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cScompP_mem_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIVerifierRverify_byte_codes6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cIRewriterHrewrite6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cIRewriterScompute_index_maps6FnSconstantPoolHandle_rpnIintArray_rpnIintStack__v_;
-text: .text%__1cIRewriterXnew_constant_pool_cache6FrnIintArray_pnGThread__nXconstantPoolCacheHandle__;
-text: .text%__1cIintArray2t6Mii_v_;
text: .text%__1cNinstanceKlassNrewrite_class6MpnGThread__v_;
-text: .text%__1cKoopFactoryVnew_constantPoolCache6FipnGThread__pnYconstantPoolCacheOopDesc__;
-text: .text%__1cNinstanceKlassWadd_loader_constraints6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cNinstanceKlassLverify_code6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cWconstantPoolCacheKlassIallocate6MipnGThread__pnYconstantPoolCacheOopDesc__;
text: .text%__1cYconstantPoolCacheOopDescKinitialize6MrnIintArray__v_;
text: .text%__1cFframeWsender_for_entry_frame6kMpnLRegisterMap__0_;
text: .text%__1cHPhiNodeDcmp6kMrknENode__I_;
-text: .text%__1cSmembar_releaseNodeHtwo_adr6kM_I_;
text: .text%__1cSObjectSynchronizerJnotifyall6FnGHandle_pnGThread__v_;
text: .text%__1cKoopFactoryWnew_permanent_intArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cPClassFileParserVparse_exception_table6MIInSconstantPoolHandle_pnGThread__nPtypeArrayHandle__;
-text: .text%__1cPClassFileParserbSparse_constant_pool_interfacemethodref_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cWCountInterfacesClosureEdoit6MpnMklassOopDesc_i_v_;
text: .text%__1cMtlsLoadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNmodI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cNtestL_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cRaddI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIConFNodeGOpcode6kM_i_;
text: .text%__1cLOpaque1NodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cTconvI2L_reg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNSharedRuntimebOraw_exception_handler_for_return_address6FpC_1_;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
-text: .text%__1cOMethodLivenessKBasicBlockPmerge_exception6MnGBitMap__i_;
-text: .text%__1cTconvI2L_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIAndINodeKmul_opcode6kM_i_;
text: .text%__1cIAndINodeKadd_opcode6kM_i_;
-text: .text%__1cPcmovI_reg_gNodeJnum_opnds6kM_I_;
text: .text%__1cKCMoveINodeGOpcode6kM_i_;
-text: .text%__1cKarrayKlassMoop_is_array6kM_i_;
text: .text%__1cIRootNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPloadConUL32NodeHsize_of6kM_I_;
text: .text%__1cJAssemblerEandq6MpnMRegisterImpl_i_v_;
text: .text%__1cLClassLoaderOlookup_package6Fpkc_pnLPackageInfo__;
text: .text%__1cQPackageHashtableJget_entry6MiIpkcL_pnLPackageInfo__;
-text: .text%__1cIGraphKitRmerge_fast_memory6MpnENode_2i_v_;
text: .text%JVM_Clone;
text: .text%__1cLklassItableTcompute_itable_size6FnOobjArrayHandle__i_;
-text: .text%__1cUCallCompiledJavaNodeGOpcode6kM_i_;
text: .text%__1cPsalI_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKadd_n_reqs6FpnENode_1_v_: graphKit.o;
text: .text%__1cSTailCalljmpIndNodeMideal_Opcode6kM_i_;
text: .text%__1cQComputeCallStackJdo_double6M_v_;
text: .text%__1cKciTypeFlowLStateVectorMdo_putstatic6MpnQciBytecodeStream__v_;
-text: .text%__1cLClassLoaderLadd_package6Fpkci_i_;
text: .text%__1cIGraphKitHopt_iff6MpnENode_2_2_;
-text: .text%__1cIGraphKitOmake_merge_mem6MpnENode_22_v_;
text: .text%__1cGEventsDlog6FpkcE_v_;
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cSsafePoint_pollNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3506,29 +2235,16 @@
text: .text%__1cPshrI_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseWensure_phis_everywhere6M_v_;
text: .text%__1cNsubL_rRegNodeErule6kM_I_;
-text: .text%__1cNIdealLoopTreeUiteration_split_impl6MpnOPhaseIdealLoop_rnJNode_List__v_;
-text: .text%__1cNIdealLoopTreebBpolicy_do_remove_empty_loop6MpnOPhaseIdealLoop__i_;
-text: .text%__1cNIdealLoopTreeOpolicy_peeling6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cIBoolNodeZis_counted_loop_exit_test6M_i_;
-text: .text%__1cJloadCNodeHtwo_adr6kM_I_;
text: .text%__1cUPSMarkSweepDecoratorVdestination_decorator6F_p0_;
-text: .text%__1cTGeneratePairingInfoRpossible_gc_point6MpnOBytecodeStream__i_;
-text: .text%__1cENode2n6FL_pv_;
text: .text%__1cSvframeStreamCommonZsecurity_get_caller_frame6Mi_v_;
text: .text%__1cKBufferBlob2n6FLI_pv_;
text: .text%__1cFParseKarray_load6MnJBasicType__v_;
-text: .text%__1cICodeBlob2t6Mpkcii_v_;
text: .text%__1cKBufferBlob2t6Mpkci_v_;
text: .text%__1cKBufferBlobGcreate6Fpkci_p0_;
text: .text%__1cKciTypeFlowLStateVectorLdo_putfield6MpnQciBytecodeStream__v_;
text: .text%__1cHnmethodNscope_desc_at6MpC_pnJScopeDesc__;
-text: .text%__1cHnmethodJcode_size6kM_i_;
-text: .text%__1cRtestP_reg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cRtestP_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cOPhaseIdealLoopQset_subtree_ctrl6MpnENode__v_;
-text: .text%__1cOjmpLoopEndNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_i_v_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNinstanceKlassbBcall_class_initializer_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cNinstanceKlassRclass_initializer6M_pnNmethodOopDesc__;
text: .text%__1cNinstanceKlassWcall_class_initializer6MpnGThread__v_;
@@ -3536,19 +2252,11 @@
text: .text%__1cNinstanceKlassbJset_initialization_state_and_notify6Mn0AKClassState_pnGThread__v_;
text: .text%__1cNRelocIteratorTlocs_and_index_size6Fii_i_;
text: .text%__1cMrdi_RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cFTypeDCeq6kMpknEType__i_;
-text: .text%__1cJLoadCNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cNtestL_regNodeHtwo_adr6kM_I_;
text: .text%__1cTconvL2I_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cMrax_RegLOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cNmodI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cNSignatureInfoIdo_short6M_v_;
text: .text%JVM_GetFieldIxModifiers;
-text: .text%__1cNsubL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cNandL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cNsubL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cTMachCallRuntimeNodePret_addr_offset6M_i_;
text: .text%__1cOcompiledVFrameEcode6kM_pnHnmethod__;
text: .text%__1cICodeHeapTmark_segmap_as_used6MLL_v_;
@@ -3563,21 +2271,17 @@
text: .text%__1cILRG_List2t6MI_v_;
text: .text%__1cHMatcherLreturn_addr6kM_i_;
text: .text%__1cSindIndexOffsetOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cGBundlePinitialize_nops6FppnIMachNode__v_;
text: .text%__1cOMachPrologNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cHMemNodeHsize_of6kM_I_;
text: .text%__1cNSignatureInfoIdo_float6M_v_;
text: .text%__1cRaddI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRmulI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cFParseNadd_safepoint6M_v_;
text: .text%__1cFStateT_sub_Op_CheckCastPP6MpknENode__v_;
text: .text%__1cRaddI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOCompiledRFrameEinit6M_v_;
text: .text%__1cGvframeDtop6kM_p0_;
-text: .text%__1cPsarI_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cRmethodDataOopDescYcompute_extra_data_count6Fii_i_;
text: .text%__1cPcheckCastPPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIciObjectIis_klass6M_i_;
text: .text%__1cFStateM_sub_Op_SubI6MpknENode__v_;
text: .text%__1cRxorI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cNloadConP0NodeHsize_of6kM_I_;
@@ -3585,76 +2289,42 @@
text: .text%__1cJAssemblerEsubq6MpnMRegisterImpl_2_v_;
text: .text%__1cXJNI_ArgumentPusherVaArgHiterate6ML_v_;
text: .text%__1cTresource_free_bytes6FpcL_v_;
-text: .text%__1cNSingletonBlobMdo_unloading6MpnRBoolObjectClosure_pnKOopClosure_i_v_;
text: .text%__1cUPSMarkSweepDecoratorPadjust_pointers6M_v_;
-text: .text%__1cUPSMarkSweepDecoratorHcompact6Mi_v_;
text: .text%__1cUPSMarkSweepDecoratorKprecompact6M_v_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeMideal_Opcode6kM_i_;
text: .text%__1cRindIndexScaleOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cRindIndexScaleOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cPCountedLoopNodeHsize_of6kM_I_;
text: .text%__1cENodeHrm_prec6MI_v_;
-text: .text%__1cHAddNodeGis_Add6kM_pk0_;
text: .text%__1cHCompilebAvarargs_C_out_slots_killed6kM_I_;
-text: .text%__1cTMachCallRuntimeNodeSis_MachCallRuntime6M_p0_;
-text: .text%__1cMrax_RegIOperJnum_edges6kM_I_;
text: .text%__1cICodeHeapLmerge_right6MpnJFreeBlock__v_;
-text: .text%__1cNaddI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNmulL_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cWandI_rReg_imm65535NodeMideal_Opcode6kM_i_;
-text: .text%__1cKReturnNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cRjmpConU_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cLjmpConUNodeUshort_branch_version6M_pnIMachNode__;
text: .text%__1cRjmpConU_shortNodeJlabel_set6MrnFLabel_I_v_;
-text: .text%__1cRjmpConU_shortNodeJis_Branch6kM_I_;
-text: .text%__1cKcmpOpUOperFclone6kM_pnIMachOper__;
-text: .text%__1cRtestP_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cFMutexbLwait_for_lock_blocking_implementation6MpnKJavaThread__v_;
-text: .text%__1cIregDOperJnum_edges6kM_I_;
-text: .text%__1cPciInstanceKlassTis_java_lang_Object6M_i_;
text: .text%__1cSciExceptionHandlerLcatch_klass6M_pnPciInstanceKlass__;
text: .text%__1cSindIndexOffsetOperNconstant_disp6kM_i_;
text: .text%__1cIAndLNodeGadd_id6kM_pknEType__;
text: .text%__1cLConvL2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQleaPIdxScaleNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIAndLNodeImul_ring6kMpknEType_3_3_;
-text: .text%__1cRaddP_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMloadConLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHMatcherQpost_fast_unlock6FpknENode__i_;
text: .text%__1cFStateV_sub_Op_MemBarRelease6MpknENode__v_;
text: .text%__1cOleaPIdxOffNodeMideal_Opcode6kM_i_;
-text: .text%__1cILoopNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cScompI_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cScompI_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerDorq6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cScompI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cKJNIHandlesOdestroy_global6FpnI_jobject_i_v_;
text: .text%__1cPcmpFastLockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXmembar_release_lockNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTcompareAndSwapLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNmethodOopDescTset_native_function6MpC_v_;
text: .text%__1cKciTypeFlowLStateVectorJhalf_type6FpnGciType__3_;
-text: .text%__1cQmerge_point_safe6FpnENode__i_: loopopts.o;
-text: .text%__1cRaddL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cHMatcherUc_calling_convention6FpnLOptoRegPair_I_v_;
-text: .text%__1cPCallRuntimeNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cUjni_invoke_nonstatic6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cQSystemDictionaryRnumber_of_classes6F_i_;
text: .text%__1cNaddL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNxorI_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cWCallLeafNoFPDirectNodePoper_input_base6kM_I_;
-text: .text%__1cENodeHget_int6kMpi_i_;
-text: .text%__1cPCountedLoopNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cJLoadFNodeGOpcode6kM_i_;
text: .text%__1cQSystemDictionarybBresolve_array_class_or_null6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
-text: .text%__1cNincI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cPClassFileParserbEparse_constant_pool_long_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cPcmovI_reg_lNodePoper_input_base6kM_I_;
text: .text%__1cJAssemblerEleaq6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cNinstanceKlassQarray_klass_impl6MipnGThread__pnMklassOopDesc__;
text: .text%__1cJloadINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHTypePtrFxmeet6kMpknEType__3_;
-text: .text%__1cNprefetchwNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cFKlassTarray_klass_or_null6M_pnMklassOopDesc__;
text: .text%__1cIPhaseIFGYCompute_Effective_Degree6M_v_;
text: .text%__1cbCfind_class_from_class_loader6FpnHJNIEnv__nMsymbolHandle_CnGHandle_3CpnGThread__pnH_jclass__;
@@ -3667,46 +2337,33 @@
text: .text%__1cScompU_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cRNativeGeneralJumpQjump_destination6kM_pC_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cWCallLeafNoFPDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_;
-text: .text%__1cSvframeStreamCommonYfill_from_compiled_frame6MpnHnmethod_i_v_;
text: .text%__1cNandL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cHnmethodQis_native_method6kM_i_;
text: .text%__1cTleaPIdxScaleOffNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNmulL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cODataRelocationGoffset6M_i_;
text: .text%__1cODataRelocationJset_value6MpC_v_;
text: .text%__1cKRelocationRpd_set_data_value6MpCl_v_;
text: .text%__1cLOptoRuntimeJstub_name6FpC_pkc_;
-text: .text%__1cIMulINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cFStateO_sub_Op_StoreB6MpknENode__v_;
text: .text%__1cRaddL_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cIregFOperJnum_edges6kM_I_;
text: .text%__1cRandI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIRootNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cIRootNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOleaPIdxOffNodePoper_input_base6kM_I_;
text: .text%__1cJcmpOpOperKless_equal6kM_i_;
text: .text%__1cNmethodOopDescVset_signature_handler6MpC_v_;
text: .text%__1cIMulLNodeGmul_id6kM_pknEType__;
-text: .text%__1cMrep_stosNodeHtwo_adr6kM_I_;
text: .text%__1cHMemNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cNsubI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHMemNodeScalculate_adr_type6FpknEType_pknHTypePtr__6_;
text: .text%__1cRmulI_rReg_immNodeErule6kM_I_;
text: .text%__1cURethrowExceptionNodePoper_input_base6kM_I_;
text: .text%__1cNaddP_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateP_sub_Op_RShiftI6MpknENode__v_;
-text: .text%__1cKstoreLNodeHtwo_adr6kM_I_;
text: .text%__1cNnegI_rRegNodeMideal_Opcode6kM_i_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodePoper_input_base6kM_I_;
text: .text%__1cbFloadConL_0x6666666666666667NodeErule6kM_I_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cIGraphKitNstore_barrier6MpnENode_22_v_;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cNloadKlassNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSmembar_acquireNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cMoutputStreamMdo_vsnprintf6FpcLpkcpnR__va_list_element_irL_3_;
text: .text%__1cMoutputStreamFprint6MpkcE_v_;
text: .text%__1cMURShiftLNodeJideal_reg6kM_I_;
text: .text%__1cZPhaseConservativeCoalesce2t6MrnMPhaseChaitin__v_;
@@ -3716,58 +2373,36 @@
text: .text%__1cZPhaseConservativeCoalesceGverify6M_v_;
text: .text%__1cQComputeCallStackIdo_short6M_v_;
text: .text%__1cNFingerprinterHdo_long6M_v_;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cSsafePoint_pollNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNloadConL0NodeLbottom_type6kM_pknEType__;
-text: .text%__1cJimmL0OperJconstantL6kM_x_;
-text: .text%__1cWandI_rReg_imm65535NodePoper_input_base6kM_I_;
text: .text%__1cIAndINodeJideal_reg6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerKverify_oop6MpnMRegisterImpl_nITosState__v_;
-text: .text%__1cYexternal_word_RelocationJpack_data6M_i_;
-text: .text%__1cJimmP0OperFclone6kM_pnIMachOper__;
-text: .text%__1cKRelocationYruntime_address_to_index6FpC_l_;
text: .text%__1cOemit_d32_reloc6FrnKCodeBuffer_inJrelocInfoJrelocType_i_v_;
text: .text%__1cYexternal_word_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cRsalL_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cLPhaseValues2T5B6M_v_;
text: .text%__1cNstoreImmBNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateQ_sub_Op_URShiftL6MpknENode__v_;
text: .text%__1cJNode_ListEyank6MpnENode__v_;
-text: .text%__1cNxorI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNxorI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cJAssemblerEmovq6MpnMRegisterImpl_l_v_;
text: .text%jni_ExceptionCheck: jni.o;
text: .text%__1cMFastLockNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cTCallDynamicJavaNodeEhash6kM_I_;
-text: .text%__1cMalloc_object6FpnH_jclass_pnGThread__pnPinstanceOopDesc__: jni.o;
-text: .text%__1cRshrL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIXorINodeLbottom_type6kM_pknEType__;
text: .text%__1cJAssemblerEsubq6MpnMRegisterImpl_i_v_;
text: .text%__1cNloadConL0NodeMideal_Opcode6kM_i_;
-text: .text%__1cLPcDescCacheKpc_desc_at6kMpnHnmethod_pC_pnGPcDesc__;
text: .text%__1cKBlock_ListGinsert6MIpnFBlock__v_;
-text: .text%__1cKtype2basic6FpknEType__nJBasicType__;
-text: .text%__1cQleaPIdxScaleNodeLbottom_type6kM_pknEType__;
text: .text%__1cKklassKlassOklass_oop_size6kM_i_;
-text: .text%__1cIGraphKitOnull_check_oop6MpnKRegionNode_pnENode_i_4_;
-text: .text%__1cJloadCNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRxorI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cKTypeRawPtrEmake6FnHTypePtrDPTR__pk0_;
text: .text%__1cJCodeCacheEfree6FpnICodeBlob__v_;
text: .text%__1cICodeHeapPadd_to_freelist6MpnJHeapBlock__v_;
text: .text%__1cICodeHeapKdeallocate6Mpv_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cJVectorSetGslamin6Mrk0_v_;
text: .text%__1cFStateQ_sub_Op_URShiftI6MpknENode__v_;
text: .text%__1cScompI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRaddI_rReg_memNodeErule6kM_I_;
-text: .text%__1cYexternal_word_RelocationWfix_relocation_at_move6Ml_v_;
text: .text%__1cKRelocationYpd_get_address_from_code6M_pC_;
text: .text%__1cRxorI_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cXJNI_ArgumentPusherVaArgIget_long6M_v_;
text: .text%__1cNandL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOCompilerOracleMshould_print6FnMmethodHandle__i_;
text: .text%__1cNstoreImmBNodeFreloc6kM_i_;
text: .text%__1cJcmpOpOperNgreater_equal6kM_i_;
text: .text%__1cKBufferBlobEfree6Fp0_v_;
@@ -3776,12 +2411,9 @@
text: .text%__1cOGenerateOopMapIppop_any6Mi_v_;
text: .text%__1cKNode_ArrayFclear6M_v_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
-text: .text%__1cJAssemblerFpushq6MpnMRegisterImpl__v_;
-text: .text%__1cIRootNodeHis_Root6M_p0_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cIJumpDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
text: .text%__1cRsalL_rReg_immNodeErule6kM_I_;
-text: .text%__1cPstoreImmI16NodeHtwo_adr6kM_I_;
text: .text%__1cQjava_lang_StringOchar_converter6FnGHandle_HHpnGThread__1_;
text: .text%jni_NewObject: jni.o;
text: .text%__1cNaddP_rRegNodeMideal_Opcode6kM_i_;
@@ -3790,38 +2422,25 @@
text: .text%__1cOPhaseIdealLoopNreorg_offsets6MpnNIdealLoopTree__v_;
text: .text%__1cNtestL_regNodeErule6kM_I_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
-text: .text%__1cNstoreImmINodeHtwo_adr6kM_I_;
text: .text%__1cIGraphKitNshared_unlock6MpnENode_2_v_;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cRsarI_rReg_immNodeErule6kM_I_;
-text: .text%__1cNtestL_regNodePoper_input_base6kM_I_;
text: .text%__1cRsarL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMindirectOperNbase_position6kM_i_;
text: .text%__1cMindirectOperNconstant_disp6kM_i_;
text: .text%__1cMTailCallNodeKmatch_edge6kMI_I_;
text: .text%__1cKciTypeFlowLStateVectorGdo_new6MpnQciBytecodeStream__v_;
-text: .text%__1cHMatcherPprior_fast_lock6FpknENode__i_;
text: .text%__1cGIfNodeMdominated_by6MpnENode_pnMPhaseIterGVN__v_;
text: .text%__1cFStateV_sub_Op_MemBarAcquire6MpknENode__v_;
text: .text%__1cNSharedRuntimeQfind_callee_info6FpnKJavaThread_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
text: .text%__1cFKlassDLCA6Mp0_1_;
-text: .text%__1cRtestP_reg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cRtestP_reg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRtestP_reg_memNodeJnum_opnds6kM_I_;
text: .text%__1cHciKlassVleast_common_ancestor6Mp0_1_;
-text: .text%__1cUmembar_cpu_orderNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cUmembar_cpu_orderNodeLbottom_type6kM_pknEType__;
-text: .text%__1cTcompareAndSwapLNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cNSCMemProjNodeLbottom_type6kM_pknEType__;
-text: .text%__1cTcompareAndSwapLNodeHtwo_adr6kM_I_;
text: .text%__1cJScopeDescGsender6kM_p0_;
text: .text%__1cSindIndexOffsetOperOindex_position6kM_i_;
text: .text%__1cSindIndexOffsetOperNbase_position6kM_i_;
-text: .text%__1cNSharedRuntimeOresolve_helper6FpnKJavaThread_iipnGThread__nMmethodHandle__;
text: .text%__1cNSafePointNodeMpush_monitor6MpknMFastLockNode__v_;
-text: .text%__1cNSharedRuntimeSresolve_sub_helper6FpnKJavaThread_iipnGThread__nMmethodHandle__;
text: .text%__1cOcompiledVFrameGsender6kM_pnGvframe__;
-text: .text%__1cNtestU_regNodeHtwo_adr6kM_I_;
text: .text%__1cTciConstantPoolCache2t6MpnFArena_i_v_;
text: .text%__1cNGrowableArray4Cpv_2t6MpnFArena_iirk0_v_;
text: .text%__1cKstoreFNodePoper_input_base6kM_I_;
@@ -3832,13 +2451,11 @@
text: .text%__1cNcmovI_regNodeMideal_Opcode6kM_i_;
text: .text%__1cKCompiledIC2t6MpnKNativeCall__v_;
text: .text%__1cFStateN_sub_Op_LoadL6MpknENode__v_;
-text: .text%__1cNmodI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cSCallLeafDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNSignatureInfoHdo_char6M_v_;
text: .text%__1cNtestU_regNodeMideal_Opcode6kM_i_;
text: .text%__1cFStateQ_sub_Op_CallLeaf6MpknENode__v_;
text: .text%__1cRAbstractAssemblerFflush6M_v_;
-text: .text%__1cJloadLNodeIpeephole6MpnFBlock_ipnNPhaseRegAlloc_ri_pnIMachNode__;
text: .text%__1cJloadLNodeFreloc6kM_i_;
text: .text%__1cSCallLeafDirectNodeFreloc6kM_i_;
text: .text%__1cIGraphKitNgen_checkcast6MpnENode_2p2_2_;
@@ -3847,50 +2464,31 @@
text: .text%__1cXmembar_release_lockNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cJAssemblerEmovq6MpnMRegisterImpl_2_v_;
text: .text%__1cRmulL_rReg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cRsubI_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cFframeRretrieve_receiver6MpnLRegisterMap__pnHoopDesc__;
text: .text%__1cPBytecode_invokeNstatic_target6MpnGThread__nMmethodHandle__;
text: .text%jni_NewGlobalRef: jni.o;
-text: .text%__1cKciTypeFlowFRangeSprivate_copy_count6kMpn0AGJsrSet__i_;
-text: .text%__1cOleaPIdxOffNodeJnum_opnds6kM_I_;
text: .text%__1cOPhaseIdealLoopLdo_split_if6MpnENode__v_;
text: .text%__1cNandI_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cHOrINodeGadd_id6kM_pknEType__;
text: .text%__1cIPhaseCFGOinsert_goto_at6MII_v_;
-text: .text%__1cOPhaseIdealLoop2t6MrnMPhaseIterGVN_pk0i_v_;
text: .text%__1cOPhaseIdealLoopPbuild_loop_tree6M_v_;
text: .text%__1cRsubI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMinINodeLbottom_type6kM_pknEType__;
-text: .text%__1cOjmpLoopEndNodeHtwo_adr6kM_I_;
text: .text%__1cJLoadBNodeJideal_reg6kM_I_;
-text: .text%__1cNnegI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateS_sub_Op_FastUnlock6MpknENode__v_;
text: .text%__1cXmembar_release_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMVirtualSpaceNreserved_size6kM_L_;
text: .text%__1cScompU_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRsarI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKStoreFNodeGOpcode6kM_i_;
-text: .text%__1cLCastP2LNodeJideal_reg6kM_I_;
text: .text%__1cPcmovI_reg_gNodeErule6kM_I_;
-text: .text%__1cFStateP_sub_Op_CastP2L6MpknENode__v_;
-text: .text%__1cScompU_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cScompU_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cScompU_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cWCallLeafNoFPDirectNodeRis_safepoint_node6kM_i_;
text: .text%__1cQjava_lang_ThreadRset_thread_status6FpnHoopDesc_n0AMThreadStatus__v_;
text: .text%__1cWCallLeafNoFPDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJAssemblerDjcc6Mn0AJCondition_pCnJrelocInfoJrelocType__v_;
text: .text%__1cKstoreFNodeMideal_Opcode6kM_i_;
text: .text%__1cIimmFOperJconstantF6kM_f_;
-text: .text%__1cNcmovI_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
-text: .text%__1cNcmovI_regNodeJnum_opnds6kM_I_;
-text: .text%__1cJAssemblerEmovq6MnHAddress_i_v_;
-text: .text%__1cIciObjectJis_method6M_i_;
-text: .text%__1cIciObjectOis_method_data6M_i_;
text: .text%__1cIDivINodeLbottom_type6kM_pknEType__;
text: .text%__1cHOrINodeJideal_reg6kM_I_;
text: .text%__1cNcmovI_regNodeMcisc_operand6kM_i_;
@@ -3900,63 +2498,40 @@
text: .text%__1cJloadFNodeMideal_Opcode6kM_i_;
text: .text%__1cbFunnecessary_membar_volatileNodeMideal_Opcode6kM_i_;
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cIAndLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIAndLNodeKadd_opcode6kM_i_;
text: .text%__1cFStateO_sub_Op_StoreC6MpknENode__v_;
text: .text%__1cIAndLNodeKmul_opcode6kM_i_;
text: .text%__1cRaddL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMrep_stosNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXmembar_acquire_lockNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cFParseJdo_ifnull6MnIBoolTestEmask__v_;
-text: .text%__1cMtlsLoadPNodeHtwo_adr6kM_I_;
-text: .text%__1cIGraphKitOset_pair_local6MipnENode__v_;
-text: .text%__1cJLoadCNodeJideal_reg6kM_I_;
-text: .text%__1cPcmovI_reg_lNodeMideal_Opcode6kM_i_;
-text: .text%__1cJCodeCacheXmark_for_deoptimization6FpnMklassOopDesc__i_;
text: .text%__1cMrcx_RegIOperEtype6kM_pknEType__;
-text: .text%__1cLConvL2INodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
text: .text%__1cHNTarjanDDFS6Fp0rnJVectorSet_pnOPhaseIdealLoop_pI_i_;
text: .text%__1cHNTarjanIsetdepth6MIpI_v_;
text: .text%__1cIMulLNodeKmul_opcode6kM_i_;
text: .text%__1cIMulLNodeKadd_opcode6kM_i_;
text: .text%jni_SetLongField: jni.o;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%__1cOPhaseIdealLoopRinit_dom_lca_tags6M_v_;
text: .text%__1cKstoreLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLPcDescCacheLadd_pc_desc6MpnGPcDesc__v_;
-text: .text%__1cScheck_phi_clipping6FpnHPhiNode_rpnHConNode_rI45rpnENode_5_i_: cfgnode.o;
text: .text%__1cJloadSNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cTconvI2L_reg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cRsubI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMloadConFNodeMideal_Opcode6kM_i_;
-text: .text%__1cTC2IAdapterGeneratorUgenerate_c2i_adapter6FnMmethodHandle__pnKC2IAdapter__;
-text: .text%__1cKCompiledICIis_clean6kM_i_;
text: .text%__1cNaddP_rRegNodeErule6kM_I_;
-text: .text%__1cRmulL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cNmethodOopDescVclear_native_function6M_v_;
-text: .text%__1cICodeBlobOis_java_method6kM_i_;
-text: .text%__1cKVtableStubSpd_code_size_limit6Fi_i_;
-text: .text%__1cIUniverseWis_out_of_memory_error6FnGHandle__i_;
text: .text%__1cTjava_lang_ThrowableTfill_in_stack_trace6FnGHandle_pnGThread__v_;
text: .text%__1cTjava_lang_ThrowableQclear_stacktrace6FpnHoopDesc__v_;
text: .text%__1cKJavaThreadGactive6F_p0_;
text: .text%JVM_FillInStackTrace;
text: .text%__1cTjava_lang_ThrowableTfill_in_stack_trace6FnGHandle__v_;
text: .text%__1cSInterpreterRuntimePset_bcp_and_mdp6FpCpnKJavaThread__v_;
-text: .text%__1cKJavaThreadNreguard_stack6MpC_i_;
text: .text%__1cFframeZinterpreter_frame_set_bcp6MpC_v_;
text: .text%jni_DeleteGlobalRef: jni.o;
-text: .text%__1cKCompiledICZcompute_monomorphic_entry6FnMmethodHandle_nLKlassHandle_iirnOCompiledICInfo_pnGThread__v_;
-text: .text%__1cNGrowableArray4nMmethodHandle__Icontains6kMrkn0A__i_;
text: .text%__1cLOpaque2NodeEhash6kM_I_;
text: .text%__1cICodeHeapLfirst_block6kM_pnJHeapBlock__;
text: .text%__1cJCodeCacheFfirst6F_pnICodeBlob__;
-text: .text%__1cJBytecodesRspecial_length_at6FpC_i_;
text: .text%__1cFParseGdo_new6M_v_;
text: .text%__1cFParseFBlockMadd_new_path6M_i_;
-text: .text%__1cLklassItablebFinitialize_itable_for_interface6MpnMklassOopDesc_pnRitableMethodEntry__v_;
text: .text%__1cJimmI0OperJnum_edges6kM_I_;
text: .text%__1cRmulI_rReg_immNodeMcisc_operand6kM_i_;
text: .text%__1cICodeHeapMmax_capacity6kM_L_;
@@ -3974,103 +2549,65 @@
text: .text%__1cRmulI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHciKlassGloader6M_pnHoopDesc__;
text: .text%__1cIConDNodeGOpcode6kM_i_;
-text: .text%__1cNandI_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cLRethrowNodeEhash6kM_I_;
-text: .text%__1cTC2IAdapterGeneratorSstd_verified_entry6FnMmethodHandle__pC_;
text: .text%__1cIDivLNodeGOpcode6kM_i_;
-text: .text%__1cNandI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cGThreadOis_Java_thread6kM_i_;
text: .text%__1cSmembar_releaseNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cHMatcherQinline_cache_reg6F_i_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeJnum_opnds6kM_I_;
text: .text%__1cbBInterpreterCodeletInterfaceRcode_size_to_size6kMi_i_;
text: .text%__1cbBInterpreterCodeletInterfaceKinitialize6MpnEStub_i_v_;
text: .text%jni_NewLocalRef: jni.o;
text: .text%__1cSSetupItableClosureEdoit6MpnMklassOopDesc_i_v_;
-text: .text%__1cLOptoRuntimebAresolve_opt_virtual_call_C6FpnKJavaThread__pC_;
text: .text%__1cPstoreImmI16NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLRShiftLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIemit_d166FrnKCodeBuffer_i_v_;
text: .text%__1cKimmI16OperIconstant6kM_l_;
text: .text%__1cPClassFileParserbNparse_classfile_inner_classes_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__H_;
text: .text%__1cMloadConFNodeLbottom_type6kM_pknEType__;
-text: .text%__1cENodeMis_CatchProj6kM_pknNCatchProjNode__;
text: .text%__1cJCodeCacheNalive_nmethod6FpnICodeBlob__pnHnmethod__;
text: .text%__1cJAssemblerGmovzbl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cIVMThreadMis_VM_thread6kM_i_;
-text: .text%__1cPcmovI_reg_lNodeJnum_opnds6kM_I_;
text: .text%__1cMloadConLNodeHsize_of6kM_I_;
text: .text%__1cOMacroAssemblerSload_unsigned_byte6MpnMRegisterImpl_nHAddress__i_;
-text: .text%__1cTconvI2L_reg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNaddL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cKstoreFNodeJnum_opnds6kM_I_;
text: .text%__1cNaddL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cSComputeAdapterInfoJdo_double6M_v_;
-text: .text%__1cLimmUL32OperFclone6kM_pnIMachOper__;
-text: .text%__1cPloadConUL32NodeFclone6kM_pnENode__;
text: .text%__1cLLShiftLNodeJideal_reg6kM_I_;
-text: .text%__1cMtlsLoadPNodePoper_input_base6kM_I_;
text: .text%__1cPlocal_vsnprintf6FpcLpkcpnR__va_list_element__i_;
-text: .text%__1cSComputeAdapterInfoHdo_bool6M_v_;
text: .text%jio_vsnprintf;
-text: .text%__1cURethrowExceptionNodeGpinned6kM_i_;
text: .text%__1cNstoreImmINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIAndLNodeJideal_reg6kM_I_;
-text: .text%__1cURethrowExceptionNodeHtwo_adr6kM_I_;
text: .text%__1cNDispatchTableJset_entry6MirnKEntryPoint__v_;
text: .text%jio_snprintf;
text: .text%__1cNSafePointNodeKgrow_stack6MpnIJVMState_I_v_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeErule6kM_I_;
text: .text%__1cURethrowExceptionNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRsarL_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cTcompareAndSwapLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetCPMethodModifiers;
text: .text%__1cFStateR_sub_Op_SafePoint6MpknENode__v_;
-text: .text%__1cSsafePoint_pollNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cOCompilerOraclePshould_break_at6FnMmethodHandle__i_;
-text: .text%__1cJloadCNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQorI_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cPsarI_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLRShiftLNodeLbottom_type6kM_pknEType__;
-text: .text%__1cKReturnNode2t6MpnENode_2222_v_;
text: .text%__1cKReturnNodeJideal_reg6kM_I_;
text: .text%__1cNinstanceKlassPadd_implementor6MpnMklassOopDesc__v_;
text: .text%__1cRPrivilegedElementKinitialize6MpnMvframeStream_pnHoopDesc_p0pnGThread__v_;
text: .text%JVM_DoPrivileged;
text: .text%__1cOGenerateOopMapXreplace_all_CTS_matches6MnNCellTypeState_1_v_;
-text: .text%__1cNIdealLoopTreeMis_loop_exit6kMpnENode_pnOPhaseIdealLoop__2_;
text: .text%__1cPpoll_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cSsafePoint_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSsafePoint_pollNodeFreloc6kM_i_;
text: .text%__1cLStrCompNodeGOpcode6kM_i_;
text: .text%__1cJOopMapSet2t6M_v_;
-text: .text%__1cKloadUBNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cNobjArrayKlassOmulti_allocate6MipiipnGThread__pnHoopDesc__;
text: .text%__1cKstoreCNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cENodeGOpcode6kM_i_;
-text: .text%__1cOLibraryCallKitNtry_to_inline6M_i_;
text: .text%__1cNFingerprinterHdo_bool6M_v_;
text: .text%__1cOPhaseIdealLoopUsplit_if_with_blocks6MrnJVectorSet_rnKNode_Stack__v_;
text: .text%__1cNmethodOopDescbDbuild_interpreter_method_data6FnMmethodHandle_pnGThread__v_;
text: .text%__1cQLibraryIntrinsicIgenerate6MpnIJVMState__2_;
text: .text%__1cLOopRecorderIoop_size6M_i_;
-text: .text%__1cHnmethodOexception_size6kM_i_;
-text: .text%__1cHnmethodPscopes_pcs_size6kM_i_;
text: .text%__1cYDebugInformationRecorderIpcs_size6M_i_;
text: .text%__1cYDebugInformationRecorderJdata_size6M_i_;
-text: .text%__1cHnmethodQscopes_data_size6kM_i_;
-text: .text%__1cHnmethodJstub_size6kM_i_;
text: .text%__1cHnmethodKtotal_size6kM_i_;
text: .text%__1cNtestU_regNodeErule6kM_I_;
text: .text%__1cJOopMapSetJheap_size6kM_i_;
-text: .text%__1cICodeBlobWfix_relocation_at_move6Ml_v_;
-text: .text%__1cKCodeBufferJcopy_code6MpnICodeBlob__v_;
-text: .text%__1cNRelocIteratorMcreate_index6FpnKCodeBuffer_pnJrelocInfo_4_4_;
-text: .text%__1cICodeBlobPallocation_size6FpnKCodeBuffer_ii_I_;
text: .text%__1cRAbstractAssemblerOcode_fill_byte6F_i_;
-text: .text%__1cICodeBlob2t6MpkcpnKCodeBuffer_iiipnJOopMapSet_i_v_;
text: .text%__1cMrdx_RegLOperEtype6kM_pknEType__;
-text: .text%__1cKCodeBufferPcopy_relocation6MpnICodeBlob__v_;
text: .text%__1cVPatchingRelocIteratorHprepass6M_v_;
text: .text%__1cVPatchingRelocIteratorIpostpass6M_v_;
text: .text%__1cJOopMapSetHcopy_to6MpC_v_;
@@ -4079,16 +2616,13 @@
text: .text%__1cOPhaseTransform2t6Mp0nFPhaseLPhaseNumber__v_;
text: .text%__1cJAssemblerDjmp6MnHAddress__v_;
text: .text%__1cOJNIHandleBlockRrebuild_free_list6M_v_;
-text: .text%__1cSstring_compareNodeZcheck_for_anti_dependence6kM_i_;
text: .text%jni_GetObjectArrayElement: jni.o;
text: .text%__1cKCompiledICSset_to_monomorphic6MrknOCompiledICInfo__v_;
-text: .text%__1cIDivINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cVCallRuntimeDirectNodeMideal_Opcode6kM_i_;
text: .text%__1cICmpDNodeGOpcode6kM_i_;
text: .text%__1cPcmovI_reg_gNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_AndI6MpknENode__v_;
text: .text%__1cHCompilebBregister_library_intrinsics6M_v_;
-text: .text%__1cNGrowableArray4CpnNCallGenerator__2t6Mii_v_;
text: .text%__1cETypeKInitialize6FpnHCompile__v_;
text: .text%__1cYDebugInformationRecorder2t6MpnLOopRecorder__v_;
text: .text%__1cOCompileWrapper2t6MpnHCompile__v_;
@@ -4110,12 +2644,9 @@
text: .text%__1cJStartNodeJideal_reg6kM_I_;
text: .text%__1cHMatcher2t6MrnJNode_List__v_;
text: .text%__1cFArena2t6ML_v_;
-text: .text%__1cIPhaseCFGOschedule_early6MrnJVectorSet_rnJNode_List_rnLBlock_Array__i_;
text: .text%__1cWNode_Backward_Iterator2t6MpnENode_rnJVectorSet_rnJNode_List_rnLBlock_Array__v_;
text: .text%__1cHMatcherFmatch6M_v_;
text: .text%__1cFStateM_sub_Op_Goto6MpknENode__v_;
-text: .text%__1cIPhaseCFGNschedule_late6MrnJVectorSet_rnJNode_List_rnNGrowableArray4CI___v_;
-text: .text%__1cIPhaseCFGQFind_Inner_Loops6M_v_;
text: .text%__1cIPhaseCFGQGlobalCodeMotion6MrnHMatcher_IrnJNode_List__v_;
text: .text%__1cIPhaseCFGYEstimate_Block_Frequency6M_v_;
text: .text%__1cIPhaseCFGJbuild_cfg6M_I_;
@@ -4123,7 +2654,6 @@
text: .text%__1cMPhaseChaitin2t6MIrnIPhaseCFG_rnHMatcher__v_;
text: .text%__1cMPhaseChaitinRRegister_Allocate6M_v_;
text: .text%__1cMPhaseChaitinGde_ssa6M_v_;
-text: .text%__1cMPhaseChaitinbGstretch_base_pointer_live_ranges6MpnMResourceArea__i_;
text: .text%__1cNPhaseRegAllocTpd_preallocate_hook6M_v_;
text: .text%__1cHMatcherPinit_spill_mask6MpnENode__v_;
text: .text%__1cHMatcherTFixup_Save_On_Entry6M_v_;
@@ -4136,30 +2666,21 @@
text: .text%__1cHCompileTframe_size_in_words6kM_i_;
text: .text%__1cOCompileWrapper2T6M_v_;
text: .text%__1cHCompileYinit_scratch_buffer_blob6M_v_;
-text: .text%__1cHCompileYinit_scratch_locs_memory6M_v_;
text: .text%__1cNPhasePeephole2t6MpnNPhaseRegAlloc_rnIPhaseCFG__v_;
-text: .text%__1cJPhaseLive2T6M_v_;
-text: .text%__1cNPhasePeephole2T6M_v_;
text: .text%__1cHCompileGOutput6M_v_;
text: .text%__1cHCompileQShorten_branches6MpnFLabel_ri333_v_;
text: .text%__1cHCompileLFill_buffer6M_v_;
text: .text%__1cHCompileTFillExceptionTables6MIpI1pnFLabel__v_;
text: .text%__1cHCompileRScheduleAndBundle6M_v_;
text: .text%__1cOMachPrologNodeFreloc6kM_i_;
-text: .text%__1cNtestU_regNodePoper_input_base6kM_I_;
-text: .text%__1cWemit_exception_handler6FrnKCodeBuffer__v_;
text: .text%__1cWsize_exception_handler6F_I_;
text: .text%__1cWImplicitExceptionTableIset_size6MI_v_;
text: .text%__1cNPhasePeepholeMdo_transform6M_v_;
text: .text%__1cMPhaseChaitinMfixup_spills6M_v_;
-text: .text%__1cMPhaseChaitin2T6M_v_;
text: .text%__1cNPhaseRegAllocPalloc_node_regs6Mi_v_;
-text: .text%__1cKCodeBufferOrelocate_stubs6M_v_;
-text: .text%__1cIPhaseCFGLRemoveEmpty6M_v_;
text: .text%__1cLdo_liveness6FpnNPhaseRegAlloc_pnIPhaseCFG_pnKBlock_List_ipnFArena_pnEDict__v_: buildOopMap.o;
text: .text%__1cHCompileMBuildOopMaps6M_v_;
text: .text%__1cMPhaseChaitinbApost_allocate_copy_removal6M_v_;
-text: .text%__1cNGrowableArray4CpnJNode_List__2t6Mii_v_;
text: .text%__1cRsarL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cOGenerateOopMapIcopy_cts6MpnNCellTypeState_2_i_;
text: .text%__1cFStateM_sub_Op_CmpL6MpknENode__v_;
@@ -4167,70 +2688,44 @@
text: .text%__1cFStateN_sub_Op_LoadS6MpknENode__v_;
text: .text%__1cSInterpreterRuntimeOprofile_method6FpnKJavaThread_pC_i_;
text: .text%__1cOCompiledRFrame2t6MnFframe_pnKJavaThread_pnGRFrame__v_;
-text: .text%__1cKC2IAdapterOis_c2i_adapter6kM_i_;
text: .text%__1cOCompiledRFrameKtop_method6kM_nMmethodHandle__;
-text: .text%__1cOCompiledRFrameLis_compiled6kM_i_;
-text: .text%__1cRmethodDataOopDescKinitialize6MpnNmethodOopDesc__v_;
text: .text%__1cKoopFactoryOnew_methodData6FnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
-text: .text%__1cRmethodDataOopDescbGcompute_allocation_size_in_bytes6FpnNmethodOopDesc__i_;
text: .text%__1cPmethodDataKlassIallocate6MnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cNxorI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRmethodDataOopDescbGcompute_allocation_size_in_words6FpnNmethodOopDesc__i_;
text: .text%__1cRmethodDataOopDescPpost_initialize6MpnOBytecodeStream__v_;
text: .text%__1cHRetNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateO_sub_Op_Return6MpknENode__v_;
text: .text%__1cHRetNodeFreloc6kM_i_;
-text: .text%__1cZInterpreterMacroAssemblerNdispatch_base6MnITosState_ppCi_v_;
-text: .text%__1cZCallInterpreterDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cNloadConP0NodeFclone6kM_pnENode__;
-text: .text%__1cOClearArrayNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cKScopeValueJread_from6FpnTDebugInfoReadStream__p0_;
text: .text%__1cOcompiledVFrameScreate_stack_value6kMpnKScopeValue__pnKStackValue__;
text: .text%__1cQleaPIdxScaleNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRindIndexScaleOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cIGraphKitNallocate_heap6MpnENode_222pknITypeFunc_pC22ipknKTypeOopPtr__2_;
-text: .text%__1cPciInstanceKlassbBcompute_shared_has_subklass6M_i_;
text: .text%__1cNSignatureInfoHdo_byte6M_v_;
-text: .text%__1cQorI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cKCompiledICSset_ic_destination6MpC_v_;
-text: .text%__1cNIdealLoopTreePiteration_split6MpnOPhaseIdealLoop_rnJNode_List__v_;
text: .text%__1cNandI_rRegNodeErule6kM_I_;
-text: .text%__1cRsarI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cIMulINodeGadd_id6kM_pknEType__;
text: .text%__1cVcompiledICHolderKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cNmodI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulINodeImul_ring6kMpknEType_3_3_;
text: .text%__1cKloadUBNodeMideal_Opcode6kM_i_;
-text: .text%__1cHBitDataKis_BitData6M_i_;
text: .text%__1cQsalI_rReg_CLNodeMideal_Opcode6kM_i_;
-text: .text%__1cNaddP_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerEcmpq6MnHAddress_i_v_;
text: .text%__1cNloadConP0NodeFreloc6kM_i_;
-text: .text%__1cMLinkResolverYresolve_interface_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
text: .text%__1cSmembar_acquireNodeLbottom_type6kM_pknEType__;
text: .text%__1cOMacroAssemblerKincrementq6MpnMRegisterImpl_i_v_;
text: .text%__1cRsarI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_next6MnITosState_i_v_;
-text: .text%__1cNGrowableArray4nMmethodHandle__2t6Mii_v_;
text: .text%__1cLConvL2INodeJideal_reg6kM_I_;
-text: .text%__1cNGrowableArray4nLKlassHandle__2t6Mii_v_;
-text: .text%__1cNmethodOopDescThas_native_function6kM_i_;
text: .text%JVM_GetClassNameUTF;
-text: .text%__1cMPrefetchNodeJideal_reg6kM_I_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cNprefetchwNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFStateQ_sub_Op_Prefetch6MpknENode__v_;
text: .text%__1cOjmpLoopEndNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cNprefetchwNodeFreloc6kM_i_;
text: .text%__1cIAddLNodeJideal_reg6kM_I_;
text: .text%__1cILocation2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cKstoreCNodeFreloc6kM_i_;
-text: .text%__1cNdecI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNmethodOopDescWis_vanilla_constructor6kM_i_;
text: .text%__1cWCallLeafNoFPDirectNodeKmethod_set6Ml_v_;
text: .text%__1cOPhaseIdealLoopOplace_near_use6kMpnENode__2_;
text: .text%__1cHi2bNodeMideal_Opcode6kM_i_;
-text: .text%__1cNLocationValueLis_location6kM_i_;
text: .text%__1cNLocationValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cIMulLNodeJideal_reg6kM_I_;
text: .text%__1cNsubL_rRegNodeHtwo_adr6kM_I_;
@@ -4241,33 +2736,22 @@
text: .text%__1cKcmpOpUOperEless6kM_i_;
text: .text%__1cVcompiledICHolderKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cVcompiledICHolderKlassToop_adjust_pointers6MpnHoopDesc__i_;
-text: .text%__1cKReflectionGinvoke6FnTinstanceKlassHandle_nMmethodHandle_nGHandle_inOobjArrayHandle_nJBasicType_4ipnGThread__pnHoopDesc__;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
-text: .text%__1cQsalI_rReg_CLNodePoper_input_base6kM_I_;
text: .text%__1cbIjava_lang_reflect_AccessibleObjectIoverride6FpnHoopDesc__C_;
text: .text%__1cKReflectionDbox6FpnGjvalue_nJBasicType_pnGThread__pnHoopDesc__;
-text: .text%__1cMLinkResolverbHlinktime_resolve_interface_method6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_43ipnGThread__v_;
text: .text%__1cLBoxLockNodeEhash6kM_I_;
text: .text%__1cJOopMapSetMgrow_om_data6M_v_;
-text: .text%__1cRxorI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cKciTypeFlowFBlockQset_private_copy6Mi_v_;
text: .text%__1cWandI_rReg_imm65535NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cWandI_rReg_imm65535NodeErule6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerGpush_i6MpnMRegisterImpl__v_;
text: .text%__1cNcmovI_regNodeErule6kM_I_;
text: .text%__1cRsalL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNGrowableArray4CpnKInlineTree__Egrow6Mi_v_;
-text: .text%__1cSComputeAdapterInfoIdo_short6M_v_;
-text: .text%__1cNtestL_regNodeJnum_opnds6kM_I_;
text: .text%__1cLConvF2DNodeGOpcode6kM_i_;
text: .text%__1cISubLNodeLbottom_type6kM_pknEType__;
text: .text%__1cSmembar_acquireNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSmembar_acquireNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNaddP_rRegNodeLbottom_type6kM_pknEType__;
text: .text%__1cNmodL_rRegNodeErule6kM_I_;
-text: .text%__1cRsalI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerDret6Mi_v_;
-text: .text%__1cRshrI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cbDjava_lang_reflect_ConstructorPparameter_types6FpnHoopDesc__2_;
text: .text%__1cKReflectionSinvoke_constructor6FpnHoopDesc_nOobjArrayHandle_pnGThread__2_;
text: .text%__1cbDjava_lang_reflect_ConstructorFclazz6FpnHoopDesc__2_;
@@ -4298,72 +2782,40 @@
text: .text%__1cWconstantPoolCacheKlassOklass_oop_size6kM_i_;
text: .text%__1cQconstMethodKlassOklass_oop_size6kM_i_;
text: .text%__1cPmethodDataKlassOklass_oop_size6kM_i_;
-text: .text%__1cGThreadOis_interrupted6Fp0i_i_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cJHashtableHoops_do6MpnKOopClosure__v_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIPSOldGenHcompact6M_v_;
-text: .text%__1cSsafePoint_pollNodeJnum_opnds6kM_I_;
text: .text%__1cFJNIidHoops_do6MpnKOopClosure__v_;
-text: .text%__1cJvmSymbolsHoops_do6FpnKOopClosure_i_v_;
text: .text%__1cJHashtableGunlink6MpnRBoolObjectClosure__v_;
-text: .text%__1cSReferenceProcessorHoops_do6MpnKOopClosure__v_;
text: .text%__1cQObjectStartArrayFreset6M_v_;
text: .text%__1cIPSOldGenPadjust_pointers6M_v_;
text: .text%__1cScompP_mem_rRegNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJloadBNodeFreloc6kM_i_;
text: .text%__1cUandI_rReg_imm255NodeMideal_Opcode6kM_i_;
-text: .text%__1cNGrowableArray4CpnKciTypeFlowFBlock__Icontains6kMrk2_i_;
text: .text%__1cScompP_mem_rRegNodeFreloc6kM_i_;
-text: .text%__1cNcmovP_regNodePoper_input_base6kM_I_;
-text: .text%__1cTno_rax_rdx_RegIOperJnum_edges6kM_I_;
text: .text%__1cKciTypeFlowLStateVectorJdo_aaload6MpnQciBytecodeStream__v_;
-text: .text%__1cJAssemblerMemit_operand6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerMemit_operand6MpnRFloatRegisterImpl_pnMRegisterImpl_4nHAddressLScaleFactor_ipCrknQRelocationHolder__v_;
text: .text%__1cNaddL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cLRethrowNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cRaddI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRsubI_rReg_memNodeHtwo_adr6kM_I_;
text: .text%__1cIModLNodeGOpcode6kM_i_;
text: .text%__1cIMaxINodeLbottom_type6kM_pknEType__;
text: .text%__1cFParseMdo_checkcast6M_v_;
text: .text%__1cIMulINodeGmul_id6kM_pknEType__;
-text: .text%__1cMloadConINodeGis_Con6kM_I_;
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cIMulDNodeGOpcode6kM_i_;
text: .text%__1cRsarL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNsubL_rRegNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cHnmethodUnumber_of_dependents6kM_i_;
-text: .text%__1cTconvI2L_reg_memNodeFreloc6kM_i_;
-text: .text%__1cSComputeAdapterInfoIdo_float6M_v_;
text: .text%__1cFParseLarray_store6MnJBasicType__v_;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc_ii_v_: nativeLookup.o;
text: .text%JVM_FindClassFromClassLoader;
text: .text%JVM_FindClassFromBootLoader;
-text: .text%__1cZCallInterpreterDirectNodeSalignment_required6kM_i_;
-text: .text%__1cZCallInterpreterDirectNodePoper_input_base6kM_I_;
-text: .text%__1cZCallInterpreterDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRmulL_rReg_immNodeMcisc_operand6kM_i_;
-text: .text%__1cNloadConI0NodeGis_Con6kM_I_;
-text: .text%__1cKstoreBNodeHtwo_adr6kM_I_;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc__v_: nativeLookup.o;
-text: .text%__1cKRegionNodeUdepends_only_on_test6kM_i_;
text: .text%__1cMMergeMemNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cFciEnvZcall_has_multiple_targets6FpnNinstanceKlass_nMsymbolHandle_3ri_i_;
-text: .text%__1cMadjust_check6FpnENode_11iipnMPhaseIterGVN__v_: ifnode.o;
-text: .text%__1cPsalI_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cTconvI2L_reg_memNodeHtwo_adr6kM_I_;
text: .text%__1cLPhaseValuesKis_IterGVN6M_pnMPhaseIterGVN__;
text: .text%__1cQciTypeArrayKlassJmake_impl6FnJBasicType__p0_;
text: .text%__1cFStateM_sub_Op_AddL6MpknENode__v_;
text: .text%__1cQciTypeArrayKlassEmake6FnJBasicType__p0_;
-text: .text%__1cUmembar_cpu_orderNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cUmembar_cpu_orderNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNSCMemProjNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cSCompareAndSwapNodeJideal_reg6kM_I_;
-text: .text%__1cFStateW_sub_Op_MemBarCPUOrder6MpknENode__v_;
text: .text%__1cKciTypeFlowLStateVectorMdo_checkcast6MpnQciBytecodeStream__v_;
-text: .text%__1cMorI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMrax_RegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%lwp_mutex_init: os_solaris.o;
text: .text%__1cJStubQdDueueGcommit6Mi_v_;
@@ -4375,79 +2827,49 @@
text: .text%__1cOGenerateOopMapLmonitor_pop6M_nNCellTypeState__;
text: .text%__1cJAssemblerEmovl6MnHAddress_i_v_;
text: .text%__1cKoopFactoryNnew_charArray6FpkcpnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cPshrI_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cQjava_lang_StringTcreate_oop_from_str6FpkcpnGThread__pnHoopDesc__;
-text: .text%__1cRmulI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cNandI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cbACallCompiledJavaDirectNodeHtwo_adr6kM_I_;
text: .text%__1cIModINodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cNinstanceKlassVis_same_class_package6MpnHoopDesc_pnNsymbolOopDesc__i_;
-text: .text%__1cbLtransform_int_divide_to_long_multiply6FpnIPhaseGVN_pnENode_i_3_: divnode.o;
text: .text%__1cTno_rax_rdx_RegIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cJAssemblerGmovzwl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cRmulL_rReg_immNodeErule6kM_I_;
text: .text%__1cZCallDynamicJavaDirectNodePoper_input_base6kM_I_;
-text: .text%__1cHTypePtrFempty6kM_i_;
-text: .text%__1cOMacroAssemblerSload_unsigned_word6MpnMRegisterImpl_nHAddress__i_;
text: .text%__1cOGenerateOopMapXdo_return_monitor_check6M_v_;
-text: .text%__1cNobjArrayKlassQarray_klass_impl6MipnGThread__pnMklassOopDesc__;
text: .text%__1cFStateP_sub_Op_ConvL2I6MpknENode__v_;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIGraphKitMnext_monitor6M_i_;
text: .text%__1cLBoxLockNode2t6Mi_v_;
-text: .text%__1cRmulI_rReg_immNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cJloadFNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cIplus_adr6FpnENode_l_1_: generateOptoStub.o;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
-text: .text%__1cHConNode2t6MpknEType__v_;
text: .text%__1cMloadConDNodeMideal_Opcode6kM_i_;
-text: .text%__1cNCompileBrokerTcreate_compile_task6FpnMCompileQdDueue_inMmethodHandle_i3ipkcii_pnLCompileTask__;
-text: .text%__1cLCompileTaskKinitialize6MinMmethodHandle_i1ipkcii_v_;
text: .text%__1cNCompileBrokerNallocate_task6F_pnLCompileTask__;
text: .text%__1cMCompileQdDueueDadd6MpnLCompileTask__v_;
text: .text%__1cRxorI_rReg_memNodeErule6kM_I_;
text: .text%__1cMCompileQdDueueDget6M_pnLCompileTask__;
text: .text%__1cRsarI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQleaPIdxScaleNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cSCompileTaskWrapper2t6MpnLCompileTask__v_;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cXmembar_acquire_lockNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_MulL6MpknENode__v_;
text: .text%__1cCosPhint_no_preempt6F_v_;
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_i_v_;
-text: .text%__1cObox_handleNodePoper_input_base6kM_I_;
text: .text%__1cNCompileBrokerJfree_task6FpnLCompileTask__v_;
text: .text%__1cSCompileTaskWrapper2T6M_v_;
text: .text%__1cLCompileTaskEfree6M_v_;
text: .text%__1cNnegI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKDictionarybAis_valid_protection_domain6MiInMsymbolHandle_nGHandle_2_i_;
text: .text%__1cMincI_memNodeMideal_Opcode6kM_i_;
text: .text%__1cRandL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cRaddI_rReg_memNodeFreloc6kM_i_;
text: .text%__1cQjava_lang_StringXcreate_oop_from_unicode6FpHipnGThread__pnHoopDesc__;
text: .text%jni_NewString: jni.o;
-text: .text%__1cRxorI_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_AndL6MpknENode__v_;
text: .text%__1cKloadUBNodePoper_input_base6kM_I_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cVcompiledICHolderKlassXoop_is_compiledICHolder6kM_i_;
-text: .text%__1cJStoreNodeUdepends_only_on_test6kM_i_;
text: .text%__1cPcmovI_reg_lNodeErule6kM_I_;
-text: .text%__1cOloadConL32NodePoper_input_base6kM_I_;
text: .text%__1cNSharedRuntimebJcontinuation_for_implicit_exception6FpnKJavaThread_pCn0AVImplicitExceptionKind__3_;
-text: .text%__1cRtestI_reg_immNodeHtwo_adr6kM_I_;
text: .text%__1cIimmDOperJconstantD6kM_d_;
text: .text%__1cFParsePmerge_exception6Mi_v_;
text: .text%__1cXmembar_acquire_lockNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cNGrowableArray4CpnIciObject__2t6MpnFArena_iirk1_v_;
-text: .text%__1cICallInfoDset6MnLKlassHandle_1nMmethodHandle_2pnGThread__v_;
-text: .text%__1cZCallDynamicJavaDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cMLinkResolverbGruntime_resolve_interface_method6FrnICallInfo_nMmethodHandle_nLKlassHandle_nGHandle_4ipnGThread__v_;
-text: .text%__1cMLinkResolverWresolve_interface_call6FrnICallInfo_nGHandle_nLKlassHandle_4nMsymbolHandle_54iipnGThread__v_;
text: .text%__1cNGrowableArray4CpnIciObject__JappendAll6Mpk2_v_;
-text: .text%__1cFciEnv2t6MpnHJNIEnv__iii_v_;
-text: .text%__1cRtestP_reg_memNodeFreloc6kM_i_;
-text: .text%__1cNtestP_regNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cNGrowableArray4CpnIciMethod__2t6MpnFArena_iirk1_v_;
text: .text%__1cNGrowableArray4CpnHciKlass__2t6MpnFArena_iirk1_v_;
text: .text%__1cPciObjectFactory2t6MpnFArena_i_v_;
@@ -4461,49 +2883,36 @@
text: .text%__1cNCompileBrokerUpop_jni_handle_block6F_v_;
text: .text%__1cbBopt_virtual_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cNinstanceKlassbFlookup_method_in_all_interfaces6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateQ_sub_Op_FastLock6MpknENode__v_;
text: .text%__1cXmembar_acquire_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvD2I_reg_regNodeErule6kM_I_;
text: .text%__1cITemplateIbytecode6kM_nJBytecodesECode__;
-text: .text%__1cLOptoRuntimeRmultianewarray1_C6FpnMklassOopDesc_ipnKJavaThread__v_;
text: .text%__1cWImplicitExceptionTableCat6kMI_I_;
text: .text%__1cWImplicitExceptionTable2t6MpknHnmethod__v_;
text: .text%__1cLVtableStubsPstub_containing6FpC_pnKVtableStub__;
-text: .text%__1cLVtableStubsIcontains6FpC_i_;
text: .text%__1cNFingerprinterIdo_float6M_v_;
text: .text%__1cHnmethodbJcontinuation_for_implicit_exception6MpC_1_;
text: .text%__1cLRShiftLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cUjmpLoopEnd_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cNmodI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cUjmpLoopEnd_shortNodeMideal_Opcode6kM_i_;
text: .text%__1cKEntryPoint2t6MpC11111111_v_;
text: .text%jni_GetObjectClass: jni.o;
text: .text%__1cRappend_interfaces6FnOobjArrayHandle_ripnPobjArrayOopDesc__v_;
-text: .text%__1cRandI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubLNodeDsub6kMpknEType_3_3_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRtestI_reg_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cOloadConL32NodeHtwo_adr6kM_I_;
-text: .text%__1cQshrI_rReg_CLNodePoper_input_base6kM_I_;
text: .text%__1cSstring_compareNodePoper_input_base6kM_I_;
text: .text%__1cNcmovI_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMdecI_memNodeMideal_Opcode6kM_i_;
text: .text%__1cMrax_RegLOperEtype6kM_pknEType__;
-text: .text%__1cRmulI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cIXorINodeGadd_id6kM_pknEType__;
text: .text%__1cNtestP_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPcmovI_reg_gNodeHtwo_adr6kM_I_;
-text: .text%__1cOPhaseIdealLoopKclone_loop6MpnNIdealLoopTree_rnJNode_List_i_v_;
-text: .text%__1cHi2bNodePoper_input_base6kM_I_;
-text: .text%__1cRsalL_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cKBinaryNodeGOpcode6kM_i_;
text: .text%__1cNxorI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cFStateO_sub_Op_Binary6MpknENode__v_;
text: .text%JVM_GetClassLoader;
text: .text%__1cMstoreSSPNodeMideal_Opcode6kM_i_;
-text: .text%__1cNmulL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cRxorI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cINodeHashIround_up6FI_I_;
text: .text%__1cHCompileKinit_start6MpnJStartNode__v_;
text: .text%__1cOPhaseTransform2t6MpnFArena_nFPhaseLPhaseNumber__v_;
@@ -4511,127 +2920,63 @@
text: .text%__1cRaddP_rReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cINodeHash2t6MpnFArena_I_v_;
text: .text%__1cRaddI_rReg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cIJVMState2n6FL_pv_;
text: .text%__1cOMacroAssemblerFalign6Mi_v_;
-text: .text%__1cOleaPIdxOffNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cMdecI_memNodeJnum_opnds6kM_I_;
-text: .text%__1cIModINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMLinkResolverXresolve_invokeinterface6FrnICallInfo_nGHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%lwp_cond_init: os_solaris.o;
text: .text%__1cSmembar_releaseNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSmembar_releaseNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOPhaseIdealLoopVclone_up_backedge_goo6MpnENode_22_2_;
text: .text%__1cSInterpreterCodeletKinitialize6MpkcnJBytecodesECode__v_;
-text: .text%__1cTconvI2L_reg_regNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cNxorI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNaddP_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerZcheck_and_handle_popframe6MpnMRegisterImpl__v_;
text: .text%__1cOloadConL32NodeErule6kM_I_;
-text: .text%__1cOMacroAssemblerMcall_VM_base6MpnMRegisterImpl_22pCii_v_;
-text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
text: .text%__1cHi2bNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKcmpOpUOperKless_equal6kM_i_;
-text: .text%__1cWandI_rReg_imm65535NodeJnum_opnds6kM_I_;
text: .text%__1cFParseTprofile_switch_case6Mi_v_;
text: .text%__1cKNativeJumpbEcheck_verified_entry_alignment6FpC1_v_;
text: .text%__1cFParseSjump_switch_ranges6MpnENode_pnLSwitchRange_4i_v_;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
-text: .text%__1cUBytecode_tableswitchGlength6M_i_;
text: .text%__1cNandI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cNmodL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cMloadConLNodeFclone6kM_pnENode__;
-text: .text%__1cNtestU_regNodeJnum_opnds6kM_I_;
-text: .text%__1cIimmLOperFclone6kM_pnIMachOper__;
-text: .text%__1cRandL_rReg_immNodePoper_input_base6kM_I_;
text: .text%__1cOleaPIdxOffNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKstoreBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMmatch_option6FpknMJavaVMOption_pkcp4_i_: arguments.o;
-text: .text%__1cNCompileBrokerTis_not_compile_only6FnMmethodHandle__i_;
text: .text%__1cNCompileBrokerRassign_compile_id6FnMmethodHandle_i_I_;
-text: .text%__1cNCompileBrokerTis_compile_blocking6FnMmethodHandle_i_i_;
text: .text%__1cIMulFNodeGOpcode6kM_i_;
-text: .text%__1cNIdealLoopTreeQpolicy_peel_only6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cNIdealLoopTreeSpolicy_range_check6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cQSystemDictionaryPresolve_or_fail6FnMsymbolHandle_ipnGThread__pnMklassOopDesc__;
-text: .text%__1cNIdealLoopTreeMpolicy_align6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cNIdealLoopTreeNpolicy_unroll6kMpnOPhaseIdealLoop__i_;
text: .text%__1cNtestU_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNCompileBrokerZcompilation_is_prohibited6FnMmethodHandle_i_i_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFi_vi_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_and_dispatch6MpnITemplate_nITosState__v_;
text: .text%__1cITemplateIgenerate6MpnZInterpreterMacroAssembler__v_;
-text: .text%__1cKC2CompilerOneeds_adapters6M_i_;
-text: .text%__1cLServiceUtilLvisible_oop6FpnHoopDesc__i_;
text: .text%__1cITemplateKinitialize6MinITosState_1pFi_vi_v_;
text: .text%__1cNObjectMonitorGEnterI6MpnGThread__v_;
-text: .text%__1cIciMethodJhas_loops6kM_i_;
-text: .text%__1cIciMethodVshould_print_assembly6M_i_;
-text: .text%__1cOMacroAssemblerOcall_VM_helper6MpnMRegisterImpl_pCii_v_;
text: .text%__1cNloadConL0NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cZInterpreterMacroAssemblerMcall_VM_base6MpnMRegisterImpl_22pCii_v_;
-text: .text%__1cMincI_memNodeJnum_opnds6kM_I_;
-text: .text%__1cNCompileBrokerOcheck_break_at6FnMmethodHandle_iii_i_;
text: .text%__1cJAssemblerEcall6MrnFLabel_nJrelocInfoJrelocType__v_;
-text: .text%__1cNCompileBrokerQset_last_compile6FpnOCompilerThread_nMmethodHandle_ii_v_;
-text: .text%__1cNCompileBrokerbAeager_compile_c2i_adapters6FpnFciEnv_pnIciMethod__v_;
-text: .text%__1cNCompileBrokerbAeager_compile_i2c_adapters6FpnFciEnv_pnIciMethod__v_;
text: .text%__1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_;
text: .text%__1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_;
-text: .text%__1cMstoreSSPNodeHis_Copy6kM_I_;
text: .text%__1cQshrI_rReg_CLNodeMideal_Opcode6kM_i_;
-text: .text%__1cFciEnvPregister_method6MpnIciMethod_iiiiiipnKCodeBuffer_ipnJOopMapSet_pnVExceptionHandlerTable_pnWImplicitExceptionTable_pnQAbstractCompiler_ii_v_;
text: .text%__1cLAccessFlagsRatomic_clear_bits6Mi_v_;
-text: .text%__1cIciMethodQbreak_at_execute6M_i_;
text: .text%__1cFciEnvbOcheck_for_system_dictionary_modification6MpnIciMethod__v_;
-text: .text%__1cFciEnvbUsystem_dictionary_modification_counter_changed6M_i_;
text: .text%__1cMelapsedTimerDadd6M0_v_;
text: .text%__1cNCompileBrokerScollect_statistics6FpnOCompilerThread_nMelapsedTimer_pnLCompileTask__v_;
-text: .text%__1cJStartNodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cICodeHeapMinsert_after6MpnJFreeBlock_2_v_;
-text: .text%__1cKExceptionsNnew_exception6FpnGThread_nMsymbolHandle_3pnRJavaCallArguments_nGHandle_6_6_;
-text: .text%__1cFMutex2t6Mipkci_v_;
text: .text%__1cKloadUBNodeErule6kM_I_;
text: .text%__1cQsalL_rReg_CLNodeMideal_Opcode6kM_i_;
-text: .text%__1cbACallCompiledJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cbACallCompiledJavaDirectNodePoper_input_base6kM_I_;
-text: .text%__1cTbasictype2arraycopy6FnJBasicType_i_pC_;
-text: .text%__1cOLibraryCallKitQinline_arraycopy6M_i_;
text: .text%__1cPstoreImmI16NodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cLOptoRuntimeOarraycopy_Type6F_pknITypeFunc__;
-text: .text%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cLPcDescCache2t6M_v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
-text: .text%__1cHnmethodSresolve_JNIHandles6M_v_;
text: .text%__1cRmulL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cHnmethodLnew_nmethod6FnMmethodHandle_iiiiiipnYDebugInformationRecorder_pnKCodeBuffer_ipnJOopMapSet_pnVExceptionHandlerTable_pnWImplicitExceptionTable_pnQAbstractCompiler__p0_;
text: .text%__1cPcmovI_reg_lNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmFlagsFclear6M_v_;
text: .text%__1cHnmethod2n6FLi_pv_;
-text: .text%__1cHnmethod2t6MpnNmethodOopDesc_iiiiiiipnYDebugInformationRecorder_pnKCodeBuffer_ipnJOopMapSet_pnVExceptionHandlerTable_pnWImplicitExceptionTable_pnQAbstractCompiler__v_;
-text: .text%__1cNaddI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cKTypeRawPtrFxdual6kM_pknEType__;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
-text: .text%__1cICodeBlobJcopy_oops6MppnI_jobject_i_v_;
-text: .text%__1cFStateN_sub_Op_LoadC6MpknENode__v_;
-text: .text%__1cJloadCNodeFreloc6kM_i_;
text: .text%__1cFParseQjump_if_fork_int6MpnENode_2nIBoolTestEmask__pnGIfNode__;
text: .text%__1cWandI_rReg_imm65535NodeHtwo_adr6kM_I_;
-text: .text%__1cNdivL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cNmethodOopDescIset_code6MpnHnmethod__v_;
text: .text%__1cINodeHashUremove_useless_nodes6MrnJVectorSet__v_;
text: .text%__1cQUnique_Node_ListUremove_useless_nodes6MrnJVectorSet__v_;
text: .text%__1cKInlineTreeWbuild_inline_tree_root6F_p0_;
-text: .text%__1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod_ii_v_;
text: .text%__1cHCompileWprint_compile_messages6M_v_;
-text: .text%__1cPClassFileParserbGparse_constant_pool_double_entry6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cQsalI_rReg_CLNodeErule6kM_I_;
text: .text%__1cHCompileRbuild_start_state6MpnJStartNode_pknITypeFunc__pnIJVMState__;
text: .text%__1cHCompileVidentify_useful_nodes6MrnQUnique_Node_List__v_;
@@ -4641,42 +2986,27 @@
text: .text%__1cSPhaseRemoveUseless2t6MpnIPhaseGVN_pnQUnique_Node_List__v_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
text: .text%__1cHCompileLInline_Warm6M_i_;
-text: .text%__1cPno_rax_RegLOperJnum_edges6kM_I_;
text: .text%__1cMPhaseIterGVN2t6MpnIPhaseGVN__v_;
-text: .text%__1cJBytecodesDdef6Fn0AECode_pkc33nJBasicType_ii1_v_;
text: .text%__1cIciMethodRbuild_method_data6MnMmethodHandle__v_;
text: .text%__1cSstring_compareNodeErule6kM_I_;
text: .text%__1cbAfinal_graph_reshaping_walk6FrnKNode_Stack_pnENode_rnUFinal_Reshape_Counts__v_: compile.o;
-text: .text%__1cHCompileVfinal_graph_reshaping6M_i_;
-text: .text%__1cOcompI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cScompI_rReg_memNodeFreloc6kM_i_;
text: .text%__1cJStartNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNTemplateTableKtransition6FnITosState_1_v_;
text: .text%__1cIPhaseCCPJtransform6MpnENode__2_;
text: .text%__1cHCompileNreturn_values6MpnIJVMState__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorQset_entry_points6MnJBytecodesECode__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorWset_short_entry_points6MpnITemplate_rpC44444444_v_;
text: .text%__1cMPhaseIterGVN2t6Mp0_v_;
text: .text%__1cIPhaseCCP2t6MpnMPhaseIterGVN__v_;
-text: .text%__1cIPhaseCCP2T6M_v_;
text: .text%__1cIPhaseCCPHanalyze6M_v_;
text: .text%__1cIPhaseCCPMdo_transform6M_v_;
text: .text%__1cOcompI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNsubL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConPcNodeMideal_Opcode6kM_i_;
-text: .text%__1cKExceptionsG_throw6FpnGThread_pkcinGHandle__v_;
-text: .text%__1cKExceptionsRspecial_exception6FpnGThread_pkcinGHandle__i_;
-text: .text%__1cGThreadVset_pending_exception6MpnHoopDesc_pkci_v_;
-text: .text%__1cNandL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLklassItableUcompute_itable_index6FpnNmethodOopDesc__i_;
text: .text%__1cWpoll_return_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cWConstantPoolCacheEntrySset_interface_call6MnMmethodHandle_i_v_;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPClassFileParserUverify_constantvalue6MiinSconstantPoolHandle_pnGThread__v_;
-text: .text%__1cQsalI_rReg_CLNodeJnum_opnds6kM_I_;
-text: .text%__1cIMachNodeJis_MachIf6kM_pknKMachIfNode__;
text: .text%__1cPsalL_rReg_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cKExceptionsRspecial_exception6FpnGThread_pkcinMsymbolHandle_4_i_;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
text: .text%__1cOClearArrayNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cHMatcherbDinterpreter_frame_pointer_reg6F_i_;
@@ -4684,32 +3014,16 @@
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_53pnGThread__v_;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
text: .text%__1cKcmpOpUOperHgreater6kM_i_;
-text: .text%__1cNCompileBrokerUcheck_adapter_result6FnMmethodHandle_ippnMBasicAdapter__i_;
-text: .text%__1cJloadFNodeJnum_opnds6kM_I_;
text: .text%__1cYinternal_word_RelocationEtype6M_nJrelocInfoJrelocType__;
-text: .text%__1cSMachC2IEntriesNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cbFunnecessary_membar_volatileNodePoper_input_base6kM_I_;
text: .text%__1cRmulI_rReg_immNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cQPSIsAliveClosureLdo_object_b6MpnHoopDesc__i_;
-text: .text%__1cTCallInterpreterNodeSis_CallInterpreter6kM_pk0_;
-text: .text%__1cZCallInterpreterDirectNodePcompute_padding6kMi_i_;
-text: .text%__1cSMachC2IcheckICNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_epilog6MnITosState_i_v_;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_prolog6MnITosState_i_v_;
-text: .text%__1cZCallInterpreterDirectNodeKmethod_set6Ml_v_;
-text: .text%__1cXMachCallInterpreterNodePret_addr_offset6M_i_;
text: .text%__1cQjava_lang_StringPcreate_from_str6FpkcpnGThread__nGHandle__;
-text: .text%__1cLOptoRuntimeInew_Type6F_pknITypeFunc__;
text: .text%__1cLBoxLockNodeDcmp6kMrknENode__I_;
text: .text%__1cMTailCallNodeGOpcode6kM_i_;
text: .text%__1cJChunkPoolMfree_all_but6ML_v_;
-text: .text%__1cIGraphKitMnew_instance6MpnPciInstanceKlass__pnENode__;
-text: .text%__1cPcmpD_cc_regNodePoper_input_base6kM_I_;
text: .text%__1cRsalL_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLOptoRuntimeSnew_typeArray_Type6F_pknITypeFunc__;
-text: .text%__1cObox_handleNodeMideal_Opcode6kM_i_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
-text: .text%__1cIGraphKitJnew_array6MpnENode_nJBasicType_pknEType_pknMTypeKlassPtr__2_;
text: .text%__1cNdecL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cKJavaThreadZsecurity_get_caller_class6Mi_pnMklassOopDesc__;
text: .text%__1cZCallDynamicJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -4717,23 +3031,15 @@
text: .text%__1cRtestI_reg_immNodeErule6kM_I_;
text: .text%__1cIAddFNodeGOpcode6kM_i_;
text: .text%__1cSstring_compareNodeMideal_Opcode6kM_i_;
-text: .text%__1cNmethodOopDescWcompute_has_loops_flag6M_i_;
-text: .text%__1cKloadUBNodeJnum_opnds6kM_I_;
-text: .text%__1cNGrowableArray4CpnHoopDesc__2t6Mii_v_;
text: .text%__1cZCallDynamicJavaDirectNodeSalignment_required6kM_i_;
-text: .text%__1cXvirtual_call_RelocationJpack_data6M_i_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__;
text: .text%__1cQorI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cUParallelScavengeHeapIcapacity6kM_L_;
text: .text%__1cJAssemblerEcmpq6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cNnegI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cYinternal_word_RelocationJpack_data6M_i_;
-text: .text%__1cKsplit_once6FpnMPhaseIterGVN_pnENode_333_v_: cfgnode.o;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cPDictionaryEntryVadd_protection_domain6MpnHoopDesc__v_;
text: .text%__1cbIjava_lang_reflect_AccessibleObjectMset_override6FpnHoopDesc_C_v_;
text: .text%__1cRCardTableModRefBSPclear_MemRegion6MnJMemRegion__v_;
-text: .text%__1cOleaPIdxOffNodeLbottom_type6kM_pknEType__;
text: .text%__1cNdivL_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cFParsebLincrement_and_test_invocation_counter6Mi_v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
@@ -4742,28 +3048,14 @@
text: .text%__1cNobjArrayKlassWcompute_modifier_flags6kMpnGThread__i_;
text: .text%__1cScompL_rReg_immNodeMideal_Opcode6kM_i_;
text: .text%__1cTmembar_volatileNodeMideal_Opcode6kM_i_;
-text: .text%__1cTCallDynamicJavaNodeSis_CallDynamicJava6kM_pk0_;
-text: .text%__1cCosHSolarisFEventEpark6M_v_;
-text: .text%__1cIMinINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cODeoptimizationYtrap_state_is_recompiled6Fi_i_;
text: .text%__1cXSignatureHandlerLibraryKinitialize6F_v_;
text: .text%__1cXSignatureHandlerLibraryDadd6FnMmethodHandle__v_;
text: .text%__1cSInterpreterRuntimeTprepare_native_call6FpnKJavaThread_pnNmethodOopDesc__v_;
text: .text%__1cNGrowableArray4CL_Efind6kMrkL_i_;
-text: .text%__1cUandI_rReg_imm255NodePoper_input_base6kM_I_;
-text: .text%__1cSReferenceProcessorZadd_to_discovered_list_mt6MppnHoopDesc_23_v_;
text: .text%__1cSInterpreterRuntimeNquicken_io_cc6FpnKJavaThread__v_;
-text: .text%__1cJBytecodesDdef6Fn0AECode_pkc33nJBasicType_ii_v_;
text: .text%__1cHOrINodeIadd_ring6kMpknEType_3_3_;
-text: .text%__1cNObjectMonitorbAEntryQdDueue_SelectSuccessor6M_pnMObjectWaiter__;
-text: .text%__1cNObjectMonitorREntryQdDueue_insert6MpnMObjectWaiter_i_v_;
text: .text%__1cSobjArrayKlassKlassXallocate_objArray_klass6MinLKlassHandle_pnGThread__pnMklassOopDesc__;
-text: .text%__1cJAssemblerEpopq6MpnMRegisterImpl__v_;
text: .text%__1cSobjArrayKlassKlassbCallocate_objArray_klass_impl6FnYobjArrayKlassKlassHandle_inLKlassHandle_pnGThread__pnMklassOopDesc__;
-text: .text%__1cISubLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cMTypeKlassPtrRcast_to_exactness6kMi_pknEType__;
-text: .text%__1cNloadConI0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSComputeAdapterInfoHdo_char6M_v_;
text: .text%__1cKPerfMemoryFalloc6FL_pc_;
text: .text%__1cIPerfData2T6M_v_;
text: .text%__1cIPerfDataMcreate_entry6MnJBasicType_LL_v_;
@@ -4772,36 +3064,27 @@
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorEfrom6F_pnMRegisterImpl__;
text: .text%__1cXJNI_ArgumentPusherVaArgHget_int6M_v_;
text: .text%__1cIPerfData2t6MnJCounterNS_pkcn0AFUnits_n0ALVariability__v_;
-text: .text%__1cPPerfDataManagerIadd_item6FpnIPerfData_i_v_;
text: .text%__1cLStrCompNodeKmatch_edge6kMI_I_;
text: .text%__1cOjmpLoopEndNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOjmpLoopEndNodeOis_pc_relative6kM_i_;
-text: .text%__1cOjmpLoopEndNodeTmay_be_short_branch6kM_i_;
text: .text%jni_ReleaseStringUTFChars: jni.o;
text: .text%jni_GetStringUTFChars: jni.o;
text: .text%__1cFStateW_sub_Op_CountedLoopEnd6MpknENode__v_;
text: .text%__1cNFingerprinterIdo_short6M_v_;
-text: .text%__1cOcompU_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cJAssemblerEincq6MpnMRegisterImpl__v_;
text: .text%__1cFTypeDEmake6Fd_pk0_;
text: .text%__1cScompU_rReg_memNodeFreloc6kM_i_;
text: .text%__1cNtestL_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
text: .text%__1cWCallLeafNoFPDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMNativeLookupGlookup6FnMmethodHandle_ripnGThread__pC_;
text: .text%__1cWCallLeafNoFPDirectNodeFreloc6kM_i_;
-text: .text%__1cSstring_compareNodeJnum_opnds6kM_I_;
text: .text%__1cFStateU_sub_Op_CallLeafNoFP6MpknENode__v_;
text: .text%JVM_FindLibraryEntry;
-text: .text%__1cSObjectSynchronizerHinflate6FpnHoopDesc__pnNObjectMonitor__;
text: .text%JVM_GetMethodIxExceptionTableEntry;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
text: .text%__1cISubLNodeGadd_id6kM_pknEType__;
text: .text%__1cNmodI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHMatcherOc_return_value6Fii_nLOptoRegPair__;
text: .text%__1cRxorI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMachNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cQsarL_rReg_63NodeMideal_Opcode6kM_i_;
text: .text%__1cRmulI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIMachOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cIMachOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
@@ -4810,47 +3093,25 @@
text: .text%__1cIDivINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNnegI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cFStateS_sub_Op_ClearArray6MpknENode__v_;
-text: .text%__1cRaddL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cFciEnvWis_dependence_violated6FpnMklassOopDesc_pnNmethodOopDesc__i_;
-text: .text%__1cHCompile2t6MpnFciEnv_pnIciMethod_i_v_;
text: .text%__1cIXorINodeJideal_reg6kM_I_;
text: .text%__1cMrep_stosNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRtestI_reg_immNodePoper_input_base6kM_I_;
-text: .text%__1cKC2CompilerPcompile_adapter6MpnFciEnv_pnIciMethod_i_v_;
-text: .text%__1cMrep_stosNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cMAdapterCacheGinsert6MpnLAdapterInfo_pnMBasicAdapter__v_;
text: .text%__1cFStateO_sub_Op_StoreL6MpknENode__v_;
-text: .text%__1cLAdapterInfoHcopy_to6Mp0_v_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%__1cPciObjArrayKlassGloader6M_pnHoopDesc__;
text: .text%__1cIMinINodeGadd_id6kM_pknEType__;
-text: .text%__1cNdecL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
text: .text%__1cKstoreLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cGThreadLnmethods_do6M_v_;
-text: .text%__1cKmul_hiNodeMideal_Opcode6kM_i_;
text: .text%__1cKstoreLNodeFreloc6kM_i_;
text: .text%__1cMstoreSSPNodeLbottom_type6kM_pknEType__;
text: .text%__1cRsubI_rReg_memNodeFreloc6kM_i_;
-text: .text%__1cPsarL_rReg_2NodeMideal_Opcode6kM_i_;
text: .text%__1cTconvF2D_reg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cRmulL_rReg_immNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNmodL_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cRmulL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeHtwo_adr6kM_I_;
text: .text%__1cSCompiledStaticCallSset_to_interpreted6MnMmethodHandle_pC_v_;
text: .text%__1cScompU_rReg_immNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cRInterpreterOopMapIis_empty6M_i_;
text: .text%__1cNFingerprinterHdo_char6M_v_;
-text: .text%__1cOrepush_if_args6FpnFParse_pnENode_3_v_: parse2.o;
text: .text%__1cMloadConDNodeLbottom_type6kM_pknEType__;
text: .text%__1cNGrowableArray4CpnHoopDesc__Uclear_and_deallocate6M_v_;
-text: .text%__1cMrdx_RegLOperJnum_edges6kM_I_;
text: .text%__1cLMachUEPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cZget_mirror_from_signature6FnMmethodHandle_pnPSignatureStream_pnGThread__pnHoopDesc__;
text: .text%__1cNGrowableArray4CpnJNode_List__Egrow6Mi_v_;
text: .text%__1cMciArrayKlass2t6MnLKlassHandle__v_;
-text: .text%__1cNObjectMonitorGenter26MpnGThread__v_;
text: .text%__1cKarrayKlassKjava_super6kM_pnMklassOopDesc__;
text: .text%__1cIUniverseWupdate_heap_info_at_gc6F_v_;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
@@ -4860,12 +3121,8 @@
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cJMarkSweepNrestore_marks6F_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
-text: .text%__1cKDictionaryMdo_unloading6MpnRBoolObjectClosure__i_;
text: .text%__1cHThreadsLgc_prologue6F_v_;
-text: .text%__1cNGrowableArray4CpnFKlass__2t6Mii_v_;
-text: .text%__1cQSystemDictionaryMdo_unloading6FpnRBoolObjectClosure__i_;
text: .text%__1cQSystemDictionaryPplaceholders_do6FpnKOopClosure__v_;
-text: .text%__1cSReferenceProcessorPoops_do_statics6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryYalways_strong_classes_do6FpnKOopClosure__v_;
text: .text%__1cUPSAdaptiveSizePolicyWmajor_collection_begin6M_v_;
text: .text%__1cUPSAdaptiveSizePolicyUmajor_collection_end6MLnHGCCauseFCause__v_;
@@ -4874,69 +3131,46 @@
text: .text%__1cKPSYoungGenHcompact6M_v_;
text: .text%__1cKPSYoungGenPadjust_pointers6M_v_;
text: .text%__1cKPSYoungGenKprecompact6M_v_;
-text: .text%__1cLPSMarkSweepQinvoke_no_policy6Fpii_v_;
text: .text%__1cLPSMarkSweepPallocate_stacks6F_v_;
text: .text%__1cLPSMarkSweepRdeallocate_stacks6F_v_;
-text: .text%__1cLPSMarkSweepRmark_sweep_phase16Fi_v_;
text: .text%__1cLPSMarkSweepRmark_sweep_phase26F_v_;
text: .text%__1cLPSMarkSweepRmark_sweep_phase36F_v_;
text: .text%__1cLPSMarkSweepRmark_sweep_phase46F_v_;
text: .text%__1cLPSMarkSweepbAreset_millis_since_last_gc6F_v_;
text: .text%__1cUPSMarkSweepDecoratorbHset_destination_decorator_tenured6F_v_;
text: .text%__1cUPSMarkSweepDecoratorbIset_destination_decorator_perm_gen6F_v_;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_;
text: .text%__1cIPSOldGenKprecompact6M_v_;
text: .text%__1cVLoaderConstraintTableYpurge_loader_constraints6MpnRBoolObjectClosure__v_;
-text: .text%__1cRCardTableModRefBSEis_a6MnKBarrierSetEName__i_;
text: .text%__1cJPSPermGenQcompute_new_size6ML_v_;
text: .text%__1cJPSPermGenKprecompact6M_v_;
-text: .text%__1cJCodeCacheMdo_unloading6FpnRBoolObjectClosure_pnKOopClosure_i_v_;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
-text: .text%__1cPcmpD_cc_regNodeHtwo_adr6kM_I_;
-text: .text%__1cbFunnecessary_membar_volatileNodeHtwo_adr6kM_I_;
text: .text%__1cIDivINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIciSymbolHas_utf86M_pkc_;
text: .text%__1cQorI_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cPfieldDescriptorSlong_initial_value6kM_x_;
-text: .text%__1cKJavaThreadLnmethods_do6M_v_;
text: .text%__1cCosTnative_java_library6F_pv_;
text: .text%__1cSTailCalljmpIndNodePoper_input_base6kM_I_;
text: .text%__1cOstackSlotPOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOstackSlotPOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cScompL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cNandI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNinstanceKlassKfind_field6kMpnNsymbolOopDesc_2ipnPfieldDescriptor__pnMklassOopDesc__;
text: .text%__1cPciObjArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cPstoreImmI16NodeFreloc6kM_i_;
text: .text%__1cPstoreImmI16NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cCosYprint_jni_name_prefix_on6FpnMoutputStream_i_v_;
-text: .text%__1cVlookup_special_native6Fpc_pC_: nativeLookup.o;
text: .text%jni_ReleaseStringCritical: jni.o;
-text: .text%__1cMNativeLookupMlookup_style6FnMmethodHandle_pcpkciiripnGThread__pC_;
text: .text%__1cCosYprint_jni_name_suffix_on6FpnMoutputStream_i_v_;
text: .text%jni_GetStringCritical: jni.o;
-text: .text%__1cSInterpreterRuntimeTnmethod_entry_point6FpnKJavaThread_pnNmethodOopDesc_pnHnmethod__pC_;
text: .text%__1cIPSOldGenOgen_size_limit6M_L_;
-text: .text%__1cTI2CAdapterGeneratorSstd_verified_entry6FnMmethodHandle__pC_;
-text: .text%__1cTI2CAdapterGeneratorUgenerate_i2c_adapter6FnMmethodHandle__pnKI2CAdapter__;
text: .text%__1cUPSAdaptiveSizePolicybQpromo_increment_with_supplement_aligned_up6ML_L_;
-text: .text%__1cHnmethodXinterpreter_entry_point6M_pC_;
text: .text%__1cUParallelScavengeHeapOresize_old_gen6ML_v_;
text: .text%__1cUPSAdaptiveSizePolicyPpromo_increment6MLI_L_;
text: .text%__1cWandI_rReg_imm65535NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIPSOldGenGresize6ML_v_;
text: .text%__1cKConv2BNodeGOpcode6kM_i_;
-text: .text%__1cObox_handleNodeHtwo_adr6kM_I_;
text: .text%__1cKarrayKlassOset_alloc_size6MI_v_;
text: .text%__1cKarrayKlassXbase_create_array_klass6FrknKKlass_vtbl_inLKlassHandle_pnGThread__nQarrayKlassHandle__;
text: .text%__1cNstoreImmINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKarrayKlassbBcomplete_create_array_klass6FnQarrayKlassHandle_nLKlassHandle_pnGThread__v_;
text: .text%__1cLConvI2FNodeGOpcode6kM_i_;
-text: .text%__1cNmethodOopDescVparameter_annotations6kM_pnQtypeArrayOopDesc__;
-text: .text%__1cNmethodOopDescLannotations6kM_pnQtypeArrayOopDesc__;
text: .text%__1cNcmovI_regNodeHtwo_adr6kM_I_;
text: .text%__1cNmethodOopDescbGresolved_checked_exceptions_impl6Fp0pnGThread__nOobjArrayHandle__;
text: .text%__1cIGraphKitbKcombine_and_pop_all_exception_states6M_pnNSafePointNode__;
@@ -4944,71 +3178,50 @@
text: .text%__1cHCompileSrethrow_exceptions6MpnIJVMState__v_;
text: .text%__1cKReflectionTget_parameter_types6FnMmethodHandle_ippnHoopDesc_pnGThread__nOobjArrayHandle__;
text: .text%__1cKReflectionTget_exception_types6FnMmethodHandle_pnGThread__nOobjArrayHandle__;
-text: .text%__1cNinstanceKlassQmethod_index_for6kMpnNmethodOopDesc_pnGThread__i_;
text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_i_v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
text: .text%__1cFStateP_sub_Op_Rethrow6MpknENode__v_;
text: .text%__1cQComputeCallStackIdo_array6Mii_v_;
-text: .text%__1cQsalL_rReg_CLNodePoper_input_base6kM_I_;
text: .text%__1cNdecL_rRegNodeErule6kM_I_;
text: .text%__1cLRethrowNodeJideal_reg6kM_I_;
-text: .text%__1cMNativeLookupLlookup_base6FnMmethodHandle_ripnGThread__pC_;
text: .text%__1cNstoreImmINodeFreloc6kM_i_;
text: .text%__1cURethrowExceptionNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMNativeLookupNpure_jni_name6FnMmethodHandle__pc_;
text: .text%__1cIPerfLong2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability__v_;
text: .text%__1cURethrowExceptionNodeFreloc6kM_i_;
-text: .text%__1cTCompareAndSwapLNode2t6MpnENode_2222_v_;
-text: .text%__1cQshrI_rReg_CLNodeJnum_opnds6kM_I_;
-text: .text%__1cSCompareAndSwapNode2t6MpnENode_2222_v_;
-text: .text%__1cTcompareAndSwapLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTcompareAndSwapLNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cOLibraryCallKitRinline_unsafe_CAS6MnJBasicType__i_;
text: .text%__1cIProjNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateX_sub_Op_CompareAndSwapL6MpknENode__v_;
text: .text%__1cNSCMemProjNodeJideal_reg6kM_I_;
text: .text%__1cTcompareAndSwapLNodeFreloc6kM_i_;
text: .text%__1cOGenerateOopMapMmonitor_push6MnNCellTypeState__v_;
text: .text%__1cOcompP_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPsarI_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
text: .text%__1cMmulD_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cMaddF_regNodePoper_input_base6kM_I_;
text: .text%__1cPcmpD_cc_regNodeMideal_Opcode6kM_i_;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_;
-text: .text%__1cbACallCompiledJavaDirectNodeKmethod_set6Ml_v_;
-text: .text%__1cYMachCallCompiledJavaNodePret_addr_offset6M_i_;
text: .text%__1cJCMoveNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cKciTypeFlowLStateVectorEtrap6MpnQciBytecodeStream_pnHciKlass_i_v_;
text: .text%__1cIDivLNodeLbottom_type6kM_pknEType__;
text: .text%__1cNobjArrayKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cJloadFNodeHtwo_adr6kM_I_;
text: .text%__1cNinstanceKlassYremove_dependent_nmethod6MpnHnmethod__v_;
text: .text%__1cOGenerateOopMapTmark_reachable_code6M_v_;
-text: .text%__1cNobjArrayKlassZcan_be_primary_super_slow6kM_i_;
text: .text%__1cOGenerateOopMapKinterp_all6M_v_;
text: .text%__1cOGenerateOopMapYrewrite_refval_conflicts6M_v_;
text: .text%__1cOGenerateOopMapRinit_basic_blocks6M_v_;
text: .text%__1cOGenerateOopMapYsetup_method_entry_state6M_v_;
text: .text%__1cFframeZinterpreter_frame_set_mdx6Ml_v_;
text: .text%__1cOGenerateOopMapbAmake_context_uninitialized6M_v_;
-text: .text%__1cQorI_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cOGenerateOopMapTmethodsig_to_effect6MpnNsymbolOopDesc_ipnNCellTypeState__i_;
text: .text%__1cOGenerateOopMapPinitialize_vars6M_v_;
text: .text%__1cNobjArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cOGenerateOopMapKinit_state6M_v_;
-text: .text%__1cPClassFileParserbFparse_constant_pool_float_entry6MnSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cRmulL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cOGenerateOopMapNinitialize_bb6M_v_;
text: .text%__1cOGenerateOopMapRdo_interpretation6M_v_;
-text: .text%__1cQciBytecodeStreamFtable6MnJBytecodesECode__2_;
text: .text%__1cOGenerateOopMap2t6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapbImark_bbheaders_and_count_gc_points6M_v_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
text: .text%__1cRxorI_rReg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cNmulI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_XorI6MpknENode__v_;
text: .text%__1cISubLNodeJideal_reg6kM_I_;
text: .text%__1cLStrCompNodeLbottom_type6kM_pknEType__;
@@ -5017,16 +3230,11 @@
text: .text%__1cQOopMapCacheEntryTdeallocate_bit_mask6M_v_;
text: .text%__1cQOopMapCacheEntryEfill6MnMmethodHandle_i_v_;
text: .text%__1cRsalL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPsalL_rReg_1NodePoper_input_base6kM_I_;
-text: .text%__1cOstackSlotPOperJnum_edges6kM_I_;
text: .text%__1cOPhaseIdealLoopOadd_constraint6MiipnENode_22p23_v_;
text: .text%jni_IsAssignableFrom: jni.o;
text: .text%__1cOstackSlotPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cFParseWcheck_interpreter_type6MpnENode_pknEType_rpnNSafePointNode__2_;
-text: .text%__1cFParseXfetch_interpreter_state6MipknEType_pnENode__5_;
-text: .text%__1cObox_handleNodeJnum_opnds6kM_I_;
text: .text%__1cNaddP_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cSComputeAdapterInfoHdo_byte6M_v_;
text: .text%__1cPPerfDataManagerMcounter_name6Fpkc2_pc_;
text: .text%__1cOGenerateOopMapKpp_new_ref6MpnNCellTypeState_i_v_;
text: .text%__1cNcmovI_regNodeQuse_cisc_RegMask6M_v_;
@@ -5035,152 +3243,84 @@
text: .text%__1cTOopMapForCacheEntry2t6MnMmethodHandle_ipnQOopMapCacheEntry__v_;
text: .text%__1cPcmpD_cc_immNodeMideal_Opcode6kM_i_;
text: .text%__1cTOopMapForCacheEntryLcompute_map6MpnGThread__v_;
-text: .text%__1cTOopMapForCacheEntryOreport_results6kM_i_;
text: .text%__1cTconvF2D_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cNdivL_rRegNodeErule6kM_I_;
text: .text%__1cRmulL_rReg_immNodeQuse_cisc_RegMask6M_v_;
text: .text%JVM_GetCallerClass;
text: .text%__1cQsalL_rReg_CLNodeErule6kM_I_;
text: .text%__1cJloadLNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNloadConP0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXMachCallDynamicJavaNodePret_addr_offset6M_i_;
text: .text%__1cRxorI_rReg_immNodeErule6kM_I_;
text: .text%__1cZCallDynamicJavaDirectNodePcompute_padding6kMi_i_;
-text: .text%__1cFParseScreate_jump_tables6MpnENode_pnLSwitchRange_4_i_;
text: .text%__1cZCallDynamicJavaDirectNodeKmethod_set6Ml_v_;
text: .text%__1cPcmovI_reg_lNodeHtwo_adr6kM_I_;
text: .text%__1cLConvD2INodeGOpcode6kM_i_;
text: .text%__1cNcmovP_regNodeMideal_Opcode6kM_i_;
text: .text%__1cTconvI2F_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cKstorePNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWPredictedCallGeneratorJis_inline6kM_i_;
-text: .text%__1cUjmpLoopEnd_shortNodeJis_Branch6kM_I_;
text: .text%__1cQorI_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
text: .text%__1cUjmpLoopEnd_shortNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cFParseSjump_if_false_fork6MpnGIfNode_ii_v_;
-text: .text%__1cbFloadConL_0x6666666666666667NodeMideal_Opcode6kM_i_;
text: .text%__1cJAssemblerEshll6MpnMRegisterImpl_i_v_;
-text: .text%__1cOjmpLoopEndNodeUshort_branch_version6M_pnIMachNode__;
text: .text%__1cUjmpLoopEnd_shortNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPCountedLoopNodeGstride6kM_pnENode__;
-text: .text%__1cHi2bNodeJnum_opnds6kM_I_;
text: .text%__1cHTypeAryFxdual6kM_pknEType__;
text: .text%__1cOMacroAssemblerKverify_oop6MpnMRegisterImpl_pkc_v_;
-text: .text%__1cKstoreFNodeHtwo_adr6kM_I_;
text: .text%__1cNnegI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLencode_copy6FrnKCodeBuffer_ii_v_;
-text: .text%__1cbBconvI2L_reg_reg_reg_zexNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTconvI2F_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cUCallNativeDirectNodeMideal_Opcode6kM_i_;
-text: .text%__1cKmul_hiNodePoper_input_base6kM_I_;
-text: .text%__1cKExceptionsNnew_exception6FpnGThread_nMsymbolHandle_pkcnGHandle_6_6_;
text: .text%__1cPcmpD_cc_regNodeMcisc_operand6kM_i_;
text: .text%__1cPICStubInterfaceKinitialize6MpnEStub_i_v_;
text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_;
text: .text%__1cPcmpD_cc_regNodeErule6kM_I_;
text: .text%__1cNtestU_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOPSPromotionLABRunallocate_object6MpnHoopDesc__i_;
-text: .text%__1cPcmpD_cc_immNodeHtwo_adr6kM_I_;
-text: .text%__1cOPhaseIdealLoopJdo_unroll6MpnNIdealLoopTree_rnJNode_List_i_v_;
text: .text%__1cRandL_rReg_immNodeErule6kM_I_;
-text: .text%__1cNloadConP0NodeGis_Con6kM_I_;
text: .text%__1cIMulINodeKmul_opcode6kM_i_;
-text: .text%__1cNdivL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIMulINodeKadd_opcode6kM_i_;
text: .text%__1cRxorI_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPregister_native6FnLKlassHandle_nMsymbolHandle_1pCpnGThread__i_: jni.o;
text: .text%__1cTno_rax_rdx_RegLOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cOtypeArrayKlassOmulti_allocate6MipiipnGThread__pnHoopDesc__;
-text: .text%__1cTno_rax_rdx_RegLOperJnum_edges6kM_I_;
-text: .text%__1cOCallNativeNodeGOpcode6kM_i_;
text: .text%__1cQsalI_rReg_CLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cJAssemblerDjmp6MpCnJrelocInfoJrelocType__v_;
text: .text%__1cLRShiftLNodeJideal_reg6kM_I_;
text: .text%jni_SetBooleanField: jni.o;
text: .text%__1cVLoaderConstraintTableWfind_constrained_klass6MnMsymbolHandle_nGHandle__pnMklassOopDesc__;
text: .text%__1cIModLNodeLbottom_type6kM_pknEType__;
text: .text%__1cRxorI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHMonitor2t6Mipkci_v_;
-text: .text%__1cGHandle2t6MpnGThread_pnHoopDesc__v_;
text: .text%__1cQorI_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cODeoptimizationVtrap_state_has_reason6Fii_i_;
text: .text%__1cOloadConL32NodeMideal_Opcode6kM_i_;
text: .text%__1cNGrowableArray4Cpv_Egrow6Mi_v_;
text: .text%jni_GetFieldID: jni.o;
text: .text%__1cNGrowableArray4Cl_Egrow6Mi_v_;
-text: .text%__1cXjava_lang_ref_ReferenceOset_discovered6FpnHoopDesc_2_v_;
text: .text%__1cLResourceObj2n6FLn0APallocation_type__pv_;
text: .text%__1cFframeZinterpreter_frame_set_mdp6MpC_v_;
-text: .text%__1cJLoadPNodeUdepends_only_on_test6kM_i_;
text: .text%__1cFBlockNset_next_call6MpnENode_rnJVectorSet_rnLBlock_Array__v_;
text: .text%__1cIciObject2t6MpnHciKlass__v_;
text: .text%__1cScompL_rReg_immNodeErule6kM_I_;
text: .text%__1cQshrI_rReg_CLNodeErule6kM_I_;
-text: .text%__1cNaddL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateT_sub_Op_ThreadLocal6MpknENode__v_;
-text: .text%__1cVCallRuntimeDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cKciTypeFlowOsplit_range_at6Mi_pn0AFRange__;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
-text: .text%__1cXjvm_define_class_common6FpnHJNIEnv__pkcpnI_jobject_pkWi53pnGThread__pnH_jclass__: jvm.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcinMsymbolHandle_4nGHandle_6_v_;
-text: .text%__1cMmulD_immNodePoper_input_base6kM_I_;
text: .text%__1cRInlineCacheBufferRic_stub_code_size6F_i_;
text: .text%__1cMmulF_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cNGrowableArray4CpnKStackValue__2t6Mii_v_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cRandL_rReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMloadConFNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pCi_v_;
text: .text%__1cUandI_rReg_imm255NodeErule6kM_I_;
text: .text%__1cRmulL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNcmovI_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNloadConL0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPsarL_rReg_2NodePoper_input_base6kM_I_;
-text: .text%__1cJAssemblerGpushaq6M_v_;
text: .text%__1cOMethodLivenessKBasicBlockFsplit6Mi_p1_;
text: .text%__1cFStateP_sub_Op_RShiftL6MpknENode__v_;
-text: .text%__1cMrsi_RegPOperJnum_edges6kM_I_;
-text: .text%__1cMstoreSSPNodePoper_input_base6kM_I_;
-text: .text%__1cScompL_rReg_immNodePoper_input_base6kM_I_;
-text: .text%__1cKCodeBufferWinsert_double_constant6Md_pC_;
text: .text%__1cPClassFileParserbJparse_classfile_signature_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cNaddP_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseHdo_irem6M_v_;
-text: .text%__1cRsarL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerEsubl6MpnMRegisterImpl_2_v_;
-text: .text%__1cHi2bNodeHtwo_adr6kM_I_;
text: .text%__1cPClassFileParserbBcheck_illegal_static_method6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cJAssemblerFmovsd6MnHAddress_pnRFloatRegisterImpl__v_;
-text: .text%__1cTCallInterpreterNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cXMachCallInterpreterNodeWis_MachCallInterpreter6M_p0_;
-text: .text%__1cFStateX_sub_Op_CallInterpreter6MpknENode__v_;
-text: .text%__1cZCallInterpreterDirectNodeFreloc6kM_i_;
-text: .text%__1cMStartC2INodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cZInterpreterMacroAssemblerYtest_method_data_pointer6MpnMRegisterImpl_rnFLabel__v_;
-text: .text%__1cMStartC2INodeKc2i_domain6FpknJTypeTuple__3_;
-text: .text%__1cHCompilebMGenerate_Compiled_To_Interpreter_Graph6MpknITypeFunc_pC_v_;
-text: .text%__1cZCallInterpreterDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFciEnvUregister_c2i_adapter6MpnIciMethod_pnJOopMapSet_pnKCodeBuffer_ii_v_;
-text: .text%__1cSMachC2IcheckICNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSMachC2IEntriesNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRtestI_reg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHMatcherbAinterpreter_method_oop_reg6F_i_;
-text: .text%__1cHMatcherXcompiler_method_oop_reg6F_i_;
text: .text%__1cIciMethodRinterpreter_entry6M_pC_;
text: .text%__1cSTailCalljmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPcmpD_cc_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cSTailCalljmpIndNodeGpinned6kM_i_;
-text: .text%__1cSTailCalljmpIndNodeHtwo_adr6kM_I_;
text: .text%jni_SetByteArrayRegion: jni.o;
-text: .text%__1cHBoxNodeGOpcode6kM_i_;
-text: .text%__1cPcmpD_cc_regNodeJnum_opnds6kM_I_;
-text: .text%__1cKC2IAdapter2t6MpnKCodeBuffer_iIpnJOopMapSet_i_v_;
-text: .text%__1cKC2IAdapterPnew_c2i_adapter6FpnKCodeBuffer_IpnJOopMapSet_i_p0_;
-text: .text%__1cKC2IAdapter2n6FLI_pv_;
-text: .text%__1cJAssemblerFmovss6MnHAddress_pnRFloatRegisterImpl__v_;
text: .text%__1cIMulINodeJideal_reg6kM_I_;
text: .text%__1cKCMovePNodeGOpcode6kM_i_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pF_vc_v_;
@@ -5189,15 +3329,11 @@
text: .text%__1cHciKlass2t6MpnIciSymbol_p0_v_;
text: .text%__1cFParseTjump_if_always_fork6Mii_v_;
text: .text%__1cKloadUBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMmulF_immNodePoper_input_base6kM_I_;
-text: .text%__1cPcmpD_cc_immNodePoper_input_base6kM_I_;
text: .text%__1cUciInstanceKlassKlassEmake6F_p0_;
text: .text%__1cJAssemblerDhlt6M_v_;
text: .text%__1cOMacroAssemblerEstop6Mpkc_v_;
text: .text%__1cQComputeCallStackIdo_float6M_v_;
-text: .text%__1cIciObjectUis_array_klass_klass6M_i_;
text: .text%__1cKciTypeFlowLStateVectorLdo_newarray6MpnQciBytecodeStream__v_;
-text: .text%__1cWResolveOopMapConflictsRpossible_gc_point6MpnOBytecodeStream__i_;
text: .text%__1cJloadFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmovI_reg_lNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIciSymbolHbyte_at6Mi_i_;
@@ -5205,15 +3341,9 @@
text: .text%__1cENode2t6Mp0111111_v_;
text: .text%__1cIMaxINodeGadd_id6kM_pknEType__;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pC2i_v_;
text: .text%__1cKExceptionsL_throw_args6FpnGThread_pkcinMsymbolHandle_5pnRJavaCallArguments__v_;
text: .text%__1cMmulD_immNodeErule6kM_I_;
-text: .text%__1cMnegD_regNodePoper_input_base6kM_I_;
-text: .text%__1cFframeVshould_be_deoptimized6kM_i_;
text: .text%__1cMaddF_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cbDjava_lang_reflect_ConstructorThas_signature_field6F_i_;
-text: .text%__1cbDjava_lang_reflect_ConstructorVhas_annotations_field6F_i_;
-text: .text%__1cbDjava_lang_reflect_ConstructorbFhas_parameter_annotations_field6F_i_;
text: .text%__1cbDjava_lang_reflect_ConstructorIset_slot6FpnHoopDesc_i_v_;
text: .text%__1cKReflectionPnew_constructor6FnMmethodHandle_pnGThread__pnHoopDesc__;
text: .text%__1cbDjava_lang_reflect_ConstructorPset_annotations6FpnHoopDesc_2_v_;
@@ -5226,61 +3356,35 @@
text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
text: .text%__1cbDjava_lang_reflect_ConstructorJset_clazz6FpnHoopDesc_2_v_;
text: .text%__1cbDjava_lang_reflect_ConstructorGcreate6FpnGThread__nGHandle__;
-text: .text%__1cKmul_hiNodeJnum_opnds6kM_I_;
text: .text%__1cKstoreFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKstoreBNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRxorI_rReg_immNodeHtwo_adr6kM_I_;
-text: .text%__1cNsubI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cJAssemblerExorl6MpnMRegisterImpl_2_v_;
-text: .text%__1cHMatcherXinterpreter_arg_ptr_reg6F_i_;
text: .text%__1cINegDNodeGOpcode6kM_i_;
text: .text%__1cNdecL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPjava_lang_ClassQprimitive_mirror6FnJBasicType__pnHoopDesc__;
-text: .text%__1cRsarI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
-text: .text%__1cNcmovP_regNodeJnum_opnds6kM_I_;
text: .text%__1cSCompiledStaticCallNcompute_entry6FnMmethodHandle_rnOStaticCallInfo__v_;
text: .text%__1cMloadConDNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLOptoRuntimeVresolve_static_call_C6FpnKJavaThread__pC_;
-text: .text%__1cSCompiledStaticCallIis_clean6kM_i_;
text: .text%__1cMrsi_RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cTAbstractInterpreterLdeopt_entry6FnITosState_i_pC_;
text: .text%__1cRindIndexScaleOperNconstant_disp6kM_i_;
-text: .text%__1cQorI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cRtestI_reg_immNodeJnum_opnds6kM_I_;
text: .text%jni_NewStringUTF: jni.o;
text: .text%__1cTAbstractInterpreterSBasicType_as_index6FnJBasicType__i_;
text: .text%__1cNtestI_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZInterpreterMacroAssemblerGpush_l6MpnMRegisterImpl__v_;
-text: .text%__1cRxorI_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerFpop_i6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerGpush_d6MpnRFloatRegisterImpl__v_;
-text: .text%__1cObox_handleNodeErule6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerIpush_ptr6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerGpush_f6MpnRFloatRegisterImpl__v_;
text: .text%__1cOleaPIdxOffNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQsarL_rReg_63NodePoper_input_base6kM_I_;
text: .text%__1cSCompiledStaticCallDset6MrknOStaticCallInfo__v_;
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_i_v_;
-text: .text%__1cHCompileRmake_vm_intrinsic6MpnIciMethod_i_pnNCallGenerator__;
text: .text%__1cNmulI_rRegNodeErule6kM_I_;
-text: .text%__1cNGrowableArray4Ci_2t6Mii_v_;
-text: .text%__1cQsalL_rReg_CLNodeJnum_opnds6kM_I_;
text: .text%__1cNGrowableArray4Ci_Uclear_and_deallocate6M_v_;
-text: .text%__1cPCountedLoopNode2t6MpnENode_2_v_;
-text: .text%__1cSCountedLoopEndNode2t6MpnENode_2ff_v_;
text: .text%__1cJloadDNodeMideal_Opcode6kM_i_;
text: .text%__1cENodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIDivLNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cMmulD_regNodePoper_input_base6kM_I_;
-text: .text%__1cTconvF2D_reg_memNodeJnum_opnds6kM_I_;
text: .text%__1cIModINodeJideal_reg6kM_I_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
-text: .text%__1cObox_handleNodeLbottom_type6kM_pknEType__;
-text: .text%__1cbDreorder_based_on_method_index6FpnPobjArrayOopDesc_1ppnHoopDesc__v_: methodOop.o;
text: .text%__1cPshrL_rReg_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cUverify_byte_codes_fn6F_pv_: verifier.o;
-text: .text%__1cMLinkResolverbPlinktime_resolve_interface_method_or_null6FnLKlassHandle_nMsymbolHandle_21i_nMmethodHandle__;
text: .text%JVM_GetClassCPTypes;
text: .text%__1cQComputeCallStackHdo_byte6M_v_;
text: .text%JVM_GetClassCPEntriesCount;
@@ -5291,19 +3395,14 @@
text: .text%__1cKmul_hiNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEnegq6MpnMRegisterImpl__v_;
text: .text%__1cNmodL_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKloadUBNodeHtwo_adr6kM_I_;
-text: .text%__1cRxorI_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cVCallRuntimeDirectNodePoper_input_base6kM_I_;
text: .text%__1cSstring_compareNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongVariable__;
-text: .text%__1cNsubL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOjmpLoopEndNodeGnegate6M_v_;
text: .text%__1cQorI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPsalL_rReg_1NodeErule6kM_I_;
text: .text%__1cPcmpD_cc_immNodeErule6kM_I_;
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_2_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorVset_vtos_entry_points6MpnITemplate_rpC44444444_v_;
text: .text%__1cHCompileQgrow_alias_types6M_v_;
text: .text%__1cUandI_rReg_imm255NodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_CallIntMethod: jni.o;
@@ -5311,74 +3410,42 @@
text: .text%__1cPno_rax_RegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cMrdx_RegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNmulI_rRegNodeMcisc_operand6kM_i_;
-text: .text%__1cNxorI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTconvF2D_reg_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIUniverseWreinitialize_vtable_of6FpnFKlass_pnGThread__v_;
text: .text%__1cJLoadINodeMstore_Opcode6kM_i_;
text: .text%__1cNSharedRuntimeTreresolve_call_site6FpnKJavaThread_pnGThread__nMmethodHandle__;
text: .text%__1cbFunnecessary_membar_volatileNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cENodeEgetd6kM_d_;
text: .text%__1cICmpFNodeGOpcode6kM_i_;
-text: .text%__1cLOptoRuntimeThandle_wrong_method6FpnKJavaThread__pC_;
text: .text%__1cNGrowableArray4CpnOMethodLivenessKBasicBlock__Egrow6Mi_v_;
text: .text%__1cKstoreFNodeOmemory_operand6kM_pknIMachOper__;
text: .text%JVM_SetClassSigners;
text: .text%__1cNdivL_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompI_rReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZCallDynamicJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRandL_rReg_immNodeJnum_opnds6kM_I_;
text: .text%__1cOstackSlotPOperFscale6kM_i_;
-text: .text%__1cHnmethodPis_dependent_on6MpnMklassOopDesc__i_;
-text: .text%__1cMdecI_memNodeHtwo_adr6kM_I_;
-text: .text%__1cSalign_to_page_size6FL_L_: heap.o;
text: .text%__1cNmulI_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cOstackSlotPOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cPsarL_rReg_2NodeErule6kM_I_;
text: .text%__1cOPhaseIdealLoopUpeeled_dom_test_elim6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%jni_NewByteArray: jni.o;
text: .text%__1cYinternal_word_RelocationFvalue6M_pC_;
-text: .text%__1cYinternal_word_RelocationWfix_relocation_at_move6Ml_v_;
text: .text%__1cFStateM_sub_Op_SubL6MpknENode__v_;
text: .text%__1cJAssemblerSemit_arith_operand6MipnMRegisterImpl_nHAddress_i_v_;
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cMaddF_regNodeMcisc_operand6kM_i_;
-text: .text%__1cRsubI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNloadConPcNodeHtwo_adr6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorYgenerate_deopt_entry_for6MnITosState_i_pC_;
-text: .text%__1cKLoadPCNodeGOpcode6kM_i_;
-text: .text%__1cTconvI2F_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cOstackSlotPOperEtype6kM_pknEType__;
-text: .text%__1cbCAbstractInterpreterGeneratorZgenerate_return_entry_for6MnITosState_i_pC_;
text: .text%__1cTconvD2I_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cMstoreSSPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNGrowableArray4Ci_Icontains6kMrki_i_;
text: .text%__1cKstoreBNodeFreloc6kM_i_;
-text: .text%__1cObox_handleNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMjniIdPrivateGid_for6FnTinstanceKlassHandle_i_l_;
-text: .text%__1cNget_method_id6FpnHJNIEnv__pnH_jclass_pkc5ipnGThread__pnK_jmethodID__: jni.o;
text: .text%__1cQshrI_rReg_CLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQjava_lang_SystemTout_offset_in_bytes6F_i_;
-text: .text%__1cMjniIdSupportNto_jmethod_id6FpnNmethodOopDesc__pnK_jmethodID__;
text: .text%__1cNmethodOopDescKjmethod_id6M_pnK_jmethodID__;
text: .text%__1cQjava_lang_SystemSin_offset_in_bytes6F_i_;
text: .text%__1cRandL_rReg_immNodeHtwo_adr6kM_I_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_2_v_;
-text: .text%__1cbACallCompiledJavaDirectNodeFreloc6kM_i_;
text: .text%__1cIAddFNodeLbottom_type6kM_pknEType__;
-text: .text%__1cUCallCompiledJavaNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cFStateY_sub_Op_CallCompiledJava6MpknENode__v_;
-text: .text%__1cFciEnvUregister_i2c_adapter6MpnIciMethod_pnJOopMapSet_pnKCodeBuffer_i_v_;
-text: .text%__1cbACallCompiledJavaDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cMStartI2CNodeScalling_convention6kMpnLOptoRegPair_I_v_;
-text: .text%__1cHCompilebMGenerate_Interpreter_To_Compiled_Graph6MpknITypeFunc__v_;
text: .text%__1cPciObjectFactoryPinsert_non_perm6Mrpn0ANNonPermObject_pnHoopDesc_pnIciObject__v_;
-text: .text%__1cKI2CAdapter2n6FLI_pv_;
-text: .text%__1cKCodeBufferVinsert_float_constant6Mf_pC_;
-text: .text%__1cbACallCompiledJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKI2CAdapterPnew_i2c_adapter6FpnKCodeBuffer_pnJOopMapSet_i_p0_;
text: .text%__1cKmul_hiNodeErule6kM_I_;
-text: .text%__1cKI2CAdapter2t6MpnKCodeBuffer_pnJOopMapSet_ii_v_;
-text: .text%__1cbBinitialize_itable_for_klass6FpnMklassOopDesc__v_;
text: .text%__1cFJNIidEfind6Mi_p0_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_5pnGThread__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorIgenerate6ML_v_;
@@ -5388,69 +3455,40 @@
text: .text%JVM_IsPrimitiveClass;
text: .text%__1cIDivDNodeGOpcode6kM_i_;
text: .text%__1cMnegD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cJCMoveNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cPciObjArrayKlassJmake_impl6FpnHciKlass__p0_;
-text: .text%__1cQjava_lang_ThreadJis_daemon6FpnHoopDesc__i_;
text: .text%__1cJAssemblerEcmpl6MnHAddress_i_v_;
text: .text%__1cHi2bNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLimmI_24OperJnum_edges6kM_I_;
text: .text%__1cRxorI_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cFTypeDJsingleton6kM_i_;
text: .text%__1cPsalI_rReg_1NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIModLNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cUPipeline_Use_Element2t6MIIIinXPipeline_Use_Cycle_Mask__v_;
-text: .text%__1cTmembar_volatileNodePoper_input_base6kM_I_;
-text: .text%__1cNloadConPcNodePoper_input_base6kM_I_;
text: .text%__1cXPipeline_Use_Cycle_Mask2t6MI_v_;
text: .text%__1cKCompiledICMset_to_clean6M_v_;
-text: .text%__1cNdecL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cIciMethodOresolve_invoke6MpnHciKlass_2_p0_;
text: .text%__1cQChunkPoolCleanerEtask6M_v_;
text: .text%__1cICmpDNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPsalL_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_MulI6MpknENode__v_;
text: .text%__1cZCallDynamicJavaDirectNodeFreloc6kM_i_;
-text: .text%__1cQMachCallJavaNodeVis_MachCallStaticJava6M_pnWMachCallStaticJavaNode__;
-text: .text%__1cUandI_rReg_imm255NodeJnum_opnds6kM_I_;
text: .text%__1cFStateX_sub_Op_CallDynamicJava6MpknENode__v_;
-text: .text%__1cNObjectMonitorEwait6MxipnGThread__v_;
text: .text%jni_FindClass: jni.o;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cIMinINodeJideal_reg6kM_I_;
text: .text%__1cJCMoveNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_;
-text: .text%__1cNCallGeneratorSfor_predicted_call6FpnHciKlass_p03_3_;
-text: .text%__1cLTypeInstPtrRcast_to_exactness6kMi_pknEType__;
text: .text%__1cTconvI2F_reg_regNodeErule6kM_I_;
-text: .text%__1cWPredictedCallGeneratorKis_virtual6kM_i_;
-text: .text%__1cTconvF2D_reg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cNcmovP_regNodeErule6kM_I_;
-text: .text%__1cMaddF_regNodeJnum_opnds6kM_I_;
text: .text%__1cWPredictedCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%JVM_MonitorWait;
-text: .text%__1cPshrL_rReg_1NodePoper_input_base6kM_I_;
-text: .text%__1cMaddF_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNCallGeneratorQfor_virtual_call6FpnIciMethod__p0_;
text: .text%__1cUVirtualCallGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cLPSMarkSweepbAabsorb_live_data_from_eden6FpnUPSAdaptiveSizePolicy_pnKPSYoungGen_pnIPSOldGen__i_;
text: .text%__1cUPSMarkSweepDecoratorbDadvance_destination_decorator6F_v_;
-text: .text%__1cNmulI_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cNmulI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cSOnStackReplacementPget_osr_adapter6FnFframe_nMmethodHandle__pnKOSRAdapter__;
-text: .text%__1cNGrowableArray4CpnKOSRAdapter__Hat_grow6Mirk1_1_;
text: .text%__1cPciObjArrayKlassEmake6FpnHciKlass__p0_;
text: .text%JVM_GetClassDeclaredConstructors;
-text: .text%__1cRCardTableModRefBSKinvalidate6MnJMemRegion__v_;
text: .text%__1cJLoadFNodeJideal_reg6kM_I_;
text: .text%__1cJAssemblerEaddq6MpnMRegisterImpl_2_v_;
-text: .text%__1cFTypeFJsingleton6kM_i_;
text: .text%__1cTconvF2D_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cMstoreSSPNodeErule6kM_I_;
text: .text%__1cOloadConL32NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMstoreSSPNodeHtwo_adr6kM_I_;
-text: .text%__1cMincI_memNodeHtwo_adr6kM_I_;
text: .text%__1cKcmpOpUOperFequal6kM_i_;
-text: .text%__1cTconvF2D_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cHRegMask2t6M_v_;
text: .text%__1cIGraphKitPdstore_rounding6MpnENode__2_;
text: .text%__1cNGrowableArray4Ci_2t6MpnFArena_iirki_v_;
@@ -5458,13 +3496,9 @@
text: .text%__1cQset_lwp_priority6Fiii_i_;
text: .text%__1cJCmpD3NodeGOpcode6kM_i_;
text: .text%__1cKloadUBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPcmpD_cc_immNodeJnum_opnds6kM_I_;
text: .text%__1cLConvL2DNodeGOpcode6kM_i_;
-text: .text%__1cRmulI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerFcmovq6Mn0AJCondition_pnMRegisterImpl_3_v_;
-text: .text%__1cNminI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMmulD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cNminI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cFStateM_sub_Op_MinI6MpknENode__v_;
text: .text%__1cCosTset_native_priority6FpnGThread_i_nIOSReturn__;
text: .text%__1cJStubQdDueueRrequest_committed6Mi_pnEStub__;
@@ -5474,7 +3508,6 @@
text: .text%__1cUandI_rReg_imm255NodeHtwo_adr6kM_I_;
text: .text%__1cJStubQdDueueMremove_first6M_v_;
text: .text%__1cOPhaseIdealLoopOdo_range_check6MpnNIdealLoopTree_rnJNode_List__v_;
-text: .text%__1cUVirtualCallGeneratorKis_virtual6kM_i_;
text: .text%__1cPICStubInterfaceIfinalize6MpnEStub__v_;
text: .text%__1cZUncommonTrapCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cPICStubInterfaceEsize6kMpnEStub__i_;
@@ -5482,27 +3515,17 @@
text: .text%__1cNGrowableArray4CpnIciObject__Egrow6Mi_v_;
text: .text%__1cFStateM_sub_Op_ModI6MpknENode__v_;
text: .text%__1cNObjectMonitor2t6M_v_;
-text: .text%__1cNmodI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFParseNdo_instanceof6M_v_;
text: .text%__1cPcmpD_cc_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNIdealLoopTreeXpolicy_maximally_unroll6kMpnOPhaseIdealLoop__i_;
-text: .text%__1cTmembar_volatileNodeHtwo_adr6kM_I_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cIGraphKitOgen_instanceof6MpnENode_2_2_;
text: .text%__1cHciKlassOsuper_of_depth6MI_p0_;
text: .text%__1cJLoadDNodeGOpcode6kM_i_;
-text: .text%__1cNcmovL_regNodePoper_input_base6kM_I_;
text: .text%__1cMdecI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRaddI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXNativeSignatureIteratorJdo_object6Mii_v_;
text: .text%__1cQsalL_rReg_CLNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNandI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cbFunnecessary_membar_volatileNodeLbottom_type6kM_pknEType__;
-text: .text%__1cHMatcherXpost_store_load_barrier6FpknENode__i_;
-text: .text%__1cYjava_lang_reflect_MethodThas_signature_field6F_i_;
-text: .text%__1cYjava_lang_reflect_MethodbFhas_parameter_annotations_field6F_i_;
text: .text%__1cYjava_lang_reflect_MethodZset_parameter_annotations6FpnHoopDesc_2_v_;
-text: .text%__1cYjava_lang_reflect_MethodbChas_annotation_default_field6F_i_;
text: .text%__1cJloadDNodePoper_input_base6kM_I_;
text: .text%__1cENodeEgetf6kM_f_;
text: .text%__1cYjava_lang_reflect_MethodIset_name6FpnHoopDesc_2_v_;
@@ -5510,33 +3533,19 @@
text: .text%__1cYjava_lang_reflect_MethodJset_clazz6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodIset_slot6FpnHoopDesc_i_v_;
text: .text%__1cYjava_lang_reflect_MethodGcreate6FpnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeIis_valid6kM_i_;
-text: .text%__1cKReflectionKnew_method6FnMmethodHandle_iipnGThread__pnHoopDesc__;
-text: .text%__1cYjava_lang_reflect_MethodVhas_annotations_field6F_i_;
text: .text%__1cYjava_lang_reflect_MethodPset_annotations6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodWset_annotation_default6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodNset_modifiers6FpnHoopDesc_i_v_;
-text: .text%__1cNmethodOopDescSannotation_default6kM_pnQtypeArrayOopDesc__;
text: .text%__1cYjava_lang_reflect_MethodTset_exception_types6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodTset_parameter_types6FpnHoopDesc_2_v_;
text: .text%__1cVCallRuntimeDirectNodeKmethod_set6Ml_v_;
-text: .text%__1cTconvD2I_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cSTailCalljmpIndNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvI2D_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cQorI_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cKstoreFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRaddI_mem_rRegNodePoper_input_base6kM_I_;
text: .text%__1cMmulF_immNodeErule6kM_I_;
-text: .text%__1cJAssemblerGmovlpd6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cPcmpF_cc_regNodePoper_input_base6kM_I_;
-text: .text%__1cNCompileBrokerTcompile_adapter_for6FnMmethodHandle_ii_pnMBasicAdapter__;
text: .text%__1cCosbBthread_local_storage_at_put6Fipv_v_;
-text: .text%__1cNCompileBrokerbBwait_for_adapter_completion6FpnLCompileTask__pnMBasicAdapter__;
-text: .text%__1cOjmpLoopEndNodeJis_Branch6kM_I_;
text: .text%__1cOjmpLoopEndNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cNinstanceKlassSregister_finalizer6FpnPinstanceOopDesc_pnGThread__2_;
text: .text%__1cSThreadLocalStorageNpd_set_thread6FpnGThread__v_;
-text: .text%__1cKCMoveINodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cSThreadLocalStoragebBget_thread_via_cache_slowly6FLi_pnGThread__;
text: .text%__1cMrax_RegIOperEtype6kM_pknEType__;
text: .text%__1cOjmpLoopEndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -5545,7 +3554,6 @@
text: .text%__1cSThreadLocalStorageSset_thread_in_slot6FpnGThread__v_;
text: .text%get_thread;
text: .text%__1cMincI_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cIGraphKitXinsert_mem_bar_volatile6MpnKMemBarNode_i_v_;
text: .text%__1cSThreadLocalStorageKset_thread6FpnGThread__v_;
text: .text%__1cCosHSolarisKmmap_chunk6FpcLii_2_;
text: .text%__1cbFloadConL_0x6666666666666667NodeLout_RegMask6kM_rknHRegMask__;
@@ -5555,75 +3563,52 @@
text: .text%__1cMmulD_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNcmovP_regNodeLbottom_type6kM_pknEType__;
text: .text%__1cJScopeDescTdecode_scope_values6Mi_pnNGrowableArray4CpnKScopeValue____;
-text: .text%__1cTAbstractInterpreterWlayout_activation_impl6FpnNmethodOopDesc_iiiipnFframe_4i_i_;
text: .text%__1cLconvI2BNodeMideal_Opcode6kM_i_;
text: .text%__1cIDivLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cQsalI_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cPsarL_rReg_2NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNmodL_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cScompL_rReg_immNodeJnum_opnds6kM_I_;
-text: .text%__1cQshrL_rReg_CLNodePoper_input_base6kM_I_;
-text: .text%__1cJCMoveNode2t6MpnENode_22pknEType__v_;
-text: .text%__1cJCMoveNodeEmake6FpnENode_222pknEType__p0_;
text: .text%__1cVLoaderConstraintTableYextend_loader_constraint6MpnVLoaderConstraintEntry_nGHandle_pnMklassOopDesc__v_;
text: .text%__1cIimmIOperJnum_edges6kM_I_;
-text: .text%__1cJAssemblerFmovss6MpnRFloatRegisterImpl_nHAddress__v_;
text: .text%__1cRtestI_reg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRandL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNGrowableArray4CpnKciTypeFlowFBlock__Gremove6Mrk2_v_;
text: .text%__1cVLoaderConstraintTablebHensure_loader_constraint_capacity6MpnVLoaderConstraintEntry_i_v_;
-text: .text%__1cPsalL_rReg_1NodeJnum_opnds6kM_I_;
-text: .text%__1cMsubD_regNodePoper_input_base6kM_I_;
-text: .text%__1cMstoreSSPNodeJnum_opnds6kM_I_;
text: .text%__1cMnegD_regNodeHtwo_adr6kM_I_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
-text: .text%__1cPClassFileParserXverify_unqualified_name6MpcIi_i_;
text: .text%__1cMdivD_immNodeMideal_Opcode6kM_i_;
text: .text%__1cTconvI2F_reg_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cQjava_lang_ThreadMis_stillborn6FpnHoopDesc__i_;
text: .text%__1cQsarL_rReg_63NodeErule6kM_I_;
text: .text%__1cRsubL_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cMVirtualSpaceQuncommitted_size6kM_L_;
text: .text%__1cRsubL_rReg_memNodePoper_input_base6kM_I_;
-text: .text%__1cMVirtualSpaceJexpand_by6ML_i_;
text: .text%__1cNstoreImmPNodeMideal_Opcode6kM_i_;
text: .text%__1cQjava_lang_ThreadKset_thread6FpnHoopDesc_pnKJavaThread__v_;
text: .text%__1cLOopMapCache2t6M_v_;
-text: .text%__1cJloadDNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cQComputeCallStackHdo_char6M_v_;
-text: .text%__1cNdivI_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cOcmovI_regUNodePoper_input_base6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerEpush6MnITosState__v_;
text: .text%__1cSvframeArrayElementDbci6kM_i_;
text: .text%__1cMaddF_regNodeErule6kM_I_;
-text: .text%__1cTconvF2D_reg_memNodeHtwo_adr6kM_I_;
text: .text%__1cNdecL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cMdecI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cFStateN_sub_Op_LoadF6MpknENode__v_;
text: .text%__1cIMulDNodeLbottom_type6kM_pknEType__;
text: .text%__1cNaddI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJAssemblerEdecl6MpnMRegisterImpl__v_;
-text: .text%__1cOPhaseIdealLoopVinsert_pre_post_loops6MpnNIdealLoopTree_rnJNode_List_i_v_;
text: .text%__1cJAssemblerGbswapl6MpnMRegisterImpl__v_;
text: .text%__1cRInlineCacheBufferLnew_ic_stub6F_pnGICStub__;
text: .text%__1cRInlineCacheBufferWcreate_transition_stub6FpnKCompiledIC_pnHoopDesc_pC_v_;
text: .text%__1cIAddDNodeGOpcode6kM_i_;
text: .text%__1cMincI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorIpass_int6M_v_;
-text: .text%__1cNloadConPcNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGICStubIset_stub6MpnKCompiledIC_pnHoopDesc_pC_v_;
text: .text%__1cRInlineCacheBufferXassemble_ic_buffer_code6FpCpnHoopDesc_1_v_;
text: .text%__1cTconvD2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerHpop_ptr6MpnMRegisterImpl__v_;
-text: .text%__1cGThreadbCis_hidden_from_external_view6kM_i_;
text: .text%__1cMelapsedTimer2t6M_v_;
-text: .text%__1cGThreadVis_jvmti_agent_thread6kM_i_;
text: .text%__1cMdivD_immNodeErule6kM_I_;
text: .text%__1cTconvI2D_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cFTypeFFxmeet6kMpknEType__3_;
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl_i_v_;
text: .text%__1cGICStubLdestination6kM_pC_;
-text: .text%__1cRsalL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRInlineCacheBufferVic_buffer_entry_point6FpC_1_;
text: .text%__1cPcmpD_cc_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMaddD_immNodeMideal_Opcode6kM_i_;
@@ -5636,31 +3621,21 @@
text: .text%__1cUandI_rReg_imm255NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNdivL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cKcastPPNodePoper_input_base6kM_I_;
-text: .text%__1cMaddD_immNodePoper_input_base6kM_I_;
text: .text%__1cFTypeDFxmeet6kMpknEType__3_;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cIDivLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cJloadDNodeErule6kM_I_;
-text: .text%__1cRaddI_mem_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
text: .text%__1cPsarL_rReg_1NodeMideal_Opcode6kM_i_;
text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cMmulD_regNodeMcisc_operand6kM_i_;
text: .text%__1cMmulF_memNodePoper_input_base6kM_I_;
text: .text%lwp_cond_destroy: os_solaris.o;
-text: .text%__1cHnmethodNis_osr_method6kM_i_;
text: .text%lwp_mutex_destroy: os_solaris.o;
-text: .text%__1cFParseScan_rerun_bytecode6M_i_;
text: .text%__1cISubFNodeGOpcode6kM_i_;
-text: .text%__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
-text: .text%__1cFTypeDGis_nan6kM_i_;
-text: .text%__1cTconvI2F_reg_regNodeJnum_opnds6kM_I_;
text: .text%__1cOJavaAssertionsNmatch_package6Fpkc_pn0AKOptionList__;
-text: .text%__1cOJavaAssertionsHenabled6Fpkci_i_;
text: .text%__1cOJavaAssertionsLmatch_class6Fpkc_pn0AKOptionList__;
text: .text%JVM_DesiredAssertionStatus;
text: .text%__1cHTypePtrFxdual6kM_pknEType__;
-text: .text%__1cTconvI2F_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cQjava_lang_ThreadLthreadGroup6FpnHoopDesc__2_;
text: .text%__1cLConvI2FNodeLbottom_type6kM_pknEType__;
text: .text%__1cXjava_lang_reflect_FieldNset_modifiers6FpnHoopDesc_i_v_;
@@ -5671,41 +3646,25 @@
text: .text%__1cXjava_lang_reflect_FieldIset_name6FpnHoopDesc_2_v_;
text: .text%__1cJvmSymbolsOsignature_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cMloadConFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNnegI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cPcmpF_cc_regNodeHtwo_adr6kM_I_;
-text: .text%__1cKReflectionJnew_field6FpnPfieldDescriptor_ipnGThread__pnHoopDesc__;
text: .text%__1cXjava_lang_reflect_FieldIset_type6FpnHoopDesc_2_v_;
text: .text%__1cKJavaThreadbScheck_safepoint_and_suspend_for_native_trans6Fp0_v_;
text: .text%__1cXjava_lang_reflect_FieldPset_annotations6FpnHoopDesc_2_v_;
text: .text%__1cXjava_lang_reflect_FieldGcreate6FpnGThread__nGHandle__;
-text: .text%__1cXjava_lang_reflect_FieldVhas_annotations_field6F_i_;
text: .text%__1cISubDNodeGOpcode6kM_i_;
text: .text%__1cJloadFNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cSstring_compareNodeHtwo_adr6kM_I_;
text: .text%__1cPfieldDescriptorLannotations6kM_pnQtypeArrayOopDesc__;
text: .text%__1cRaddI_mem_rRegNodeMideal_Opcode6kM_i_;
text: .text%__1cXjava_lang_reflect_FieldIset_slot6FpnHoopDesc_i_v_;
-text: .text%__1cKScopeValueLis_location6kM_i_;
-text: .text%__1cXjava_lang_reflect_FieldThas_signature_field6F_i_;
text: .text%__1cMmulF_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSObjectSynchronizerGnotify6FnGHandle_pnGThread__v_;
text: .text%JVM_MonitorNotify;
text: .text%__1cQsarL_rReg_63NodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_GetStaticFieldID: jni.o;
-text: .text%__1cIModLNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cPjava_lang_ClassOprimitive_type6FpnHoopDesc__nJBasicType__;
-text: .text%__1cIjniIdMapGcreate6FnTinstanceKlassHandle__p0_;
-text: .text%__1cPsarL_rReg_2NodeJnum_opnds6kM_I_;
text: .text%__1cKReflectionbFbasic_type_mirror_to_basic_type6FpnHoopDesc_pnGThread__nJBasicType__;
text: .text%__1cPcmpF_cc_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cQSystemDictionaryQjava_mirror_type6FpnHoopDesc__nJBasicType__;
-text: .text%__1cIjniIdMap2t6MpnMklassOopDesc_i_v_;
-text: .text%__1cIjniIdMapRcompute_index_cnt6FnTinstanceKlassHandle__i_;
-text: .text%__1cLjniIdBucket2t6MpnIjniIdMap_p0_v_;
text: .text%__1cNinstanceKlassKjni_id_for6Mi_pnFJNIid__;
text: .text%__1cJLoadSNodeMstore_Opcode6kM_i_;
-text: .text%__1cLTypeInstPtrLmirror_type6kM_pnGciType__;
-text: .text%__1cMsubF_regNodePoper_input_base6kM_I_;
text: .text%__1cPcmpD_cc_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMlogD_regNodeMideal_Opcode6kM_i_;
text: .text%__1cbFunnecessary_membar_volatileNodeLout_RegMask6kM_rknHRegMask__;
@@ -5715,8 +3674,6 @@
text: .text%__1cKstorePNodeErule6kM_I_;
text: .text%__1cNsymbolOopDescWas_klass_external_name6kM_pkc_;
text: .text%__1cbFunnecessary_membar_volatileNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConPcNodeErule6kM_I_;
-text: .text%__1cIPipeline2t6MIIiIIiiiipnSmachPipelineStages_2pInMPipeline_Use__v_;
text: .text%__1cRComputeEntryStackGdo_int6M_v_;
text: .text%__1cMstoreSSPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSMachBreakpointNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -5725,48 +3682,33 @@
text: .text%__1cPsalL_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cNmodL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvF2D_reg_regNodeErule6kM_I_;
-text: .text%__1cJAssemblerDjmp6MpnMRegisterImpl_nJrelocInfoJrelocType__v_;
-text: .text%__1cObox_handleNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQsalI_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQorI_rReg_memNodeErule6kM_I_;
-text: .text%__1cLloadSSDNodePoper_input_base6kM_I_;
-text: .text%__1cNCompileBrokerbAinvoke_compiler_on_adapter6FpnLCompileTask__v_;
text: .text%__1cLConvF2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMaddF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRxorI_rReg_memNodeFreloc6kM_i_;
-text: .text%__1cMaddF_immNodePoper_input_base6kM_I_;
text: .text%__1cKCMoveLNodeGOpcode6kM_i_;
text: .text%__1cICodeHeapTmark_segmap_as_free6MLL_v_;
text: .text%__1cRaddL_rReg_memNodePoper_input_base6kM_I_;
text: .text%JVM_IsArrayClass;
text: .text%__1cJAssemblerEsbbq6MnHAddress_i_v_;
text: .text%__1cZInterpreterMacroAssemblerFpop_l6MpnMRegisterImpl__v_;
-text: .text%__1cMmulD_regNodeJnum_opnds6kM_I_;
-text: .text%__1cODeoptimizationYquery_update_method_data6FnQmethodDataHandle_in0ALDeoptReason_rIri4_pnLProfileData__;
-text: .text%__1cICodeHeapJexpand_by6ML_i_;
-text: .text%__1cMmulD_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cLConvF2DNodeLbottom_type6kM_pknEType__;
text: .text%__1cJAssemblerEaddq6MnHAddress_i_v_;
text: .text%JVM_GetClassName;
text: .text%__1cTconvF2D_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cLStringTableGintern6FpkcpnGThread__pnHoopDesc__;
-text: .text%__1cMmulD_immNodeJnum_opnds6kM_I_;
text: .text%__1cNmulI_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQorI_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
text: .text%__1cQjava_lang_ThreadMset_priority6FpnHoopDesc_nOThreadPriority__v_;
text: .text%__1cRsubL_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRaddL_rReg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cRsubL_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRsubL_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cPshrL_rReg_1NodeErule6kM_I_;
text: .text%__1cQshrI_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cFStateO_sub_Op_CMoveI6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_RegD6MpknENode__v_;
text: .text%__1cQorI_rReg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cUCallNativeDirectNodeHtwo_adr6kM_I_;
-text: .text%__1cTconvI2D_reg_regNodeMcisc_operand6kM_i_;
text: .text%__1cXNativeSignatureIteratorGdo_int6M_v_;
text: .text%__1cIMaxINodeJideal_reg6kM_I_;
text: .text%__1cFJNIid2t6MpnMklassOopDesc_ip0_v_;
@@ -5774,31 +3716,18 @@
text: .text%__1cJAssemblerEaddq6MpnMRegisterImpl_nHAddress__v_;
text: .text%JVM_Open;
text: .text%__1cHRegMask2t6Miiiiiii_v_;
-text: .text%__1cbFloadConL_0x6666666666666667NodeHtwo_adr6kM_I_;
text: .text%__1cNsubI_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMmulF_regNodePoper_input_base6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerVincrement_mdp_data_at6MpnMRegisterImpl_i_v_;
-text: .text%__1cQConstantIntValuePis_constant_int6kM_i_;
-text: .text%__1cRmulL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPsarL_rReg_2NodeHtwo_adr6kM_I_;
-text: .text%__1cKmul_hiNodeHtwo_adr6kM_I_;
text: .text%__1cQConstantIntValue2t6MpnTDebugInfoReadStream__v_;
-text: .text%__1cRxorI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateM_sub_Op_ConD6MpknENode__v_;
text: .text%__1cLConvI2DNodeGOpcode6kM_i_;
text: .text%__1cVLoaderConstraintTableJnew_entry6MIpnNsymbolOopDesc_pnMklassOopDesc_ii_pnVLoaderConstraintEntry__;
-text: .text%__1cNaddP_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPcmpF_cc_regNodeMcisc_operand6kM_i_;
text: .text%__1cJAssemblerFcmovl6Mn0AJCondition_pnMRegisterImpl_3_v_;
-text: .text%__1cVscale_to_lwp_priority6Fiii_i_: os_solaris.o;
-text: .text%__1cLOptoRuntimeWresolve_virtual_call_C6FpnKJavaThread__pC_;
text: .text%__1cNPerfByteArray2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_i_v_;
-text: .text%__1cLStrCompNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cMmulF_memNodeMideal_Opcode6kM_i_;
text: .text%__1cKConv2BNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cJloadDNodeJnum_opnds6kM_I_;
text: .text%__1cFStateM_sub_Op_RegF6MpknENode__v_;
-text: .text%__1cMmulF_immNodeJnum_opnds6kM_I_;
text: .text%__1cOMacroAssemblerKnull_check6MpnMRegisterImpl_i_v_;
text: .text%__1cNcmovP_regNodeHtwo_adr6kM_I_;
text: .text%jni_GetStaticObjectField: jni.o;
@@ -5806,19 +3735,14 @@
text: .text%__1cScompL_rReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSTailCalljmpIndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTconvD2F_reg_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cLCastP2LNodeUdepends_only_on_test6kM_i_;
text: .text%__1cTconvF2D_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulD_immNodeHtwo_adr6kM_I_;
text: .text%__1cOMacroAssemblerFleave6M_v_;
text: .text%__1cMloadConDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMTailCallNode2t6MpnENode_222222_v_;
-text: .text%__1cICmpDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cXPartialSubtypeCheckNodeGOpcode6kM_i_;
text: .text%__1cSTailCalljmpIndNodeFreloc6kM_i_;
-text: .text%__1cObox_handleNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cOloadConL32NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMlogD_regNodePoper_input_base6kM_I_;
-text: .text%__1cTconvI2F_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cMnegD_regNodeErule6kM_I_;
text: .text%__1cLvframeArrayRregister_location6kMi_pC_;
text: .text%__1cQorI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -5826,10 +3750,7 @@
text: .text%__1cIOSThreadNpd_initialize6M_v_;
text: .text%__1cCosScurrent_process_id6F_i_;
text: .text%__1cMaddD_immNodeErule6kM_I_;
-text: .text%__1cNmaxI_rRegNodePoper_input_base6kM_I_;
text: .text%__1cPshrL_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cTconvI2F_reg_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cNmaxI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMaxINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cCosRinitialize_thread6F_v_;
text: .text%__1cCosHSolarisKvm_signals6F_pnIsigset_t__;
@@ -5844,7 +3765,6 @@
text: .text%__1cIOSThread2t6MpFpv_i1_v_;
text: .text%jni_CallStaticVoidMethod: jni.o;
text: .text%__1cCosScurrent_stack_size6F_L_;
-text: .text%__1cNPhaseRegAllocHset_oop6MpknENode_i_v_;
text: .text%__1cCosScurrent_stack_base6F_pC_;
text: .text%__1cJloadFNodeFreloc6kM_i_;
text: .text%__1cCosMstart_thread6FpnGThread__v_;
@@ -5853,14 +3773,10 @@
text: .text%__1cXNativeSignatureIteratorHdo_long6M_v_;
text: .text%__1cNcmovL_memNodeErule6kM_I_;
text: .text%__1cFStateO_sub_Op_StoreF6MpknENode__v_;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cCosPpd_start_thread6FpnGThread__v_;
text: .text%__1cNcmovL_regNodeMcisc_operand6kM_i_;
-text: .text%__1cCosNcreate_thread6FpnGThread_n0AKThreadType_L_i_;
-text: .text%__1cLconvI2BNodePoper_input_base6kM_I_;
text: .text%__1cOGenerateOopMapMdo_checkcast6M_v_;
text: .text%JVM_SetThreadPriority;
-text: .text%__1cG_start6Fpv_0_: os_solaris.o;
text: .text%__1cLOptoRuntimeMrethrow_Type6F_pknITypeFunc__;
text: .text%JVM_GetStackAccessControlContext;
text: .text%JVM_IsThreadAlive;
@@ -5868,27 +3784,16 @@
text: .text%__1cSstring_compareNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNdivI_rRegNodeErule6kM_I_;
text: .text%__1cNdecL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOLibraryCallKitYinline_native_time_funcs6Mi_i_;
text: .text%__1cNGrowableArray4CpknEType__2t6MpnFArena_iirk2_v_;
text: .text%__1cFParseVcatch_call_exceptions6MrnYciExceptionHandlerStream__v_;
-text: .text%__1cTconvL2F_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cQjava_lang_ThreadIis_alive6FpnHoopDesc__i_;
text: .text%jni_CallObjectMethod: jni.o;
text: .text%__1cJAssemblerExorq6MpnMRegisterImpl_2_v_;
-text: .text%__1cNcmovL_regNodeJnum_opnds6kM_I_;
text: .text%__1cLOptoRuntimeYcurrent_time_millis_Type6F_pknITypeFunc__;
text: .text%__1cOcmovI_regUNodeMideal_Opcode6kM_i_;
-text: .text%__1cNcmovL_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cNObjectMonitorJnotifyAll6MpnGThread__v_;
text: .text%__1cMsubD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cNloadConL0NodeFclone6kM_pnENode__;
text: .text%__1cPcmpF_cc_regNodeErule6kM_I_;
-text: .text%__1cJimmL0OperFclone6kM_pnIMachOper__;
text: .text%__1cNmodI_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPcmpF_cc_regNodeJnum_opnds6kM_I_;
-text: .text%__1cPcmpF_cc_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cbFloadConL_0x6666666666666667NodePoper_input_base6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerFpop_d6MpnRFloatRegisterImpl__v_;
text: .text%__1cTconvL2D_reg_memNodePoper_input_base6kM_I_;
text: .text%__1cLConvD2FNodeGOpcode6kM_i_;
text: .text%__1cWThreadLocalAllocBufferKinitialize6M_v_;
@@ -5896,45 +3801,30 @@
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorEtemp6F_pnMRegisterImpl__;
text: .text%__1cMmulF_immNodeHtwo_adr6kM_I_;
text: .text%__1cQsarL_rReg_63NodeHtwo_adr6kM_I_;
-text: .text%__1cQsarL_rReg_63NodeJnum_opnds6kM_I_;
-text: .text%__1cQjava_lang_StringbHcreate_from_platform_depended_str6FpkcpnGThread__nGHandle__;
text: .text%__1cMsubF_regNodeMideal_Opcode6kM_i_;
text: .text%__1cTconvI2L_reg_regNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWThreadLocalAllocBufferMinitial_size6F_L_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorJpass_long6M_v_;
text: .text%__1cSInterpreterRuntimeMat_safepoint6FpnKJavaThread__v_;
text: .text%__1cTconvF2I_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cRandI_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cRandI_rReg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cCosNcommit_memory6FpcL_i_;
-text: .text%__1cNdivI_rRegNodeJnum_opnds6kM_I_;
-text: .text%__1cENodeJis_MemBar6kM_pknKMemBarNode__;
-text: .text%__1cNjni_functions6F_pknTJNINativeInterface___;
-text: .text%__1cNThreadServiceKadd_thread6FpnKJavaThread_i_v_;
text: .text%JVM_NativePath;
text: .text%__1cKJavaThreadKinitialize6M_v_;
-text: .text%__1cHThreadsDadd6FpnKJavaThread_i_v_;
-text: .text%__1cGParker2t6M_v_;
text: .text%__1cOPhaseIdealLoopKdo_peeling6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cUThreadSafepointStateGcreate6FpnKJavaThread__v_;
text: .text%__1cPciInstanceKlassLjava_mirror6M_pnKciInstance__;
text: .text%__1cKJavaThreadYcreate_stack_guard_pages6M_v_;
text: .text%__1cUThreadSafepointState2t6MpnKJavaThread__v_;
-text: .text%__1cCosMguard_memory6FpcL_i_;
text: .text%__1cMnegD_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cUCallNativeDirectNodePoper_input_base6kM_I_;
text: .text%__1cHnmethodTinc_decompile_count6M_v_;
text: .text%__1cIMinINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cMResourceMarkNreset_to_mark6M_v_;
text: .text%__1cQThreadStatistics2t6M_v_;
-text: .text%__1cMFlatProfilerJis_active6F_i_;
-text: .text%__1cNloadConPcNodeLbottom_type6kM_pknEType__;
text: .text%__1cMmulD_regNodeErule6kM_I_;
text: .text%__1cMdivD_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKJavaThread2t6MpFp0pnGThread__vL_v_;
text: .text%__1cPcmpD_cc_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvI2D_reg_regNodeErule6kM_I_;
-text: .text%__1cQshrL_rReg_CLNodeJnum_opnds6kM_I_;
text: .text%__1cNcmovL_memNodePoper_input_base6kM_I_;
text: .text%__1cNdivL_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmpD_cc_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -5949,38 +3839,25 @@
text: .text%__1cVCallRuntimeDirectNodeFreloc6kM_i_;
text: .text%__1cIGraphKitIset_jvms6MpnIJVMState__v_;
text: .text%__1cKJavaThreadDrun6M_v_;
-text: .text%__1cTconvD2I_reg_regNodeJnum_opnds6kM_I_;
text: .text%__1cOsalI_mem_1NodePoper_input_base6kM_I_;
-text: .text%__1cSMachCallNativeNodePret_addr_offset6M_i_;
text: .text%__1cMLinkResolverbEresolve_interface_call_or_null6FnLKlassHandle_1nMsymbolHandle_21_nMmethodHandle__;
-text: .text%__1cZInterpreterMacroAssemblerFpop_f6MpnRFloatRegisterImpl__v_;
text: .text%__1cMrdi_RegIOperEtype6kM_pknEType__;
-text: .text%__1cVThreadStateTransitionKtransition6FpnKJavaThread_nPJavaThreadState_3_v_;
-text: .text%__1cUCallNativeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKJavaThreadRthread_main_inner6M_v_;
-text: .text%__1cQorI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cIGraphKitbAgen_stub_or_native_wrapper6MpCpkcpnIciMethod_iiiii_v_;
text: .text%__1cPsalL_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMResourceMark2t6M_v_;
text: .text%__1cQshrI_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJScopeDescGlocals6M_pnNGrowableArray4CpnKScopeValue____;
text: .text%__1cJScopeDescVdecode_monitor_values6Mi_pnNGrowableArray4CpnMMonitorValue____;
-text: .text%__1cSvframeArrayElementPunpack_on_stack6MiipnFframe_ii_v_;
-text: .text%__1cTAbstractInterpreterRlayout_activation6FpnNmethodOopDesc_iiiipnFframe_4i_v_;
text: .text%__1cOcompiledVFrameLexpressions6kM_pnUStackValueCollection__;
text: .text%__1cOcompiledVFrameImonitors6kM_pnNGrowableArray4CpnLMonitorInfo____;
text: .text%__1cOcompiledVFrameGmethod6kM_pnNmethodOopDesc__;
text: .text%__1cSvframeArrayElementHfill_in6MpnOcompiledVFrame__v_;
text: .text%__1cOcompiledVFrameHraw_bci6kM_i_;
-text: .text%__1cNGrowableArray4CpnLMonitorInfo__2t6Mii_v_;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
text: .text%__1cOMacroAssemblerKincrementl6MpnMRegisterImpl_i_v_;
text: .text%__1cFframebCinterpreter_frame_set_locals6Mpl_v_;
text: .text%__1cFframebHinterpreter_frame_set_monitor_end6MpnPBasicObjectLock__v_;
-text: .text%__1cTAbstractInterpreterPsize_activation6FpnNmethodOopDesc_iiiii_i_;
text: .text%__1cSPerfStringConstant2t6MnJCounterNS_pkc3_v_;
-text: .text%__1cTAbstractInterpreterQcontinuation_for6FpnNmethodOopDesc_pCiiri_3_;
-text: .text%__1cZInterpreterMacroAssemblerLcall_VM_Ico6MpnMRegisterImpl_pC2i_v_;
text: .text%__1cFframebCinterpreter_frame_set_method6MpnNmethodOopDesc__v_;
text: .text%__1cMmulF_regNodeMideal_Opcode6kM_i_;
text: .text%__1cFframebBinterpreter_frame_sender_sp6kM_pl_;
@@ -5991,18 +3868,10 @@
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_i_v_;
text: .text%__1cOcompiledVFrameGlocals6kM_pnUStackValueCollection__;
text: .text%__1cJScopeDescLexpressions6M_pnNGrowableArray4CpnKScopeValue____;
-text: .text%__1cTconvF2D_reg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cSvframeArrayElementNon_stack_size6kMiiii_i_;
-text: .text%__1cMaddD_regNodePoper_input_base6kM_I_;
text: .text%__1cXjava_lang_boxing_objectJget_value6FpnHoopDesc_pnGjvalue__nJBasicType__;
-text: .text%__1cMorL_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cOcmovD_regUNodePoper_input_base6kM_I_;
text: .text%__1cPcmovI_reg_gNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMdivD_immNodePoper_input_base6kM_I_;
-text: .text%__1cJloadDNodeHtwo_adr6kM_I_;
text: .text%__1cKReflectionTunbox_for_primitive6FpnHoopDesc_pnGjvalue_pnGThread__nJBasicType__;
text: .text%__1cCosMset_priority6FpnGThread_nOThreadPriority__nIOSReturn__;
-text: .text%__1cMmulF_memNodeJnum_opnds6kM_I_;
text: .text%__1cIMulDNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cODeoptimizationVtrap_state_add_reason6Fii_i_;
text: .text%__1cDhpiFclose6Fi_i_;
@@ -6012,32 +3881,22 @@
text: .text%__1cNcmovL_regNodeMideal_Opcode6kM_i_;
text: .text%__1cZInterpreterMacroAssemblerWupdate_mdp_by_constant6MpnMRegisterImpl_i_v_;
text: .text%__1cOtailjmpIndNodeNis_block_proj6kM_pknENode__;
-text: .text%__1cRaddL_rReg_memNodeJnum_opnds6kM_I_;
text: .text%__1cTconvI2F_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvL2F_reg_regNodeMideal_Opcode6kM_i_;
text: .text%__1cGICStubKcached_oop6kM_pnHoopDesc__;
text: .text%__1cRInlineCacheBufferUic_buffer_cached_oop6FpC_pnHoopDesc__;
-text: .text%__1cTconvD2F_reg_regNodePoper_input_base6kM_I_;
-text: .text%__1cJAssemblerFpushq6Mi_v_;
text: .text%JVM_Close;
-text: .text%__1cMnegF_regNodePoper_input_base6kM_I_;
-text: .text%__1cOcmovI_regUNodeJnum_opnds6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorRset_unimplemented6Mi_v_;
text: .text%__1cRComputeEntryStackJdo_object6Mii_v_;
text: .text%__1cMLinkResolverYresolve_interface_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cOcmovI_regUNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cGThreadMset_priority6Fp0nOThreadPriority__v_;
text: .text%jni_NewObjectV: jni.o;
text: .text%__1cKConv2BNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cQshrL_rReg_CLNodeErule6kM_I_;
text: .text%__1cTconvF2D_reg_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmethodbCcan_not_entrant_be_converted6M_i_;
text: .text%__1cNSafePointNodeQpeek_monitor_obj6kM_pnENode__;
text: .text%__1cOcmovI_regUNodeMcisc_operand6kM_i_;
text: .text%__1cNSafePointNodeQpeek_monitor_box6kM_pnENode__;
text: .text%__1cJLoadBNodeMstore_Opcode6kM_i_;
-text: .text%__1cVCompressedWriteStreamKwrite_long6Mx_v_;
-text: .text%__1cTconvF2I_reg_regNodePoper_input_base6kM_I_;
text: .text%__1cLConvF2INodeGOpcode6kM_i_;
text: .text%__1cPMultiBranchDataScompute_cell_count6FpnOBytecodeStream__i_;
text: .text%__1cFParsePdo_monitor_exit6M_v_;
@@ -6047,70 +3906,39 @@
text: .text%__1cRStubCodeGeneratorLstub_prolog6MpnMStubCodeDesc__v_;
text: .text%__1cKcastPPNodeErule6kM_I_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pF3_v3_v_;
-text: .text%__1cOsalI_mem_1NodeJnum_opnds6kM_I_;
text: .text%__1cKJavaThreadbFdeoptimized_wrt_marked_nmethods6M_v_;
text: .text%__1cKJavaThreadHprepare6MpnI_jobject_nOThreadPriority__v_;
-text: .text%__1cPshrL_rReg_1NodeJnum_opnds6kM_I_;
-text: .text%__1cRandI_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRandI_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cQorI_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cJAssemblerGmovslq6MpnMRegisterImpl_2_v_;
text: .text%__1cRandI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cQjava_lang_ThreadJstackSize6FpnHoopDesc__x_;
text: .text%__1cRConstantLongValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%JVM_StartThread;
text: .text%__1cMthread_entry6FpnKJavaThread_pnGThread__v_: jvm.o;
-text: .text%__1cTconvF2D_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMsubD_regNodeErule6kM_I_;
text: .text%__1cQjava_lang_ThreadIpriority6FpnHoopDesc__nOThreadPriority__;
text: .text%__1cNmulI_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cIMulFNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cLRuntimeStub2n6FLI_pv_;
-text: .text%__1cLRuntimeStubQnew_runtime_stub6FpkcpnKCodeBuffer_ipnJOopMapSet_i_p0_;
-text: .text%__1cLRuntimeStub2t6MpkcpnKCodeBuffer_iipnJOopMapSet_i_v_;
-text: .text%__1cTconvF2D_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cRxorI_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMmulF_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOLibraryCallKitbDis_method_invoke_or_aux_frame6MpnIJVMState__i_;
text: .text%__1cbFloadConL_0x6666666666666667NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIAddFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOloadConL32NodeHsize_of6kM_I_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJOperation__v4_v_;
text: .text%__1cRaddL_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivLNodeJideal_reg6kM_I_;
text: .text%__1cGICStubFclear6M_v_;
-text: .text%__1cTconvI2D_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cMsubD_regNodeJnum_opnds6kM_I_;
-text: .text%__1cMsubD_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cHCompileWget_MethodAccessorImpl6M_pnPciInstanceKlass__;
-text: .text%__1cHCompileRget_Method_invoke6M_pnIciMethod__;
text: .text%__1cNdecI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFTypeFFxdual6kM_pknEType__;
-text: .text%__1cTconvL2D_reg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvI2D_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cTunsafe_intrinsic_id6FpnNsymbolOopDesc_1_nMvmIntrinsicsCID__;
-text: .text%__1cPPerfDataManagerUcreate_long_constant6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongConstant__;
text: .text%__1cFStateM_sub_Op_ConF6MpknENode__v_;
text: .text%__1cMloadConFNodeHsize_of6kM_I_;
text: .text%__1cPsarL_rReg_2NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQsarL_rReg_63NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPoldgetTimeNanos6F_x_;
-text: .text%__1cPno_rax_RegLOperFclone6kM_pnIMachOper__;
-text: .text%__1cTAbstractInterpreterMreturn_entry6FnITosState_i_pC_;
-text: .text%__1cPsarL_rReg_1NodePoper_input_base6kM_I_;
-text: .text%__1cMnegD_regNodeJnum_opnds6kM_I_;
text: .text%__1cKmul_hiNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJAssemblerEjccb6Mn0AJCondition_rnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cNcmovP_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cHMonitor2T6M_v_;
text: .text%__1cINegDNodeLbottom_type6kM_pknEType__;
-text: .text%__1cLvframeArrayIallocate6FpnKJavaThread_ipnNGrowableArray4CpnOcompiledVFrame___pnLRegisterMap_nFframe_9A9A9A_p0_;
-text: .text%__1cNThreadServiceNremove_thread6FpnKJavaThread_i_v_;
text: .text%__1cQjava_lang_ThreadbGinherited_access_control_context6FpnHoopDesc__2_;
-text: .text%__1cODeoptimizationScreate_vframeArray6FpnKJavaThread_nFframe_pnLRegisterMap__pnLvframeArray__;
text: .text%__1cHThreadsGremove6FpnKJavaThread__v_;
text: .text%__1cODeoptimizationTuncommon_trap_inner6FpnKJavaThread_i_v_;
-text: .text%__1cODeoptimizationPget_method_data6FpnKJavaThread_nMmethodHandle_i_pnRmethodDataOopDesc__;
text: .text%__1cLensure_join6FpnKJavaThread__v_: thread.o;
text: .text%__1cIOSThread2T6M_v_;
text: .text%__1cODeoptimizationNuncommon_trap6FpnKJavaThread_i_pn0ALUnrollBlock__;
@@ -6118,10 +3946,7 @@
text: .text%__1cODeoptimizationRgather_statistics6Fn0ALDeoptReason_n0ALDeoptAction_nJBytecodesECode__v_;
text: .text%__1cUThreadSafepointStateHdestroy6FpnKJavaThread__v_;
text: .text%__1cIGraphKitTdprecision_rounding6MpnENode__2_;
-text: .text%__1cNGrowableArray4CpnOcompiledVFrame__2t6Mii_v_;
text: .text%__1cOcmovI_regUNodeErule6kM_I_;
-text: .text%__1cKJavaThreadEexit6Mi_v_;
-text: .text%__1cGParker2T6M_v_;
text: .text%__1cCosLfree_thread6FpnIOSThread__v_;
text: .text%__1cXpartialSubtypeCheckNodeMideal_Opcode6kM_i_;
text: .text%JVM_GetInheritedAccessControlContext;
@@ -6135,10 +3960,6 @@
text: .text%__1cRInlineCacheBufferSic_destination_for6FpnKCompiledIC__pC_;
text: .text%__1cLvframeArrayPunpack_to_stack6MrnFframe_i_v_;
text: .text%__1cOcompL_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cODeoptimizationLUnrollBlock2t6MiiiiiplppCnJBasicType__v_;
-text: .text%__1cLvframeArrayHfill_in6MpnKJavaThread_ipnNGrowableArray4CpnOcompiledVFrame___pknLRegisterMap_i_v_;
-text: .text%__SLIP.DELETER__A: thread.o;
-text: .text%__1cbIjava_security_AccessControlContextGcreate6FnOobjArrayHandle_inGHandle_pnGThread__pnHoopDesc__;
text: .text%__1cIOSThreadKpd_destroy6M_v_;
text: .text%__1cMaddF_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cODeoptimizationYfetch_unroll_info_helper6FpnKJavaThread__pn0ALUnrollBlock__;
@@ -6146,15 +3967,12 @@
text: .text%__1cKJavaThreadYremove_stack_guard_pages6M_v_;
text: .text%__1cODeoptimizationNunpack_frames6FpnKJavaThread_i_nJBasicType__;
text: .text%__1cNnmethodLocker2t6MpC_v_;
-text: .text%__1cTconvD2I_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cOtailjmpIndNodeMideal_Opcode6kM_i_;
text: .text%__1cLconvI2BNodeErule6kM_I_;
text: .text%__1cTconvF2I_reg_regNodeErule6kM_I_;
text: .text%__1cIciMethodVget_osr_flow_analysis6Mi_pnKciTypeFlow__;
text: .text%__1cSCallLeafDirectNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cQAbstractCompilerMsupports_osr6M_i_;
text: .text%__1cRaddL_mem_rRegNodePoper_input_base6kM_I_;
-text: .text%__1cSCallLeafDirectNodeJnum_opnds6kM_I_;
text: .text%__1cXjava_lang_reflect_FieldJmodifiers6FpnHoopDesc__i_;
text: .text%__1cMmulL_memNodePoper_input_base6kM_I_;
text: .text%__1cODeoptimizationLUnrollBlock2T6M_v_;
@@ -6171,14 +3989,10 @@
text: .text%__1cZInterpreterMacroAssemblerNdispatch_only6MnITosState__v_;
text: .text%__1cRcmpFastUnlockNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKloadUBNodeFreloc6kM_i_;
-text: .text%__1cMStartOSRNodeScalling_convention6kMpnLOptoRegPair_I_v_;
text: .text%__1cMStartOSRNodeKosr_domain6F_pknJTypeTuple__;
-text: .text%__1cMloadConPNodeGis_Con6kM_I_;
text: .text%__1cMmulD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cXjava_lang_reflect_FieldFclazz6FpnHoopDesc__2_;
-text: .text%__1cOPSVirtualSpaceJexpand_by6ML_i_;
text: .text%__1cNCallGeneratorHfor_osr6FpnIciMethod_i_p0_;
-text: .text%__1cFParseWload_interpreter_state6MpnENode_2_v_;
text: .text%__1cKstoreINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOstackSlotDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%jni_GetFloatArrayRegion: jni.o;
@@ -6191,121 +4005,82 @@
text: .text%__1cIAddFNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJloadDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMlogD_regNodeErule6kM_I_;
-text: .text%__1cXpartialSubtypeCheckNodePoper_input_base6kM_I_;
text: .text%__1cNmulI_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cMdecI_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQsalL_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKemit_break6FrnKCodeBuffer__v_;
text: .text%jni_GetStaticMethodID: jni.o;
-text: .text%__1cOstackSlotDOperJnum_edges6kM_I_;
text: .text%__1cMsubF_regNodeMcisc_operand6kM_i_;
text: .text%__1cMdecI_memNodeFreloc6kM_i_;
-text: .text%__1cMdecI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRCardTableModRefBSbCfind_covering_region_by_base6MpnIHeapWord__i_;
text: .text%__1cRCardTableModRefBSVresize_covered_region6MnJMemRegion__v_;
text: .text%__1cINegFNodeGOpcode6kM_i_;
text: .text%__1cRCardTableModRefBSbAlargest_prev_committed_end6kMi_pnIHeapWord__;
-text: .text%__1cLloadSSDNodeJnum_opnds6kM_I_;
text: .text%__1cSMachBreakpointNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSCardTableExtensionVresize_covered_region6MnJMemRegion__v_;
-text: .text%__1cLconvI2BNodeJnum_opnds6kM_I_;
text: .text%__1cNstoreImmPNodePoper_input_base6kM_I_;
text: .text%__1cKReflectionUarray_component_type6FpnHoopDesc_pnGThread__2_;
text: .text%__1cKoopFactoryUnew_compiledICHolder6FnMmethodHandle_nLKlassHandle_pnGThread__pnXcompiledICHolderOopDesc__;
-text: .text%__1cHCompile2t6MpnFciEnv_pF_pknITypeFunc_pCpkciiii_v_;
text: .text%__1cTconvL2F_reg_regNodeMcisc_operand6kM_i_;
-text: .text%__1cMciArrayKlassOis_array_klass6M_i_;
-text: .text%__1cNloadConPcNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cKarrayKlassWuncached_lookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cFStateM_sub_Op_CmpD6MpknENode__v_;
-text: .text%__1cNloadConL0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cUCallNativeDirectNodeKmethod_set6Ml_v_;
text: .text%__1cKcastPPNodeMideal_Opcode6kM_i_;
-text: .text%__1cNcmovL_memNodeJnum_opnds6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerUprofile_taken_branch6MpnMRegisterImpl_2_v_;
text: .text%__1cPshrL_rReg_1NodeHtwo_adr6kM_I_;
-text: .text%__1cIGraphKitIgen_stub6MpCpkciii_v_;
text: .text%__1cbDcatch_cleanup_find_cloned_def6FpnFBlock_pnENode_1rnLBlock_Array_i_3_: lcm.o;
text: .text%__1cVcompiledICHolderKlassIallocate6MpnGThread__pnXcompiledICHolderOopDesc__;
-text: .text%__1cTC2IAdapterGeneratorUmkh_unverified_entry6FnMmethodHandle__pC_;
-text: .text%__1cRaddL_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cLOptoRuntimeNgenerate_stub6FpnFciEnv_pF_pknITypeFunc_pCpkciiii_8_;
text: .text%__1cISubDNodeLbottom_type6kM_pknEType__;
text: .text%__1cbCcatch_cleanup_fix_all_inputs6FpnENode_11_v_: lcm.o;
text: .text%__1cISubFNodeLbottom_type6kM_pknEType__;
text: .text%__1cNdivI_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNTemplateTableGbranch6Fii_v_;
-text: .text%__1cNstoreImmPNodeHtwo_adr6kM_I_;
-text: .text%__1cLOptoRuntimeRnew_objArray_Type6F_pknITypeFunc__;
text: .text%JVM_GetComponentType;
text: .text%__1cIMulDNodeJideal_reg6kM_I_;
-text: .text%__1cTconvF2D_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cJAssemblerEsbbq6MpnMRegisterImpl_i_v_;
text: .text%__1cNcmovL_memNodeMideal_Opcode6kM_i_;
text: .text%jni_GetStringRegion: jni.o;
text: .text%jni_EnsureLocalCapacity: jni.o;
-text: .text%__1cLloadSSDNodeHtwo_adr6kM_I_;
text: .text%__1cMaddF_memNodePoper_input_base6kM_I_;
text: .text%__1cFParseMdo_anewarray6M_v_;
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cLconvI2BNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pC22i_v_;
text: .text%__1cHThreadsYis_supported_jni_version6Fi_C_;
-text: .text%__1cMincL_memNodeJnum_opnds6kM_I_;
-text: .text%__1cRandL_rReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKarrayKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cRaddL_mem_rRegNodeJnum_opnds6kM_I_;
text: .text%JVM_NewArray;
text: .text%JVM_FreeMemory;
text: .text%JVM_TotalMemory;
-text: .text%__1cMaddD_immNodeJnum_opnds6kM_I_;
-text: .text%__1cMsubF_regNodeJnum_opnds6kM_I_;
-text: .text%__1cLloadSSINodePoper_input_base6kM_I_;
text: .text%__1cNinstanceKlassPadd_osr_nmethod6MpnHnmethod__v_;
text: .text%__1cMincI_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReflectionRreflect_new_array6FpnHoopDesc_ipnGThread__pnMarrayOopDesc__;
-text: .text%__1cMsubF_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMmulF_memNodeErule6kM_I_;
text: .text%__1cODeoptimizationbJupdate_method_data_from_interpreter6FnQmethodDataHandle_ii_v_;
text: .text%__1cLClassLoaderSget_system_package6FpkcpnGThread__pnHoopDesc__;
text: .text%__1cMTailJumpNodeKmatch_edge6kMI_I_;
-text: .text%__1cFStateL_sub_Op_Box6MpknENode__v_;
text: .text%__1cRaddL_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cTconvL2F_reg_regNodeErule6kM_I_;
text: .text%__1cKPSYoungGenLpost_resize6M_v_;
text: .text%__1cNcmovL_regNodeErule6kM_I_;
-text: .text%__1cOcmovD_regUNodeJnum_opnds6kM_I_;
text: .text%__1cRandI_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMnegF_regNodeHtwo_adr6kM_I_;
-text: .text%__1cTAbstractInterpreterRTosState_as_index6FnITosState__i_;
text: .text%__1cHThreadsbMis_supported_jni_version_including_1_16Fi_C_;
text: .text%__1cKstoreBNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%__1cMincL_memNodeMideal_Opcode6kM_i_;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cJloadCNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cCosPuncommit_memory6FpcL_i_;
text: .text%__1cSInterpreterRuntimeJnote_trap6FpnKJavaThread_ipnGThread__v_;
text: .text%__1cRSignatureIteratorHiterate6M_v_;
text: .text%__1cIModLNodeJideal_reg6kM_I_;
-text: .text%__1cNTemplateTableOpatch_bytecode6FnJBytecodesECode_pnMRegisterImpl_4i_v_;
text: .text%__1cLConvD2INodeLbottom_type6kM_pknEType__;
text: .text%__1cMaddF_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cHBoxNodeLbottom_type6kM_pknEType__;
text: .text%__1cFStateM_sub_Op_DivL6MpknENode__v_;
text: .text%__1cTconvL2D_reg_memNodeErule6kM_I_;
text: .text%JVM_GetSystemPackage;
-text: .text%__1cCosNcommit_memory6FpcLL_i_;
text: .text%__1cOMacroAssemblerFenter6M_v_;
text: .text%__1cLConvF2DNodeJideal_reg6kM_I_;
text: .text%__1cNTemplateTableLindex_check6FpnMRegisterImpl_2_v_;
text: .text%__1cKNativeJumpUpatch_verified_entry6FpC11_v_;
text: .text%__1cLMoveL2DNodeGOpcode6kM_i_;
-text: .text%__1cMincI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateP_sub_Op_ConvF2D6MpknENode__v_;
text: .text%__1cMmulL_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%Unsafe_DefineClass1;
-text: .text%__1cSUnsafe_DefineClass6FpnHJNIEnv__pnI_jstring_pnL_jbyteArray_iipnI_jobject_7_pnH_jclass__: unsafe.o;
text: .text%__1cFTypeDFxdual6kM_pknEType__;
text: .text%__1cMincI_memNodeFreloc6kM_i_;
text: .text%__1cPcmpF_cc_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -6314,12 +4089,8 @@
text: .text%__1cTconvF2D_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%JVM_DefineClass;
text: .text%__1cMaddF_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cMmulL_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cMmulL_memNodeJnum_opnds6kM_I_;
text: .text%__1cJAssemblerEshrq6MpnMRegisterImpl_i_v_;
-text: .text%__1cTC2IAdapterGeneratorLadapter_for6FnMmethodHandle__pnKC2IAdapter__;
text: .text%__1cPcmpFastLockNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cZInterpreterMacroAssemblerQtest_mdp_data_at6MpnMRegisterImpl_i2rnFLabel__v_;
text: .text%__1cZInterpreterMacroAssemblerYprofile_not_taken_branch6MpnMRegisterImpl__v_;
text: .text%__1cTleaPIdxScaleOffNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
@@ -6327,42 +4098,29 @@
text: .text%__1cYjava_lang_reflect_MethodEslot6FpnHoopDesc__i_;
text: .text%__1cYjava_lang_reflect_MethodLreturn_type6FpnHoopDesc__2_;
text: .text%__1cYjava_lang_reflect_MethodPparameter_types6FpnHoopDesc__2_;
-text: .text%__1cNloadConL0NodeGis_Con6kM_I_;
-text: .text%__1cMset_property6FnGHandle_pkc2pnGThread__v_: jvm.o;
text: .text%JVM_GetCPFieldModifiers;
text: .text%JVM_InvokeMethod;
text: .text%__1cFKlassWcompute_modifier_flags6kMpnGThread__i_;
-text: .text%__1cZcatch_cleanup_inter_block6FpnENode_pnFBlock_13rnLBlock_Array_i_v_: lcm.o;
text: .text%__1cOsalI_mem_1NodeMideal_Opcode6kM_i_;
-text: .text%__1cMaddF_immNodeJnum_opnds6kM_I_;
-text: .text%__1cMsubD_immNodePoper_input_base6kM_I_;
text: .text%__1cMmulF_regNodeMcisc_operand6kM_i_;
-text: .text%__1cMmulF_regNodeJnum_opnds6kM_I_;
-text: .text%__1cMmulF_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cMmulD_regNodeHtwo_adr6kM_I_;
text: .text%__1cTconvD2F_reg_regNodeMcisc_operand6kM_i_;
text: .text%jni_AllocObject: jni.o;
-text: .text%__1cCosHSolarisOset_mpss_range6FpcLL_i_;
text: .text%__1cTconvF2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFParseOdo_tableswitch6M_v_;
text: .text%__1cTmembar_volatileNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReflectionNinvoke_method6FpnHoopDesc_nGHandle_nOobjArrayHandle_pnGThread__2_;
-text: .text%__1cMrdx_RegLOperFclone6kM_pnIMachOper__;
text: .text%__1cICmpFNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJCondition__v4_v_;
-text: .text%__1cFj_not6FnNTemplateTableJCondition__nJAssemblerJCondition__: templateTable_amd64.o;
text: .text%__1cNTemplateTableMlocals_index6FpnMRegisterImpl_i_v_;
text: .text%__1cTconvF2D_reg_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cMmulF_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%Unsafe_AllocateInstance;
text: .text%__1cZInterpreterMacroAssemblerNunlock_object6MpnMRegisterImpl__v_;
text: .text%__1cOcmovD_regUNodeMideal_Opcode6kM_i_;
-text: .text%__1cIciObjectMis_classless6kM_i_;
text: .text%__1cMsubD_immNodeMideal_Opcode6kM_i_;
text: .text%__1cRInlineCacheBufferOinit_next_stub6F_v_;
text: .text%__1cPshrL_rReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMsubD_immNodeErule6kM_I_;
-text: .text%__1cHTypePtrKadd_offset6kMi_pk0_;
text: .text%__1cNTemplateTableHconvert6F_v_;
text: .text%__1cMnegD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQorI_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
@@ -6377,7 +4135,6 @@
text: .text%__1cScompL_rReg_memNodeMideal_Opcode6kM_i_;
text: .text%__1cXpartialSubtypeCheckNodeErule6kM_I_;
text: .text%__1cOstackSlotDOperEtype6kM_pknEType__;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cLloadSSDNodeErule6kM_I_;
text: .text%__1cMsubD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRComputeEntryStackIdo_short6M_v_;
@@ -6390,7 +4147,6 @@
text: .text%__1cMorL_rRegNodeMcisc_operand6kM_i_;
text: .text%__1cMmulD_memNodeMideal_Opcode6kM_i_;
text: .text%__1cMaddD_regNodeMideal_Opcode6kM_i_;
-text: .text%__1cTconvI2D_reg_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMnegF_regNodeMideal_Opcode6kM_i_;
text: .text%__1cMloadConFNodeFreloc6kM_i_;
text: .text%__1cILogDNodeLbottom_type6kM_pknEType__;
@@ -6398,48 +4154,35 @@
text: .text%__1cNstoreImmPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLStrCompNodeJideal_reg6kM_I_;
text: .text%__1cMlogD_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cMaddD_regNodeMcisc_operand6kM_i_;
text: .text%__1cMaddD_regNodeErule6kM_I_;
text: .text%__1cScompL_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cIAddFNodeJideal_reg6kM_I_;
-text: .text%__1cJimmP0OperPconstant_is_oop6kM_i_;
text: .text%__1cJimmP0OperIconstant6kM_l_;
text: .text%__1cNciMethodKlassEmake6F_p0_;
-text: .text%__1cETypeJis_finite6kM_i_;
text: .text%__1cHnmethodFflush6M_v_;
text: .text%JVM_GetClassContext;
-text: .text%__1cIciObjectTis_type_array_klass6M_i_;
-text: .text%__1cNsubL_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cIregFOperFclone6kM_pnIMachOper__;
text: .text%__1cRfind_field_offset6FpnI_jobject_ipnGThread__i_;
-text: .text%__1cHBoxNodeJideal_reg6kM_I_;
text: .text%__1cXPartialSubtypeCheckNodeLbottom_type6kM_pknEType__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cPfieldDescriptorTfloat_initial_value6kM_f_;
-text: .text%__1cLloadSSDNodeMideal_Opcode6kM_i_;
text: .text%__1cMsubF_regNodeErule6kM_I_;
text: .text%__1cRsubL_rReg_memNodeFreloc6kM_i_;
-text: .text%__1cKExceptionsNnew_exception6FpnGThread_pnNsymbolOopDesc_pkc_nGHandle__;
text: .text%__1cTconvL2F_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMmulF_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJStubQdDueueKremove_all6M_v_;
text: .text%__1cIDivDNodeLbottom_type6kM_pknEType__;
text: .text%__1cLStatSamplerTget_system_property6FpkcpnGThread__2_;
-text: .text%__1cRmethodDataOopDescRbci_to_extra_data6Mii_pnLProfileData__;
text: .text%__1cICodeBlobFflush6M_v_;
text: .text%__1cVMoveF2I_reg_stackNodeMideal_Opcode6kM_i_;
-text: .text%__1cNmodL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJArgumentsQPropertyList_add6FppnOSystemProperty_2_v_;
text: .text%__1cKstoreCNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSmembar_releaseNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cQsalI_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSInterpreterRuntimeQcreate_exception6FpnKJavaThread_pc3_v_;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_2_v_;
text: .text%__1cJStubQdDueueMremove_first6Mi_v_;
text: .text%__1cQinitialize_class6FnMsymbolHandle_pnGThread__v_: thread.o;
text: .text%__1cJAssemblerFcmovq6Mn0AJCondition_pnMRegisterImpl_nHAddress__v_;
-text: .text%__1cXpartialSubtypeCheckNodeJnum_opnds6kM_I_;
text: .text%__1cMmulD_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMaddF_immNodeHtwo_adr6kM_I_;
text: .text%__1cIMulDNodeGmul_id6kM_pknEType__;
@@ -6451,20 +4194,15 @@
text: .text%__1cFStateM_sub_Op_ModL6MpknENode__v_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_pnGThread__v_;
text: .text%__1cXjava_lang_reflect_FieldEslot6FpnHoopDesc__i_;
-text: .text%__1cPloadConUL32NodeGis_Con6kM_I_;
text: .text%__1cQshrL_rReg_CLNodeHtwo_adr6kM_I_;
text: .text%__1cKJavaThreadbOcheck_special_condition_for_native_trans6Fp0_v_;
-text: .text%__1cODeoptimizationYreset_invocation_counter6FpnJScopeDesc_i_v_;
text: .text%__1cZCallDynamicJavaDirectNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cTconvF2I_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cMmulD_memNodeJnum_opnds6kM_I_;
text: .text%__1cHOrLNodeGOpcode6kM_i_;
text: .text%__1cIMulFNodeGmul_id6kM_pknEType__;
text: .text%__1cMnegF_regNodeErule6kM_I_;
text: .text%__1cMsubF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTconvD2F_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%JVM_RawMonitorCreate;
-text: .text%__1cOresolve_symbol6Fpkc_pC_: os_solaris.o;
text: .text%__1cMMutableSpaceOobject_iterate6MpnNObjectClosure__v_;
text: .text%__1cKCMoveDNodeGOpcode6kM_i_;
text: .text%__1cFParseQdo_monitor_enter6M_v_;
@@ -6472,34 +4210,17 @@
text: .text%__1cXpartialSubtypeCheckNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLConvD2INodeJideal_reg6kM_I_;
text: .text%__1cKcastPPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cZCallDynamicJavaDirectNodeJnum_opnds6kM_I_;
-text: .text%__1cMlogD_regNodeJnum_opnds6kM_I_;
text: .text%Unsafe_CompareAndSwapInt;
text: .text%__1cOstackSlotIOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOstackSlotIOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cMmatch_option6FpknMJavaVMOption_ppkc5i_i_: arguments.o;
text: .text%__1cMmulD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNmulI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKimmL32OperFclone6kM_pnIMachOper__;
-text: .text%__1cIimmFOperFclone6kM_pnIMachOper__;
text: .text%__1cOMacroAssemblerTset_last_Java_frame6MpnMRegisterImpl_22pC_v_;
-text: .text%__1cOindOffset8OperFclone6kM_pnIMachOper__;
-text: .text%__1cOMacroAssemblerVreset_last_Java_frame6MpnMRegisterImpl_i_v_;
-text: .text%__1cOloadConL32NodeFclone6kM_pnENode__;
-text: .text%__1cMloadConFNodeFclone6kM_pnENode__;
text: .text%__1cScompL_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQinstanceRefKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cNTemplateTableRlocals_index_wide6FpnMRegisterImpl__v_;
-text: .text%__1cVMoveL2D_reg_stackNodePoper_input_base6kM_I_;
text: .text%__1cZInterpreterMacroAssemblerPset_mdp_data_at6MpnMRegisterImpl_i2_v_;
-text: .text%__1cKOSRAdapter2n6FLI_pv_;
-text: .text%__1cKOSRAdapterPnew_osr_adapter6FpnKCodeBuffer_pnJOopMapSet_ii_p0_;
text: .text%__1cJAssemblerEincl6MnHAddress__v_;
-text: .text%__1cKOSRAdapter2t6MpnKCodeBuffer_pnJOopMapSet_iii_v_;
-text: .text%__1cTconvI2D_reg_regNodeHtwo_adr6kM_I_;
-text: .text%__1cNSharedRuntimeRgenerate_osr_blob6Fi_pnKOSRAdapter__;
-text: .text%__1cMaddD_regNodeJnum_opnds6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorUset_wide_entry_point6MpnITemplate_rpC_v_;
text: .text%__1cMmulF_regNodeErule6kM_I_;
text: .text%__1cIMulFNodeJideal_reg6kM_I_;
text: .text%__1cFStateM_sub_Op_MulF6MpknENode__v_;
@@ -6507,149 +4228,85 @@
text: .text%__1cHnmethodVmark_as_seen_on_stack6M_v_;
text: .text%__1cMloadConDNodeHsize_of6kM_I_;
text: .text%__1cOcmovI_regUNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLconvI2BNodeHtwo_adr6kM_I_;
-text: .text%__1cMorL_rRegNodeJnum_opnds6kM_I_;
text: .text%__1cQorI_rReg_memNodeFreloc6kM_i_;
text: .text%__1cMaddD_immNodeHtwo_adr6kM_I_;
text: .text%__1cMloadConDNodeKconst_size6kM_i_;
text: .text%__1cLConvL2FNodeLbottom_type6kM_pknEType__;
text: .text%__1cLConvL2DNodeLbottom_type6kM_pknEType__;
-text: .text%__1cLloadSSINodeMideal_Opcode6kM_i_;
text: .text%__1cOstackSlotDOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cTconvF2D_reg_memNodeFreloc6kM_i_;
text: .text%__1cLConvD2INodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cTconvL2D_reg_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cMloadConDNodeFreloc6kM_i_;
text: .text%JVM_Lseek;
text: .text%__1cPsarL_rReg_1NodeErule6kM_I_;
text: .text%__1cPsarL_rReg_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cMaddD_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cOstackSlotDOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_;
-text: .text%__1cMorL_rRegNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cMmulF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMlogD_regNodeHtwo_adr6kM_I_;
-text: .text%__1cRaddI_mem_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cFStateM_sub_Op_AddF6MpknENode__v_;
text: .text%__1cIXorINodeIadd_ring6kMpknEType_3_3_;
-text: .text%__1cTconvL2F_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNGrowableArray4CpnKOSRAdapter__Praw_at_put_grow6Mirk14_v_;
text: .text%__1cFStateP_sub_Op_StrComp6MpknENode__v_;
-text: .text%__1cTconvL2F_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
-text: .text%__1cUInterpreterGeneratorUgenerate_fixed_frame6Mi_v_;
text: .text%__1cGciType2t6MnJBasicType__v_;
-text: .text%__1cMaddF_memNodeJnum_opnds6kM_I_;
-text: .text%__1cUInterpreterGeneratorbAgenerate_run_compiled_code6M_v_;
text: .text%__1cScompL_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cUInterpreterGeneratorZgenerate_counter_overflow6MpC_v_;
text: .text%__1cUInterpreterGeneratorVgenerate_counter_incr6MpnFLabel_22_v_;
text: .text%__1cPcmpF_cc_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_;
text: .text%__1cQmulI_mem_immNodePoper_input_base6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorXbang_stack_shadow_pages6Mi_v_;
text: .text%__1cZInterpreterMacroAssemblerTnotify_method_entry6M_v_;
-text: .text%__1cNdecL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cOLibraryCallKitXinline_string_compareTo6M_i_;
-text: .text%__1cScompL_rReg_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cJAssemblerEsubq6MpnMRegisterImpl_nHAddress__v_;
text: .text%jni_GetEnv;
text: .text%JVM_NanoTime;
-text: .text%__1cCosNjavaTimeNanos6F_x_;
-text: .text%__1cZInterpreterMacroAssemblerNsuper_call_VM6MpnMRegisterImpl_2pC22_v_;
-text: .text%__1cFTypeFJis_finite6kM_i_;
text: .text%__1cRmulI_rReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
-text: .text%__1cScompL_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cHMulNodeGis_Mul6kM_pk0_;
text: .text%__1cETypeEmake6Fn0AFTYPES__pk0_;
text: .text%__1cQmulI_mem_immNodeMideal_Opcode6kM_i_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cJAssemblerLemit_data646MxnJrelocInfoJrelocType_i_v_;
text: .text%__1cJAssemblerFpushq6MnHAddress__v_;
-text: .text%__1cIGraphKitSgen_native_wrapper6MpnIciMethod__v_;
text: .text%__1cRComputeEntryStackIdo_array6Mii_v_;
text: .text%__1cPcmpD_cc_immNodeKconst_size6kM_i_;
-text: .text%__1cKLoadPCNodeJideal_reg6kM_I_;
text: .text%__1cMorL_rRegNodeErule6kM_I_;
-text: .text%__1cUCallNativeDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompP_rReg_memNodePoper_input_base6kM_I_;
text: .text%__1cScompP_rReg_memNodeMideal_Opcode6kM_i_;
-text: .text%__1cSvframeStreamCommonbFfill_in_compiled_inlined_sender6M_i_;
text: .text%__1cNdivI_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cKcastPPNodeJnum_opnds6kM_I_;
-text: .text%__1cTconvL2D_reg_memNodeHtwo_adr6kM_I_;
-text: .text%__1cOLibraryCallKitbNinline_native_Reflection_getCallerClass6M_i_;
-text: .text%__1cOLibraryCallKitZinline_native_Class_query6MnMvmIntrinsicsCID__i_;
text: .text%__1cMnegF_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHCompile2t6MpnFciEnv_pnKC2Compiler_pnIciMethod__v_;
text: .text%__1cKciTypeFlowLStateVectorOdo_null_assert6MpnHciKlass__v_;
text: .text%__1cMsubD_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cJLoadLNodeMstore_Opcode6kM_i_;
text: .text%__1cNGrowableArray4CpnGciType__Egrow6Mi_v_;
-text: .text%__1cMdivD_immNodeJnum_opnds6kM_I_;
-text: .text%__1cNstoreImmPNodeJnum_opnds6kM_I_;
text: .text%__1cMdivD_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLloadSSINodeHtwo_adr6kM_I_;
text: .text%__1cLConvI2FNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cIciMethodMnative_entry6M_pC_;
text: .text%__1cPcmpD_cc_immNodeFreloc6kM_i_;
-text: .text%__1cUCallNativeDirectNodeFreloc6kM_i_;
-text: .text%__1cNloadConPcNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulD_memNodeErule6kM_I_;
text: .text%jni_CallVoidMethod: jni.o;
-text: .text%__1cFStateS_sub_Op_CallNative6MpknENode__v_;
-text: .text%__1cFStateO_sub_Op_LoadPC6MpknENode__v_;
-text: .text%__1cQAbstractCompilerPsupports_native6M_i_;
-text: .text%__1cQorI_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cbCAbstractInterpreterGeneratorbBgenerate_result_handler_for6MnJBasicType__pC_;
text: .text%__1cMmulF_regNodeHtwo_adr6kM_I_;
-text: .text%__1cPsalL_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cQshrI_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableQvolatile_barrier6FnJAssemblerQMembar_mask_bits__v_;
-text: .text%__1cNdivL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cVMoveL2D_reg_stackNodeErule6kM_I_;
text: .text%__1cRsalI_rReg_immNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNRelocIterator2t6MpnKCodeBuffer_pC3_v_;
text: .text%__1cJBasicLockHmove_to6MpnHoopDesc_p0_v_;
-text: .text%__1cYinternal_word_RelocationMforce_target6MpC_v_;
text: .text%__1cOstackSlotIOperEtype6kM_pknEType__;
-text: .text%__1cLloadSSINodeJnum_opnds6kM_I_;
text: .text%__1cKPSYoungGenRavailable_to_live6M_L_;
text: .text%__1cOstackSlotIOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNcmovL_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cSstore_to_stackslot6FrnKCodeBuffer_iii_v_;
-text: .text%__1cFTypeFGis_nan6kM_i_;
text: .text%__1cQshrL_rReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTconvD2F_reg_regNodeJnum_opnds6kM_I_;
-text: .text%__1cbCAbstractInterpreterGeneratorZgenerate_safept_entry_for6MnITosState_pC_2_;
text: .text%__1cUInterpreterGeneratorbDgenerate_stack_overflow_check6M_v_;
text: .text%__1cRComputeEntryStackHdo_bool6M_v_;
text: .text%__1cMmulD_immNodeFreloc6kM_i_;
text: .text%__1cQmulI_mem_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorZgenerate_continuation_for6MnITosState__pC_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%JVM_FindPrimitiveClass;
-text: .text%__1cOstackSlotIOperJnum_edges6kM_I_;
text: .text%JVM_IsSameClassPackage;
-text: .text%__1cUInterpreterGeneratorXcheck_for_compiled_code6MrnFLabel__v_;
text: .text%__1cRaddI_mem_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddF_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPjava_lang_ClassYcreate_basic_type_mirror6FpkcpnGThread__pnHoopDesc__;
text: .text%__1cLconvI2BNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddD_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMlogD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOPSVirtualSpaceJshrink_by6ML_i_;
-text: .text%__1cTconvD2F_reg_regNodePin_oper_RegMask6kMIII_pknHRegMask__;
text: .text%__1cRCardTableModRefBSYcommitted_unique_to_self6kMinJMemRegion__1_;
text: .text%__1cNTemplateTableEiop26Fn0AJOperation__v_;
text: .text%__1cFStateN_sub_Op_LoadD6MpknENode__v_;
text: .text%__1cTconvL2F_reg_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cZInterpreterMacroAssemblerRremove_activation6MnITosState_pnMRegisterImpl_iii_v_;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
-text: .text%__1cUInterpreterGeneratorbEgenerate_asm_interpreter_entry6Mi_pC_;
text: .text%__1cPcmpF_cc_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMsubF_memNodeJnum_opnds6kM_I_;
text: .text%__1cKPSYoungGenUavailable_to_min_gen6M_L_;
text: .text%__1cJAssemblerKrepne_scan6M_v_;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
@@ -6658,7 +4315,6 @@
text: .text%__1cTconvI2D_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateP_sub_Op_ConvI2F6MpknENode__v_;
text: .text%__1cMmulD_immNodeKconst_size6kM_i_;
-text: .text%__1cMmulD_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cMmulF_immNodeFreloc6kM_i_;
text: .text%__1cJloadBNodeHsize_of6kM_I_;
text: .text%__1cOcompI_rRegNodeHsize_of6kM_I_;
@@ -6667,7 +4323,6 @@
text: .text%__1cOtypeArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cOtypeArrayKlassNexternal_name6FnJBasicType__pkc_;
text: .text%Unsafe_StaticFieldOffset;
-text: .text%__1cFTypeFFempty6kM_i_;
text: .text%__1cNcmovL_regNodeHtwo_adr6kM_I_;
text: .text%__1cLloadSSDNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateO_sub_Op_CMoveP6MpknENode__v_;
@@ -6677,69 +4332,41 @@
text: .text%__1cJCmpF3NodeGOpcode6kM_i_;
text: .text%Unsafe_GetObjectVolatile;
text: .text%__1cMsubD_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLdivL_10NodePoper_input_base6kM_I_;
-text: .text%__1cVVM_ParallelGCSystemGCEname6kM_pkc_;
-text: .text%__1cOtypeArrayKlassMcreate_klass6FnJBasicType_ipnGThread__pnMklassOopDesc__;
text: .text%Unsafe_EnsureClassInitialized;
-text: .text%__1cJAssemblerEjmpb6MrnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cQSystemDictionaryPresolve_or_null6FnMsymbolHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cOcmovI_regUNodeHtwo_adr6kM_I_;
text: .text%__1cMaddD_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEmovw6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cJAssemblerGmovsbl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cMrax_RegLOperFclone6kM_pnIMachOper__;
text: .text%__1cMorL_rRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cTconvD2F_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cUParallelScavengeHeapHcollect6MnHGCCauseFCause__v_;
text: .text%__1cJLoadDNodeJideal_reg6kM_I_;
text: .text%__1cQciTypeArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cQmulI_mem_immNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpCi_v_;
text: .text%__1cPcheckCastPPNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cJAssemblerFpopaq6M_v_;
text: .text%__1cSmembar_acquireNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKimmL10OperJnum_edges6kM_I_;
text: .text%Unsafe_StaticFieldBaseFromField;
-text: .text%__1cLcastP2LNodeHsize_of6kM_I_;
-text: .text%__1cQmulI_mem_immNodeRis_cisc_alternate6kM_i_;
text: .text%__1cMsubD_regNodeHtwo_adr6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerSnotify_method_exit6MnITosState__v_;
text: .text%__1cRsubI_rReg_memNodeHsize_of6kM_I_;
-text: .text%__1cTconvL2F_reg_regNodeHtwo_adr6kM_I_;
-text: .text%__1cNReservedSpace2t6MpcL_v_;
-text: .text%__1cKmul_hiNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSmembar_acquireNodeJnum_opnds6kM_I_;
-text: .text%__1cQsarL_rReg_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerMemit_arith_b6MiipnMRegisterImpl_i_v_;
-text: .text%__1cPsarL_rReg_2NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cLdivL_10NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cNTemplateTableZjvmti_post_fast_field_mod6F_v_;
text: .text%JVM_GC;
text: .text%__1cNTemplateTablePfast_storefield6FnITosState__v_;
text: .text%__1cNTemplateTableQfast_accessfield6FnITosState__v_;
-text: .text%__1cScompP_rReg_memNodeJnum_opnds6kM_I_;
-text: .text%__1cIPSOldGenSexpand_to_reserved6M_i_;
-text: .text%__1cQmulI_mem_immNodeJnum_opnds6kM_I_;
-text: .text%__1cIPSOldGenJexpand_by6ML_i_;
text: .text%__1cIPSOldGenGexpand6ML_v_;
text: .text%__1cIPSOldGenXexpand_and_cas_allocate6ML_pnIHeapWord__;
text: .text%__1cPsarL_rReg_1NodeHtwo_adr6kM_I_;
text: .text%__1cJAssemblerFtestb6MpnMRegisterImpl_i_v_;
-text: .text%__1cXpartialSubtypeCheckNodeHtwo_adr6kM_I_;
text: .text%__1cMsubF_regNodeHtwo_adr6kM_I_;
-text: .text%__1cZInterpreterMacroAssemblerRget_constant_pool6MpnMRegisterImpl__v_;
text: .text%__1cRaddL_rReg_memNodeFreloc6kM_i_;
text: .text%__1cVMoveL2D_reg_stackNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompP_rReg_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cPsarL_rReg_1NodeJnum_opnds6kM_I_;
text: .text%__1cOGenerateOopMapGdo_jsr6Mi_v_;
text: .text%__1cMmulF_memNodeHtwo_adr6kM_I_;
-text: .text%__1cScompP_rReg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cLPSMarkSweepGinvoke6Fpii_v_;
text: .text%__1cOcmovD_regUNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNcmovL_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cTconvF2I_reg_regNodeHtwo_adr6kM_I_;
text: .text%__1cMmulF_immNodeKconst_size6kM_i_;
text: .text%__1cZInterpreterMacroAssemblerbGget_unsigned_2_byte_index_at_bcp6MpnMRegisterImpl_i_v_;
text: .text%__1cZInterpreterMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
@@ -6748,44 +4375,28 @@
text: .text%__1cCosMuser_handler6F_pv_;
text: .text%__1cJloadDNodeFreloc6kM_i_;
text: .text%__1cMincL_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cNaddL_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cCosHSolarisSset_signal_handler6Fiii_v_;
text: .text%__1cNinstanceKlassSremove_osr_nmethod6MpnHnmethod__v_;
text: .text%__1cTconvD2F_reg_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cKMemoryPoolLadd_manager6MpnNMemoryManager__v_;
text: .text%__1cMmulD_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cLClassLoaderbCupdate_class_path_entry_list6Fpkc_v_;
text: .text%__1cMsubF_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOcmovI_regUNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cTconvL2D_reg_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cLOptoRuntimeRresolve_call_Type6F_pknITypeFunc__;
-text: .text%__1cHciKlassIis_klass6M_i_;
text: .text%__1cPPerfDataManagerKname_space6Fpkci_pc_;
-text: .text%__1cKScopeValuePis_constant_int6kM_i_;
text: .text%jni_RegisterNatives: jni.o;
text: .text%Unsafe_GetNativeFloat;
-text: .text%__1cMsubF_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%JVM_GetClassDeclaredFields;
text: .text%__1cMsubF_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cJMemRegion2t6M_v_;
text: .text%jni_SetStaticObjectField: jni.o;
-text: .text%__1cQsalL_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cCosEstat6FpkcpnEstat__i_;
-text: .text%__1cJArgumentsRverify_percentage6FLpkc_i_;
text: .text%__1cLOptoRuntimeTmultianewarray_Type6Fi_pknITypeFunc__;
text: .text%__1cRComputeEntryStackHdo_long6M_v_;
text: .text%__1cHnmethodVinvalidate_osr_method6M_v_;
-text: .text%__1cMaddF_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cNMemoryManagerIadd_pool6MpnKMemoryPool__v_;
text: .text%jni_SetObjectField: jni.o;
-text: .text%__1cLConvD2INodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cJAssemblerEcall6MpnMRegisterImpl_nJrelocInfoJrelocType__v_;
text: .text%__1cJloadDNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cLConvD2INodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cOBasicHashtable2t6Mii_v_;
-text: .text%__1cCosHSolarisOis_sig_ignored6Fi_i_;
-text: .text%__1cNandI_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cNcmovL_memNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cOPhaseIdealLoopJclone_iff6MpnHPhiNode_pnNIdealLoopTree__pnIBoolNode__;
text: .text%__1cMTailJumpNodeGOpcode6kM_i_;
text: .text%__1cCosHSolarisVcleanup_interruptible6FpnKJavaThread__v_;
@@ -6795,7 +4406,6 @@
text: .text%JVM_IsSupportedJNIVersion;
text: .text%JVM_LoadLibrary;
text: .text%JVM_Sleep;
-text: .text%__1cNReservedSpaceKinitialize6MLLipc_v_;
text: .text%__1cHOrLNodeLbottom_type6kM_pknEType__;
text: .text%__1cOstackSlotIOperFscale6kM_i_;
text: .text%__1cLConvD2FNodeLbottom_type6kM_pknEType__;
@@ -6804,7 +4414,6 @@
text: .text%__1cOstackSlotIOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cLloadSSINodeErule6kM_I_;
text: .text%__1cLConvI2DNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cVMoveF2I_reg_stackNodePoper_input_base6kM_I_;
text: .text%__1cLConvL2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIDivDNodeJideal_reg6kM_I_;
text: .text%__1cRandI_rReg_memNodeFreloc6kM_i_;
@@ -6814,7 +4423,6 @@
text: .text%jni_MonitorExit: jni.o;
text: .text%jni_MonitorEnter: jni.o;
text: .text%__1cHciKlass2t6MnLKlassHandle_pnIciSymbol__v_;
-text: .text%__1cPciInstanceKlassbDcompute_shared_is_initialized6M_i_;
text: .text%__1cNGrowableArray4CpnIPerfData__Praw_at_put_grow6Mirk14_v_;
text: .text%__1cFciEnvOrecord_failure6Mpkc_v_;
text: .text%__1cMciArrayKlassRbase_element_type6M_pnGciType__;
@@ -6822,14 +4430,11 @@
text: .text%__1cOstackSlotDOperFscale6kM_i_;
text: .text%__1cOstackSlotDOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_;
text: .text%__1cOcmovI_regUNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKReturnNodeUdepends_only_on_test6kM_i_;
text: .text%__1cNcmovL_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvD2F_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cTconvF2I_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTconvL2F_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMsubD_immNodeJnum_opnds6kM_I_;
-text: .text%__1cVMoveL2D_reg_stackNodeJnum_opnds6kM_I_;
text: .text%__1cRaddI_mem_rRegNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNTemplateTableH_return6FnITosState__v_;
text: .text%__1cNTemplateTableHif_icmp6Fn0AJCondition__v_;
@@ -6838,16 +4443,10 @@
text: .text%__1cXpartialSubtypeCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNSharedRuntimeEdrem6Fdd_d_;
text: .text%__1cRaddI_rReg_immNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMloadConDNodeFclone6kM_pnENode__;
text: .text%__1cScompP_rReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKC2IAdapterXreturn_from_interpreter6M_pC_;
-text: .text%__1cKC2IAdapterRsetup_stack_frame6MnFframe_pnLvframeArray__v_;
-text: .text%__1cIregDOperFclone6kM_pnIMachOper__;
text: .text%__1cJAssemblerGmovswl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cMsubF_memNodeErule6kM_I_;
-text: .text%__1cIimmDOperFclone6kM_pnIMachOper__;
text: .text%__1cOMacroAssemblerQload_signed_byte6MpnMRegisterImpl_nHAddress__i_;
-text: .text%__1cKC2IAdapterSunpack_c2i_adapter6MnFframe_1pnLvframeArray__v_;
text: .text%__1cNdivI_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRMachSpillCopyNodeHsize_of6kM_I_;
text: .text%__1cFframebFset_interpreter_frame_sender_sp6Mpl_v_;
@@ -6861,26 +4460,15 @@
text: .text%__1cMmulF_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulF_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cCosZvm_allocation_granularity6F_i_;
-text: .text%__1cJAssemblerFpopfq6M_v_;
-text: .text%__1cCosOreserve_memory6FLpc_1_;
text: .text%Unsafe_ObjectFieldOffset;
-text: .text%__1cUParallelScavengeHeapEkind6M_nNCollectedHeapEName__;
-text: .text%__1cKMemoryPool2t6Mpkcn0AIPoolType_LLii_v_;
text: .text%__1cNSpaceCounters2t6MpkciLpnMMutableSpace_pnSGenerationCounters__v_;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
-text: .text%__1cMaddF_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cOcompiledVFrameUresolve_monitor_lock6kMnILocation__pnJBasicLock__;
-text: .text%__1cTconvD2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cKCompiledICSset_to_megamorphic6MpnICallInfo_nJBytecodesECode_pnGThread__v_;
-text: .text%__1cNReservedSpaceKfirst_part6MLii_0_;
text: .text%__1cNCellTypeStateImake_any6Fi_0_;
text: .text%__1cMorL_rRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cNTemplateTableFaload6Fi_v_;
-text: .text%__1cISubFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cMnegF_regNodeJnum_opnds6kM_I_;
-text: .text%__1cINegDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cKCompiledICOis_megamorphic6kM_i_;
text: .text%__1cXNativeSignatureIteratorJdo_double6M_v_;
text: .text%__1cISubDNodeGadd_id6kM_pknEType__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorLpass_double6M_v_;
@@ -6893,47 +4481,30 @@
text: .text%__1cZCompiledArgumentOopFinderDset6MinJBasicType__v_;
text: .text%__1cNstoreImmPNodeFreloc6kM_i_;
text: .text%__1cNSharedRuntimeVhandle_ic_miss_helper6FpnKJavaThread_pnGThread__nMmethodHandle__;
-text: .text%__1cLOptoRuntimebBhandle_wrong_method_ic_miss6FpnKJavaThread__pC_;
text: .text%__1cKJavaThreadUremove_monitor_chunk6MpnMMonitorChunk__v_;
text: .text%__1cKJavaThreadRadd_monitor_chunk6MpnMMonitorChunk__v_;
text: .text%__1cNReservedSpace2t6ML_v_;
text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_pnUPerfLongSampleHelper_pnGThread__pnQPerfLongVariable__;
-text: .text%__1cNmulL_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cNmulI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cTGeneratePairingInfoOreport_results6kM_i_;
text: .text%Unsafe_GetNativeByte;
text: .text%__1cbEJvmtiDynamicCodeEventCollector2T6M_v_;
text: .text%__1cFframebLprevious_monitor_in_interpreter_frame6kMpnPBasicObjectLock__2_;
text: .text%__1cbEJvmtiDynamicCodeEventCollector2t6M_v_;
-text: .text%__1cOMacroAssemblerQload_signed_word6MpnMRegisterImpl_nHAddress__i_;
-text: .text%__1cQOopMapCacheEntryPfill_for_native6M_v_;
text: .text%__1cFStateP_sub_Op_ConvD2I6MpknENode__v_;
-text: .text%__1cJAssemblerGpushfq6M_v_;
text: .text%__1cKVtableStubRpd_code_alignment6F_i_;
text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_2_v_;
-text: .text%__1cIDivFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cINegDNodeJideal_reg6kM_I_;
-text: .text%__1cODeoptimizationZtrap_state_set_recompiled6Fii_i_;
-text: .text%__1cPshrL_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTconvF2D_reg_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKklassKlassOset_alloc_size6MI_v_;
text: .text%__1cNandI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTMaskFillerForNative2t6MnMmethodHandle_pLi_v_;
text: .text%__1cMsubF_memNodeHtwo_adr6kM_I_;
text: .text%__1cINegFNodeLbottom_type6kM_pknEType__;
-text: .text%__1cRaddL_rReg_memNodeZcheck_for_anti_dependence6kM_i_;
-text: .text%__1cLVtableStubsLcreate_stub6FiipnNmethodOopDesc__pC_;
text: .text%__1cMmulL_memNodeFreloc6kM_i_;
-text: .text%__1cLVtableStubsGlookup6Fiii_pnKVtableStub__;
text: .text%__1cMMonitorValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cFStateM_sub_Op_NegD6MpknENode__v_;
text: .text%__1cOtailjmpIndNodePoper_input_base6kM_I_;
-text: .text%__1cNStubGeneratorYgenerate_throw_exception6MpkcpCi_3_;
-text: .text%__1cISubDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cPPerfDataManagerKname_space6Fpkc2i_pc_;
-text: .text%__1cLVtableStubsOis_entry_point6FpC_i_;
text: .text%__1cNstoreImmPNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHRetNodeJnum_opnds6kM_I_;
text: .text%__1cIDivINodeJideal_reg6kM_I_;
text: .text%__1cRInvocationCounterDdef6Fn0AFState_ipFnMmethodHandle_pnGThread__pC_v_;
text: .text%__1cMNativeLookupNlong_jni_name6FnMmethodHandle__pc_;
@@ -6944,7 +4515,6 @@
text: .text%__1cOClassPathEntry2t6M_v_;
text: .text%__1cMorL_rRegNodeHtwo_adr6kM_I_;
text: .text%__1cOMacroAssemblerNpop_CPU_state6M_v_;
-text: .text%__1cMmulF_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cOMacroAssemblerOpush_CPU_state6M_v_;
text: .text%__1cOMacroAssemblerNpop_FPU_state6M_v_;
text: .text%__1cOMacroAssemblerOpush_FPU_state6M_v_;
@@ -6955,8 +4525,6 @@
text: .text%__1cOMacroAssemblerSstore_check_part_16MpnMRegisterImpl__v_;
text: .text%__1cRaddL_rReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMaddF_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cRClassPathZipEntry2t6Mppvpc_v_;
-text: .text%__1cNTemplateTableOprepare_invoke6FpnMRegisterImpl_2inJBytecodesECode__v_;
text: .text%__1cVMoveF2I_reg_stackNodeErule6kM_I_;
text: .text%__1cJAssemblerEandq6MpnMRegisterImpl_2_v_;
text: .text%__1cFParsePdo_lookupswitch6M_v_;
@@ -6967,19 +4535,11 @@
text: .text%__1cRComputeEntryStackJdo_double6M_v_;
text: .text%__1cMaddD_regNodeHtwo_adr6kM_I_;
text: .text%__1cLConvD2FNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cNTemplateTablebAload_invoke_cp_cache_entry6FipnMRegisterImpl_22ii_v_;
-text: .text%__1cNTemplateTableZload_field_cp_cache_entry6FipnMRegisterImpl_22i_v_;
text: .text%__1cJAssemblerEcmpb6MnHAddress_i_v_;
text: .text%__1cCosGsignal6Fipv_1_;
-text: .text%__1cLClassLoaderSget_canonical_path6Fpc1i_i_;
-text: .text%__1cLClassLoaderXcreate_class_path_entry6FpcnEstat_ppnOClassPathEntry__v_;
text: .text%__1cMsubD_immNodeHtwo_adr6kM_I_;
-text: .text%__1cLklassVtableTis_miranda_entry_at6Mi_i_;
text: .text%__1cKPSScavengeZclean_up_failed_promotion6F_v_;
-text: .text%__1cNTemplateTableJfloat_cmp6Fii_v_;
text: .text%JVM_Available;
-text: .text%__1cJAssemblerHucomiss6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cZInterpreterMacroAssemblerRprofile_checkcast6MipnMRegisterImpl__v_;
text: .text%__1cIAddDNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJAssemblerFimulq6MpnMRegisterImpl_2_v_;
text: .text%__1cIRetTableUfind_jsrs_for_target6Mi_pnNRetTableEntry__;
@@ -6992,73 +4552,44 @@
text: .text%__1cNRegisterSaverTsave_live_registers6FpnOMacroAssembler_ipi_pnGOopMap__;
text: .text%__1cNTemplateTableGistore6Fi_v_;
text: .text%__1cIRetTableHadd_jsr6Mii_v_;
-text: .text%__1cMincL_memNodeHtwo_adr6kM_I_;
text: .text%__1cKPSYoungGenOobject_iterate6MpnNObjectClosure__v_;
-text: .text%__1cNGrowableArray4CpnLmarkOopDesc__2t6Mii_v_;
-text: .text%__1cUCompressedReadStreamJread_long6M_x_;
text: .text%__1cISubDNodeJideal_reg6kM_I_;
-text: .text%__1cWNonPrintingResourceObj2n6FLnLResourceObjPallocation_type__pv_;
text: .text%__1cNTemplateTableFdload6Fi_v_;
text: .text%__1cNTemplateTableFfload6Fi_v_;
-text: .text%__1cPaddress_of_flag6FnXCommandLineFlagWithType__pnEFlag__: globals.o;
text: .text%__1cNTemplateTableFlload6Fi_v_;
text: .text%__1cNTemplateTableFiload6Fi_v_;
text: .text%__1cMmulI_memNodePoper_input_base6kM_I_;
-text: .text%__1cOcompL_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cNGrowableArray4CpnLmarkOopDesc__Uclear_and_deallocate6M_v_;
text: .text%__1cMLinkResolverbBlookup_method_in_interfaces6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
-text: .text%__1cOcompI_rRegNodeFclone6kM_pnENode__;
-text: .text%__1cRsubI_rReg_memNodeFclone6kM_pnENode__;
-text: .text%__1cLcastP2LNodeFclone6kM_pnENode__;
text: .text%__1cKExceptionsK_throw_oop6FpnGThread_pkcipnHoopDesc__v_;
text: .text%__1cRaddL_rReg_memNodeErule6kM_I_;
text: .text%__1cOMacroAssemblerLstore_check6MpnMRegisterImpl__v_;
-text: .text%__1cOsalI_mem_1NodeHtwo_adr6kM_I_;
text: .text%__1cHRetNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cVMoveL2D_reg_stackNodeHtwo_adr6kM_I_;
-text: .text%__1cRaddL_mem_rRegNodeHtwo_adr6kM_I_;
-text: .text%__1cJloadPNodeFclone6kM_pnENode__;
-text: .text%__1cJloadBNodeFclone6kM_pnENode__;
text: .text%__1cRaddL_rReg_memNodeHtwo_adr6kM_I_;
text: .text%__1cMmulF_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cMaddF_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEmovb6MnHAddress_i_v_;
-text: .text%__1cIAddDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%Unsafe_AllocateMemory;
text: .text%__1cVMoveF2I_reg_stackNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerHfxrstor6MnHAddress__v_;
text: .text%__1cJAssemblerGfxsave6MnHAddress__v_;
-text: .text%__1cHCompilePget_invoke_name6M_pnIciSymbol__;
text: .text%__1cJAssemblerEsetb6Mn0AJCondition_pnMRegisterImpl__v_;
-text: .text%__1cNxorI_rRegNodeMcisc_version6Mi_pnIMachNode__;
-text: .text%__1cMVM_OperationNdoit_prologue6M_i_;
text: .text%__1cNGCTaskManagerGthread6MI_pnMGCTaskThread__;
text: .text%__1cRConstantLongValue2t6MpnTDebugInfoReadStream__v_;
-text: .text%__1cRConstantLongValueQis_constant_long6kM_i_;
-text: .text%__1cKScopeValuePis_constant_oop6kM_i_;
-text: .text%__1cKScopeValueSis_constant_double6kM_i_;
text: .text%__1cMmulD_memNodeHtwo_adr6kM_I_;
-text: .text%__1cVMoveF2I_reg_stackNodeHtwo_adr6kM_I_;
text: .text%jni_CallStaticObjectMethod: jni.o;
text: .text%__1cNcmovL_memNodeHtwo_adr6kM_I_;
text: .text%__1cFStateM_sub_Op_AddD6MpknENode__v_;
text: .text%__1cMmulI_memNodeMideal_Opcode6kM_i_;
text: .text%__1cScompL_rReg_memNodeFreloc6kM_i_;
text: .text%__1cLloadSSINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNGrowableArray4CpnIPerfData__2t6Mii_v_;
-text: .text%__1cOCompilerThreadSis_Compiler_thread6kM_i_;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cMPerfDataList2T6M_v_;
-text: .text%__1cLVtableStubsFenter6FiiipnKVtableStub__v_;
text: .text%__1cMmulI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOcmovD_regUNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cNnegI_rRegNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cbCAbstractInterpreterGeneratorbHgenerate_exception_handler_common6Mpkc2i_pC_;
-text: .text%__1cSCommandLineFlagsExKis_default6FnPCommandLineFlag__i_;
text: .text%__1cJAssemblerEnegl6MpnMRegisterImpl__v_;
-text: .text%__1cUConstantOopReadValuePis_constant_oop6kM_i_;
-text: .text%__1cHMatcherNlogDSupported6F_ki_;
text: .text%__1cOGenerateOopMapRdo_multianewarray6Mii_v_;
text: .text%__1cLconvI2BNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUPSGenerationCounters2t6MpkciipnOPSVirtualSpace__v_;
@@ -7066,86 +4597,59 @@
text: .text%__1cFStateP_sub_Op_ConvI2D6MpknENode__v_;
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cJCodeCachebCmake_marked_nmethods_zombies6F_v_;
-text: .text%__1cNVM_DeoptimizeEname6kM_pkc_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC2_v_;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
-text: .text%__1cSCommandLineFlagsExJboolAtPut6FnXCommandLineFlagWithType_i_v_;
-text: .text%__1cMmulI_memNodeJnum_opnds6kM_I_;
text: .text%__1cFStateM_sub_Op_CmpF6MpknENode__v_;
text: .text%__1cODeoptimizationVdeoptimize_dependents6F_i_;
-text: .text%__1cOtailjmpIndNodeGpinned6kM_i_;
-text: .text%__1cQshrL_rReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerGmovzbl6MpnMRegisterImpl_2_v_;
text: .text%__1cILogDNodeJideal_reg6kM_I_;
-text: .text%__1cMmulI_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cRaddL_mem_rRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMincL_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateO_sub_Op_Conv2B6MpknENode__v_;
text: .text%__1cNcmovL_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_CallStaticObjectMethodV: jni.o;
-text: .text%__1cMOopTaskQdDueueKinitialize6M_v_;
text: .text%__1cMmulD_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cMOopTaskQdDueue2t6M_v_;
-text: .text%__1cOLibraryCallKitbBinline_native_currentThread6M_i_;
text: .text%__1cNMemoryManager2t6M_v_;
text: .text%__1cMaddF_immNodeKconst_size6kM_i_;
text: .text%__1cVMoveL2D_reg_stackNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOLibraryCallKitSinline_math_native6MnMvmIntrinsicsCID__i_;
text: .text%__1cFciEnvbNArrayIndexOutOfBoundsException_instance6M_pnKciInstance__;
text: .text%__1cMsubD_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMmulI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddF_immNodeFreloc6kM_i_;
text: .text%__1cMaddD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cOCompilerThreadbCis_hidden_from_external_view6kM_i_;
-text: .text%__1cNReservedSpaceJlast_part6ML_0_;
text: .text%__1cMnegF_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMaddD_immNodeFreloc6kM_i_;
text: .text%jni_IsInstanceOf: jni.o;
text: .text%__1cMaddD_immNodeKconst_size6kM_i_;
text: .text%jni_Throw: jni.o;
-text: .text%__1cRmulI_rReg_immNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cOsalI_mem_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSPSPromotionManager2t6M_v_;
-text: .text%__1cFKlassUoop_is_objArrayKlass6kM_i_;
text: .text%__1cOMacroAssemblerLstore_check6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cOLibraryCallKitXgenerate_current_thread6MrpnENode__2_;
text: .text%__1cMsubF_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cJAssemblerFmovss6MpnRFloatRegisterImpl_2_v_;
text: .text%JVM_GetLastErrorString;
-text: .text%__1cJAssemblerFmovsd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerTprofile_switch_case6MpnMRegisterImpl_22_v_;
text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterImpl__v_;
text: .text%__1cFStateM_sub_Op_SubF6MpknENode__v_;
-text: .text%__1cLVtableStubsScreate_vtable_stub6Fii_pnKVtableStub__;
text: .text%JVM_GetInterfaceVersion;
text: .text%__1cKstoreBNodeErule6kM_I_;
text: .text%__1cKVtableStub2n6FLi_pv_;
text: .text%__1cJAssemblerEdecq6MpnMRegisterImpl__v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_22_v_;
text: .text%__1cOtailjmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cCosFyield6F_v_;
-text: .text%__1cRaddI_mem_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOPSVirtualSpace2t6MnNReservedSpace_L_v_;
-text: .text%__1cOLibraryCallKitMinline_trans6MnMvmIntrinsicsCID__i_;
text: .text%Unsafe_SetMemory;
text: .text%__1cCosIjvm_path6Fpci_v_;
text: .text%__1cJTimeStamp2t6M_v_;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl_2i_v_;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorKpass_float6M_v_;
text: .text%__1cISubFNodeJideal_reg6kM_I_;
text: .text%__1cNGrowableArray4CpnIPerfData__Egrow6Mi_v_;
text: .text%__1cMSysClassPathNreset_item_at6Mi_v_;
text: .text%__1cFStateM_sub_Op_LogD6MpknENode__v_;
-text: .text%__1cFTypeDFempty6kM_i_;
-text: .text%__1cZInterpreterMacroAssemblerVincrement_mdp_data_at6MpnMRegisterImpl_2i_v_;
-text: .text%__1cJlookupOne6FpnHJNIEnv__pkcpnGThread__pnH_jclass__: jni.o;
text: .text%__1cLloadSSINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cCosGgetenv6Fpkcpci_i_;
text: .text%__1cZInterpreterMacroAssemblerLlock_object6MpnMRegisterImpl__v_;
-text: .text%__1cOtypeArrayKlassQarray_klass_impl6MipnGThread__pnMklassOopDesc__;
text: .text%__1cISubFNodeGadd_id6kM_pknEType__;
-text: .text%__1cJArgumentsMbuild_string6Fppcpkc_v_;
text: .text%__1cFStateM_sub_Op_SubD6MpknENode__v_;
text: .text%JVM_RegisterSignal;
text: .text%JVM_FindSignal;
@@ -7156,12 +4660,10 @@
text: .text%__1cXNativeSignatureIteratorIdo_float6M_v_;
text: .text%jni_GetDoubleArrayRegion: jni.o;
text: .text%__1cLloadSSDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cVMoveF2I_reg_stackNodeJnum_opnds6kM_I_;
text: .text%__1cJArgumentsObuild_jvm_args6Fpkc_v_;
text: .text%__1cOLibraryCallKitMpop_math_arg6M_pnENode__;
text: .text%__1cZInterpreterMacroAssemblerRgen_subtype_check6MpnMRegisterImpl_rnFLabel__v_;
text: .text%__1cFStateO_sub_Op_CMoveL6MpknENode__v_;
-text: .text%__1cJArgumentsMadd_property6Fpkc_i_;
text: .text%__1cMVM_OperationNdoit_epilogue6M_v_;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
text: .text%__1cRaddI_mem_rRegNodeFreloc6kM_i_;
@@ -7169,7 +4671,6 @@
text: .text%__1cVMoveF2I_reg_stackNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNTemplateTableGfconst6Fi_v_;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cOtailjmpIndNodeHtwo_adr6kM_I_;
text: .text%__1cQmulI_mem_immNodeFreloc6kM_i_;
text: .text%__1cNincI_rRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNVM_DeoptimizeEdoit6M_v_;
@@ -7177,104 +4678,64 @@
text: .text%__1cUConstantOopReadValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cRaddI_mem_rRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMdivD_immNodeKconst_size6kM_i_;
-text: .text%__1cMmulD_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cQObjectStartArrayKinitialize6MnJMemRegion__v_;
text: .text%__1cQObjectStartArraySset_covered_region6MnJMemRegion__v_;
-text: .text%__1cMsubF_memNodeRis_cisc_alternate6kM_i_;
text: .text%__1cUGcThreadCountClosureJdo_thread6MpnGThread__v_;
text: .text%__1cNGrowableArray4CpnTDerivedPointerEntry__Egrow6Mi_v_;
-text: .text%__1cOtailjmpIndNodeJnum_opnds6kM_I_;
text: .text%__1cPGCMemoryManagerXinitialize_gc_stat_info6M_v_;
text: .text%__1cPGCMemoryManager2t6M_v_;
text: .text%__1cKGCStatInfo2t6Mi_v_;
text: .text%__1cTMaskFillerForNativeLpass_object6M_v_;
text: .text%__1cTMaskFillerForNativeJpass_long6M_v_;
-text: .text%__1cJMarkSweepUAdjustPointerClosure2t6Mi_v_;
text: .text%__1cCosHrealloc6FpvL_1_;
text: .text%__1cCosWactive_processor_count6F_i_;
-text: .text%__1cSestimate_path_freq6FpnENode__f_: loopnode.o;
text: .text%__1cCosNsigexitnum_pd6F_i_;
text: .text%__1cMLinkResolverbEvtable_index_of_miranda_method6FnLKlassHandle_nMsymbolHandle_2pnGThread__i_;
-text: .text%__1cOLibraryCallKitVinline_fp_conversions6MnMvmIntrinsicsCID__i_;
-text: .text%__1cZcatch_cleanup_intra_block6FpnENode_1pnFBlock_ii_v_: lcm.o;
-text: .text%__1cCosbCis_thread_cpu_time_supported6F_i_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
-text: .text%__1cNdefaultStreamMhas_log_file6M_i_;
-text: .text%__1cNcmovL_memNodeRis_cisc_alternate6kM_i_;
-text: .text%__1cRalign_object_size6Fl_l_;
-text: .text%__1cMarrayOopDescLheader_size6FnJBasicType__i_;
text: .text%__1cNstoreImmBNodeErule6kM_I_;
text: .text%__1cNstoreImmINodeErule6kM_I_;
-text: .text%__1cLloadSSDNodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cFParseMjump_if_join6MpnENode_2_2_;
text: .text%__1cKJNIHandlesQmake_weak_global6FnGHandle__pnI_jobject__;
-text: .text%__1cLloadSSINodeZcheck_for_anti_dependence6kM_i_;
text: .text%__1cQJNI_FastGetFieldbEgenerate_fast_get_float_field06FnJBasicType__pC_;
text: .text%__1cFParseRdo_multianewarray6M_v_;
-text: .text%__1cMloadConDNodeGis_Con6kM_I_;
text: .text%jni_NewWeakGlobalRef: jni.o;
-text: .text%__1cPfilename_to_pid6Fpkc_i_: perfMemory_solaris.o;
-text: .text%__1cTis_directory_secure6Fpkc_i_: perfMemory_solaris.o;
text: .text%jni_CallStaticVoidMethodV: jni.o;
text: .text%jni_CallStaticBooleanMethod: jni.o;
text: .text%__1cNGrowableArray4CpnNmethodOopDesc__Egrow6Mi_v_;
-text: .text%__1cRInvocationCounterMreinitialize6Fi_v_;
-text: .text%__1cXpartialSubtypeCheckNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cTconvF2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cUInterpreterGeneratorVgenerate_native_entry6Mi_pC_;
text: .text%__1cUInterpreterGeneratorLlock_method6M_v_;
text: .text%__1cNGrowableArray4CpC_Egrow6Mi_v_;
text: .text%__1cNGrowableArray4CL_Egrow6Mi_v_;
-text: .text%__1cObox_handleNodeHsize_of6kM_I_;
-text: .text%__1cPsarL_rReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIPSOldGenKinitialize6MnNReservedSpace_Lpkci_v_;
text: .text%__1cIPSOldGenYinitialize_virtual_space6MnNReservedSpace_L_v_;
text: .text%__1cIPSOldGenPinitialize_work6Mpkci_v_;
-text: .text%__1cNdivI_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cbCAbstractInterpreterGeneratorTgenerate_error_exit6Mpkc_pC_;
text: .text%__1cTAbstractInterpreterKinitialize6F_v_;
text: .text%__1cZInterpreterMacroAssemblerLprofile_ret6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerSprofile_final_call6MpnMRegisterImpl__v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
text: .text%__1cOPSVirtualSpace2t6M_v_;
-text: .text%__1cOPSVirtualSpaceKinitialize6MnNReservedSpace_L_i_;
text: .text%__1cZInterpreterMacroAssemblerSupdate_mdp_for_ret6MpnMRegisterImpl__v_;
text: .text%__1cZInterpreterMacroAssemblerPset_mdp_flag_at6MpnMRegisterImpl_i_v_;
text: .text%__1cZInterpreterMacroAssemblerWdispatch_only_noverify6MnITosState__v_;
text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpCpnMRegisterImpl__v_;
text: .text%__1cKReflectionbFbasic_type_arrayklass_to_mirror6FpnMklassOopDesc_pnGThread__pnHoopDesc__;
-text: .text%__1cMAdapterCache2t6M_v_;
-text: .text%__1cSComputeAdapterInfoIdo_array6Mii_v_;
-text: .text%__1cGatomll6Fpkcpx_i_: arguments.o;
-text: .text%__1cJArgumentsRcheck_memory_size6Fxx_n0AJArgsRange__;
text: .text%__1cJArgumentsVset_parallel_gc_flags6F_v_;
-text: .text%__1cYalign_to_allocation_size6FL_L_: heap.o;
-text: .text%__1cJArgumentsRparse_memory_size6Fpkcpxx_n0AJArgsRange__;
-text: .text%__1cJArgumentsXPropertyList_unique_add6FppnOSystemProperty_pkcpc_v_;
text: .text%__1cQAgentLibraryList2t6M_v_;
-text: .text%__1cFKlassVoop_is_typeArrayKlass6kM_i_;
text: .text%__1cMmulF_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJAssemblerGmovsbl6MpnMRegisterImpl_2_v_;
text: .text%__1cJAssemblerGmovswl6MpnMRegisterImpl_2_v_;
-text: .text%__1cLOptoRuntimebDlazy_c2i_adapter_generation_C6FpnKJavaThread__pC_;
-text: .text%__1cLOptoRuntimeVgenerate_handler_blob6FpCi_pnNSafepointBlob__;
text: .text%__1cRaddL_mem_rRegNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJAssemblerGmovzwl6MpnMRegisterImpl_2_v_;
-text: .text%__1cJAssemblerFmovdq6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cRComputeEntryStackIdo_float6M_v_;
text: .text%__1cJAssemblerFcmovl6Mn0AJCondition_pnMRegisterImpl_nHAddress__v_;
-text: .text%__1cSReferenceProcessor2t6MnJMemRegion_iii_v_;
text: .text%__1cJAssemblerEaddl6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cOGenerateOopMapTadd_to_ref_init_set6Mi_v_;
text: .text%__1cJAssemblerEcmpq6MpnMRegisterImpl_i_v_;
-text: .text%__1cJAssemblerHucomisd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cJAssemblerFidivl6MpnMRegisterImpl__v_;
text: .text%__1cJAssemblerFidivq6MpnMRegisterImpl__v_;
text: .text%__1cJAssemblerEcdql6M_v_;
text: .text%__1cJAssemblerEcdqq6M_v_;
text: .text%__1cJAssemblerEleal6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cJAssemblerDorq6MnHAddress_i_v_;
-text: .text%__1cWStubGenerator_generate6FpnKCodeBuffer_i_v_;
text: .text%__1cJStubQdDueue2t6MpnNStubInterface_ipnFMutex_pkc_v_;
text: .text%__1cMGCTaskThreadDrun6M_v_;
text: .text%__1cMGCTaskThreadFstart6M_v_;
@@ -7284,12 +4745,9 @@
text: .text%__1cJAssemblerFxaddl6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cNGCTaskManagerKset_thread6MIpnMGCTaskThread__v_;
text: .text%__1cJAssemblerHldmxcsr6MnHAddress__v_;
-text: .text%__1cJAssemblerFxorps6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cKcastPPNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cMPeriodicTask2t6ML_v_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
-text: .text%__1cPOopTaskQdDueueSetOregister_queue6MipnMOopTaskQdDueue__v_;
-text: .text%__1cOMacroAssemblerHcall_VM6MpnMRegisterImpl_pC222i_v_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC_v_;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC22_v_;
text: .text%__1cNTemplateTableJfloat_cmp6Fi_v_;
@@ -7297,14 +4755,9 @@
text: .text%__1cNTemplateTableKinitialize6F_v_;
text: .text%__1cNTemplateTableGlconst6Fi_v_;
text: .text%__1cNTemplateTableGdconst6Fi_v_;
-text: .text%__1cNTemplateTableDldc6Fi_v_;
text: .text%__1cNTemplateTableHcastore6F_v_;
-text: .text%__1cPdouble_quadword6Fpxxx_0_: templateTable_amd64.o;
text: .text%__1cNTemplateTableKif_nullcmp6Fn0AJCondition__v_;
text: .text%__1cNTemplateTableHif_acmp6Fn0AJCondition__v_;
-text: .text%__1cNTemplateTableSgetfield_or_static6Fii_v_;
-text: .text%__1cNTemplateTableUjvmti_post_field_mod6Fii_v_;
-text: .text%__1cNTemplateTableSputfield_or_static6Fii_v_;
text: .text%__1cNTemplateTableUinvokevirtual_helper6FpnMRegisterImpl_22_v_;
text: .text%__1cEMIN24CL_6FTA0_0_;
text: .text%__1cRCardTableModRefBSbCpar_chunk_heapword_alignment6F_L_;
@@ -7312,8 +4765,6 @@
text: .text%__1cOMacroAssemblerPcorrected_idivq6MpnMRegisterImpl__i_;
text: .text%__1cLNamedThread2t6M_v_;
text: .text%__1cLNamedThreadIset_name6MpkcE_v_;
-text: .text%__1cOMacroAssemblerQserialize_memory6MpnMRegisterImpl_22_v_;
-text: .text%__1cIDivDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cIDivDNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cFStatebB_sub_Op_PartialSubtypeCheck6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_DivI6MpknENode__v_;
@@ -7322,24 +4773,17 @@
text: .text%__1cFStateP_sub_Op_ConvL2D6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvF2I6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvD2F6MpknENode__v_;
-text: .text%__1cRcheck_if_clipping6FpknKRegionNode_rpnGIfNode_5_i_: cfgnode.o;
-text: .text%__1cWcheck_compare_clipping6FipnGIfNode_pnHConNode_rpnENode__i_: cfgnode.o;
-text: .text%__1cIciObjectOis_array_klass6M_i_;
text: .text%__1cScompP_rReg_memNodeFreloc6kM_i_;
text: .text%__1cKCastPPNodeJideal_reg6kM_I_;
text: .text%__1cLMoveF2INodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cFTypeDJis_finite6kM_i_;
text: .text%__1cLMoveL2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cTconvL2D_reg_memNodeFreloc6kM_i_;
text: .text%__1cMdivD_immNodeFreloc6kM_i_;
text: .text%__1cMmulF_memNodeFreloc6kM_i_;
text: .text%__1cMaddF_memNodeFreloc6kM_i_;
-text: .text%__1cLConvF2INodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cLConvF2INodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cLConvD2FNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cOcompP_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cKciTypeFlowLStateVectorRdo_multianewarray6MpnQciBytecodeStream__v_;
-text: .text%__1cMorI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cRCollectorCounters2t6Mpkci_v_;
text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cNSafepointBlob2n6FLI_pv_;
@@ -7347,8 +4791,6 @@
text: .text%__1cNSafepointBlob2t6MpnKCodeBuffer_ipnJOopMapSet_i_v_;
text: .text%__1cINegFNodeJideal_reg6kM_I_;
text: .text%__1cMVirtualSpace2t6M_v_;
-text: .text%__1cMVirtualSpaceKinitialize6MnNReservedSpace_L_i_;
-text: .text%__1cHMatcherQconvL2FSupported6F_ki_;
text: .text%__1cLConvD2FNodeJideal_reg6kM_I_;
text: .text%__1cLConvF2INodeJideal_reg6kM_I_;
text: .text%__1cLConvL2DNodeJideal_reg6kM_I_;
@@ -7364,29 +4806,17 @@
text: .text%__1cJAssemblerEsubq6MnHAddress_i_v_;
text: .text%__1cLOptoRuntimeIgenerate6FpnFciEnv__v_;
text: .text%__1cMmulD_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cYSurvivorMutableSpacePool2t6MpnKPSYoungGen_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cParrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cFKlassUoop_is_instanceKlass6kM_i_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: arguments.o;
text: .text%__1cJArgumentsWPropertyList_get_value6FpnOSystemProperty_pkc_4_;
text: .text%__1cJArgumentsFparse6FpknOJavaVMInitArgs__i_;
text: .text%__1cKNoopGCTaskQcreate_on_c_heap6F_p0_;
-text: .text%__1cJArgumentsbSparse_java_tool_options_environment_variable6FpnMSysClassPath_pi_i_;
-text: .text%__1cWResolveOopMapConflictsOreport_results6kM_i_;
-text: .text%__1cMCodeHeapPool2t6MpnICodeHeap_pkci_v_;
text: .text%__1cJAssemblerFxchgl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cJArgumentsbNparse_java_options_environment_variable6FpnMSysClassPath_pi_i_;
text: .text%__1cJAssemblerFxchgq6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cJArgumentsVfinalize_vm_init_args6FpnMSysClassPath_i_i_;
-text: .text%__1cJArgumentsWparse_each_vm_init_arg6FpknOJavaVMInitArgs_pnMSysClassPath_pi_i_;
text: .text%__1cJArgumentsSparse_vm_init_args6FpknOJavaVMInitArgs__i_;
text: .text%__1cJAssemblerIcmpxchgl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cINegFNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
-text: .text%__1cJArgumentsZcheck_vm_args_consistency6F_i_;
text: .text%__1cICodeHeap2t6M_v_;
-text: .text%__1cJArgumentsbOparse_java_compiler_environment_variable6F_v_;
text: .text%__1cHVM_ExitNset_vm_exited6F_i_;
-text: .text%__1cICodeHeapHreserve6MLLL_i_;
text: .text%__1cQRelocationHolder2t6M_v_;
text: .text%__1cICodeHeapFclear6M_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: relocInfo.o;
@@ -7395,15 +4825,12 @@
text: .text%__1cJArgumentsUset_ergonomics_flags6F_v_;
text: .text%__1cJArgumentsbBset_cms_and_parnew_gc_flags6F_v_;
text: .text%__1cJArgumentsTset_parnew_gc_flags6F_v_;
-text: .text%__1cQno_shared_spaces6F_v_: arguments.o;
text: .text%__1cJArgumentsMget_property6Fpkc_2_;
text: .text%__1cLsymbolKlassOset_alloc_size6MI_v_;
text: .text%__1cLsymbolKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
-text: .text%__1cJArgumentsVprocess_settings_file6Fpkcii_i_;
text: .text%__1cNGCTaskManagerKthreads_do6MpnNThreadClosure__v_;
text: .text%__1cNGCTaskManagerKinitialize6M_v_;
text: .text%__1cNGCTaskManager2t6MI_v_;
-text: .text%__1cXSynchronizedGCTaskQdDueue2t6MpnLGCTaskQdDueue_pnFMutex__v_;
text: .text%__1cDhpiKinitialize6F_i_;
text: .text%__1cDhpiZinitialize_socket_library6F_i_;
text: .text%__1cDhpiYinitialize_get_interface6FpnIvm_calls__v_;
@@ -7421,74 +4848,39 @@
text: .text%__1cYGCAdaptivePolicyCounters2t6MpkciipnSAdaptiveSizePolicy__v_;
text: .text%__1cHVM_ExitbJwait_for_threads_in_native_to_block6F_i_;
text: .text%__1cJAssemblerHstmxcsr6MnHAddress__v_;
-text: .text%__1cJAssemblerFaddss6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFsubss6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cTICacheStubGeneratorVgenerate_icache_flush6MppFpCii_i_v_;
text: .text%__1cMSysClassPath2t6Mpkc_v_;
text: .text%__1cJArgumentsWinit_system_properties6F_v_;
-text: .text%__1cJAssemblerFmulss6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFdivss6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cJAssemblerFaddsd6MpnRFloatRegisterImpl_nHAddress__v_;
text: .text%__1cFChunkbDstart_chunk_pool_cleaner_task6F_v_;
-text: .text%__1cJAssemblerFsubsd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cOchunkpool_init6F_v_;
-text: .text%__1cJAssemblerFmulsd6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFdivsd6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cQSystemDictionarybAcompute_java_system_loader6FpnGThread__v_;
-text: .text%__1cJAssemblerGsqrtsd6MpnRFloatRegisterImpl_nHAddress__v_;
text: .text%__1cHVM_ExitEdoit6M_v_;
-text: .text%__1cRArgumentOopFinderDset6MinJBasicType__v_;
text: .text%__1cWAdjoiningVirtualSpaces2t6MnNReservedSpace_LLL_v_;
text: .text%__1cUAdjoiningGenerations2t6MnNReservedSpace_LLLLLLL_v_;
text: .text%__1cHOrLNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cZCompiledArgumentOopFinderRhandle_oop_offset6M_v_;
-text: .text%__1cJAssemblerFxorps6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerFxorpd6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cJAssemblerFxorpd6MpnRFloatRegisterImpl_nHAddress__v_;
-text: .text%__1cJAssemblerJcvtsi2ssl6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
-text: .text%__1cJAssemblerJcvtsi2ssq6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
-text: .text%__1cJAssemblerJcvtsi2sdl6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
-text: .text%__1cFframebAoops_compiled_arguments_do6MnMsymbolHandle_ipknLRegisterMap_pnKOopClosure__v_;
-text: .text%__1cJAssemblerJcvtsi2sdq6MpnRFloatRegisterImpl_pnMRegisterImpl__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: adaptiveSizePolicy.o;
-text: .text%__1cSAdaptiveSizePolicy2t6ML_v_;
-text: .text%__1cFframebDoops_interpreted_arguments_do6MnMsymbolHandle_ipnKOopClosure__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: regmask.o;
-text: .text%__1cJAssemblerKcvttss2sil6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
-text: .text%__1cJAssemblerKcvttss2siq6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: indexSet.o;
-text: .text%__1cJAssemblerKcvttsd2sil6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cFframeVinterpreter_frame_mdp6kM_pC_;
text: .text%__1cPvm_init_globals6F_v_;
-text: .text%__1cJAssemblerKcvttsd2siq6MpnMRegisterImpl_pnRFloatRegisterImpl__v_;
text: .text%__1cQSystemDictionaryKclasses_do6FpFpnMklassOopDesc__v_v_;
text: .text%__1cQSystemDictionaryKmethods_do6FpFpnNmethodOopDesc__v_v_;
text: .text%__1cQSystemDictionaryKinitialize6FpnGThread__v_;
text: .text%__1cQSystemDictionarybCinitialize_preloaded_classes6FpnGThread__v_;
-text: .text%__1cQSystemDictionarybDinitialize_basic_type_mirrors6FpnGThread__v_;
-text: .text%__1cJAssemblerIcvtss2sd6MpnRFloatRegisterImpl_2_v_;
-text: .text%__1cJAssemblerIcvtsd2ss6MpnRFloatRegisterImpl_2_v_;
text: .text%__1cMinit_globals6F_i_;
text: .text%__1cMexit_globals6F_v_;
text: .text%__1cOMacroAssemblerKdecrementl6MpnMRegisterImpl_i_v_;
-text: .text%__1cHVM_ExitEname6kM_pkc_;
text: .text%__1cKcastPPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: fprofiler.o;
text: .text%__1cNMemoryServiceRset_universe_heap6FpnNCollectedHeap__v_;
text: .text%__1cMPeriodicTask2T5B6M_v_;
-text: .text%__1cMPeriodicTaskLis_enrolled6kM_i_;
text: .text%__1cNMemoryServicebFadd_parallel_scavenge_heap_info6FpnUParallelScavengeHeap__v_;
text: .text%__1cMPeriodicTaskJdisenroll6M_v_;
text: .text%__1cSset_init_completed6F_v_;
-text: .text%__1cMadapter_init6F_v_;
-text: .text%__1cTI2CAdapterGeneratorKinitialize6F_v_;
text: .text%__1cNMemoryServiceXadd_psYoung_memory_pool6FpnKPSYoungGen_pnNMemoryManager_4_v_;
-text: .text%__1cTC2IAdapterGeneratorKinitialize6F_v_;
-text: .text%__1cOstackSlotPOperFclone6kM_pnIMachOper__;
-text: .text%__1cObox_handleNodeFclone6kM_pnENode__;
text: .text%__1cTAbstract_VM_VersionHvm_name6F_pkc_;
text: .text%__1cTAbstract_VM_VersionJvm_vendor6F_pkc_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_amd64_pipeline.o;
text: .text%__1cSobjArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC222_v_;
text: .text%__1cKmutex_init6F_v_;
@@ -7505,7 +4897,6 @@
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
text: .text%__1cStemplateTable_init6F_v_;
text: .text%__1cNTemplateTableNpd_initialize6F_v_;
-text: .text%__1cSinstanceKlassKlassUoop_is_instanceKlass6kM_i_;
text: .text%__1cNTemplateTableDnop6F_v_;
text: .text%__1cNTemplateTableSshouldnotreachhere6F_v_;
text: .text%__1cNTemplateTableLaconst_null6F_v_;
@@ -7543,7 +4934,6 @@
text: .text%__1cSReferenceProcessorMinit_statics6F_v_;
text: .text%__1cXreferenceProcessor_init6F_v_;
text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpCpnMRegisterImpl_33_v_;
-text: .text%__1cURecompilationMonitorbGstart_recompilation_monitor_task6F_v_;
text: .text%__1cZInterpreterMacroAssemblerUdispatch_only_normal6MnITosState__v_;
text: .text%__1cNTemplateTableHaload_06F_v_;
text: .text%__1cNTemplateTableGistore6F_v_;
@@ -7588,8 +4978,6 @@
text: .text%__1cNTemplateTableElshl6F_v_;
text: .text%__1cNTemplateTableElshr6F_v_;
text: .text%__1cNTemplateTableFlushr6F_v_;
-text: .text%__1cRaddL_rReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cRaddL_mem_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableEineg6F_v_;
text: .text%__1cNTemplateTableElneg6F_v_;
text: .text%__1cLVtableStubsKinitialize6F_v_;
@@ -7597,7 +4985,6 @@
text: .text%__1cNTemplateTableEdneg6F_v_;
text: .text%__1cNTemplateTableEiinc6F_v_;
text: .text%__1cNTemplateTableJwide_iinc6F_v_;
-text: .text%__1cMincL_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableElcmp6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psScavenge.o;
text: .text%__1cKPSScavengeKinitialize6F_v_;
@@ -7612,19 +4999,12 @@
text: .text%__1cNTemplateTableRfast_linearswitch6F_v_;
text: .text%__1cNTemplateTableRfast_binaryswitch6F_v_;
text: .text%__1cbCAbstractInterpreterGeneratorMgenerate_all6M_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbEset_entry_points_for_all_bytes6M_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbCset_safepoints_for_all_bytes6M_v_;
-text: .text%__1cOsalI_mem_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSPSPromotionManagerKinitialize6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: memoryService.o;
text: .text%__1cNTemplateTableIgetfield6Fi_v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cNGrowableArray4CpnNMemoryManager__2t6Mii_v_;
-text: .text%__1cNGrowableArray4CpnKMemoryPool__2t6Mii_v_;
text: .text%__1cNTemplateTableIputfield6Fi_v_;
text: .text%__1cNTemplateTableJputstatic6Fi_v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psPromotionLAB.o;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interpreter.o;
text: .text%__1cJPSPermGen2t6MnNReservedSpace_LLLLpkci_v_;
text: .text%__1cXNativeSignatureIteratorHdo_byte6M_v_;
text: .text%__1cIPSOldGen2t6MLLLpkci_v_;
@@ -7647,7 +5027,6 @@
text: .text%__1cNTemplateTableEwide6F_v_;
text: .text%__1cNTemplateTableOmultianewarray6F_v_;
text: .text%__1cIPSOldGen2t6MnNReservedSpace_LLLLpkci_v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: tenuredGeneration.o;
text: .text%__1cQvtableStubs_init6F_v_;
text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cSInterpreterRuntimeYthrow_ClassCastException6FpnKJavaThread_pnHoopDesc__v_;
@@ -7655,17 +5034,9 @@
text: .text%__1cNeventlog_init6F_v_;
text: .text%__1cOMacroAssemblerGc2bool6MpnMRegisterImpl__v_;
text: .text%__1cPmethodDataKlassOset_alloc_size6MI_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
-text: .text%__1cTPSAlwaysTrueClosure2t6M_v_: psMarkSweep.o;
text: .text%__1cXSignatureHandlerLibraryQset_handler_blob6F_pC_;
-text: .text%__1cNGrowableArray4CpC_2t6Mii_v_;
-text: .text%__1cNGrowableArray4CL_2t6Mii_v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbJgenerate_StackOverflowError_handler6M_pC_;
text: .text%__1cOMacroAssemblerRsign_extend_short6MpnMRegisterImpl__v_;
-text: .text%__1cbCAbstractInterpreterGeneratorbMgenerate_ArrayIndexOutOfBounds_handler6Mpkc_pC_;
-text: .text%__1cbCAbstractInterpreterGeneratorbJgenerate_ClassCastException_handler6M_pC_;
-text: .text%__1cGThreadWset_as_starting_thread6M_i_;
text: .text%__1cLPSMarkSweepKinitialize6F_v_;
text: .text%__1cbBcreate_initial_thread_group6FpnGThread__nGHandle__: thread.o;
text: .text%__1cVcreate_initial_thread6FnGHandle_pnKJavaThread_pnGThread__pnHoopDesc__: thread.o;
@@ -7678,12 +5049,9 @@
text: .text%__1cNWatcherThreadFstart6F_v_;
text: .text%__1cNWatcherThreadEstop6F_v_;
text: .text%__1cOMacroAssemblerQsign_extend_byte6MpnMRegisterImpl__v_;
-text: .text%__1cKJavaThread2t6M_v_;
text: .text%__1cHRetDataJfixup_ret6MinQmethodDataHandle__pC_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cLmethodKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cbAPSGCAdaptivePolicyCounters2t6MpkciipnUPSAdaptiveSizePolicy__v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psAdaptiveSizePolicy.o;
text: .text%__1cKDictionaryKmethods_do6MpFpnNmethodOopDesc__v_v_;
text: .text%__1cKDictionaryKclasses_do6MpFpnMklassOopDesc__v_v_;
text: .text%__1cbCAbstractInterpreterGeneratorbFgenerate_slow_signature_handler6M_pC_;
@@ -7695,20 +5063,15 @@
text: .text%__1cKDictionary2t6Mi_v_;
text: .text%__1cJBytecodesKinitialize6F_v_;
text: .text%__1cObytecodes_init6F_v_;
-text: .text%__1cUPSAdaptiveSizePolicy2t6MLLLLLddI_v_;
text: .text%__1cJBytecodesNpd_initialize6F_v_;
text: .text%__1cHCompileRpd_compiler2_init6F_v_;
text: .text%__1cKC2CompilerKinitialize6M_v_;
text: .text%__1cFStateQ_sub_Op_TailJump6MpknENode__v_;
-text: .text%__1cMorL_rRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cbCAbstractInterpreterGeneratorYgenerate_throw_exception6M_v_;
text: .text%__1cUInterpreterGenerator2t6MpnJStubQdDueue__v_;
text: .text%__1cWinvocationCounter_init6F_v_;
text: .text%__1cQPlaceholderTable2t6Mi_v_;
-text: .text%__1cHThreadsJcreate_vm6FpnOJavaVMInitArgs_pi_i_;
text: .text%__1cFStateL_sub_Op_OrL6MpknENode__v_;
text: .text%__1cFStateM_sub_Op_NegF6MpknENode__v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_amd64_expand.o;
text: .text%__1cQprint_statistics6F_v_;
text: .text%__1cLbefore_exit6FpnKJavaThread__v_;
text: .text%__1cFStateP_sub_Op_MoveL2D6MpknENode__v_;
@@ -7720,7 +5083,6 @@
text: .text%__1cbIjava_lang_reflect_AccessibleObjectPcompute_offsets6F_v_;
text: .text%__1cYjava_lang_reflect_MethodPcompute_offsets6F_v_;
text: .text%__1cOThreadCriticalKinitialize6F_v_;
-text: .text%__1cRAllocateTLSOffset6F_v_: threadLS_solaris_amd64.o;
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
text: .text%__1cYjava_lang_reflect_MethodNset_signature6FpnHoopDesc_2_v_;
text: .text%__1cbDjava_lang_reflect_ConstructorPcompute_offsets6F_v_;
@@ -7738,7 +5100,6 @@
text: .text%__1cLJavaClassesPcompute_offsets6F_v_;
text: .text%__1cPGlobalTLABStats2t6M_v_;
text: .text%__1cQjavaClasses_init6F_v_;
-text: .text%__1cMTailJumpNode2t6MpnENode_22222_v_;
text: .text%jni_ToReflectedMethod: jni.o;
text: .text%__1cSThreadLocalStorageEinit6F_v_;
text: .text%__1cNThreadServiceEinit6F_v_;
@@ -7752,29 +5113,17 @@
text: .text%__1cRCardTableModRefBS2t6MnJMemRegion_i_v_;
text: .text%__1cXjni_GetDoubleField_addr6F_pC_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: phase.o;
-text: .text%__1cJTimeStampMmilliseconds6kM_x_;
text: .text%__1cTConstantDoubleValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
text: .text%__1cKPerfMemoryUcreate_memory_region6FL_v_;
text: .text%__1cRCardTableModRefBSbBct_max_alignment_constraint6F_L_;
-text: .text%__1cUdelete_shared_memory6FpcL_v_: perfMemory_solaris.o;
-text: .text%__1cUcreate_shared_memory6FL_pc_: perfMemory_solaris.o;
text: .text%__1cOtailjmpIndNodeFreloc6kM_i_;
-text: .text%__1cSmmap_create_shared6FL_pc_: perfMemory_solaris.o;
text: .text%__1cETypeRInitialize_shared6FpnHCompile__v_;
text: .text%__1cWconstantPoolCacheKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
-text: .text%__1cbAcreate_sharedmem_resources6Fpkc1L_i_: perfMemory_solaris.o;
text: .text%__1cWconstantPoolCacheKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cRmake_user_tmp_dir6Fpkc_i_: perfMemory_solaris.o;
-text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cMciArrayKlass2t6MpnIciSymbol_ipnHciKlass__v_;
-text: .text%__1cLremove_file6Fpkc_v_: perfMemory_solaris.o;
-text: .text%__1cWget_sharedmem_filename6Fpkci_pc_: perfMemory_solaris.o;
-text: .text%__1cNget_user_name6Fi_pc_: perfMemory_solaris.o;
-text: .text%__1cQget_user_tmp_dir6Fpkc_pc_: perfMemory_solaris.o;
text: .text%__1cRconstantPoolKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cFciEnvXget_or_create_exception6MrpnI_jobject_nMsymbolHandle__pnKciInstance__;
-text: .text%__1cMloadConFNodeGis_Con6kM_I_;
text: .text%__1cRconstantPoolKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cKPerfMemoryHdestroy6F_v_;
text: .text%__1cQconstMethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
@@ -7794,7 +5143,6 @@
text: .text%__1cMsubD_immNodeFreloc6kM_i_;
text: .text%__1cMsubF_memNodeFreloc6kM_i_;
text: .text%lookupDirectBufferClasses: jni.o;
-text: .text%__1cbDinitializeDirectBufferSupport6FpnHJNIEnv___i_: jni.o;
text: .text%__1cVquicken_jni_functions6F_v_;
text: .text%JNI_CreateJavaVM;
text: .text%__1cFParseWprofile_null_checkcast6M_v_;
@@ -7813,7 +5161,6 @@
text: .text%__1cMincL_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQJNI_FastGetFieldbDgenerate_fast_get_float_field6F_pC_;
text: .text%__1cQJNI_FastGetFieldbEgenerate_fast_get_double_field6F_pC_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jniFastGetField_amd64.o;
text: .text%__1cNcmovL_memNodeFreloc6kM_i_;
text: .text%__1cKJNIHandlesKinitialize6F_v_;
text: .text%__1cQjni_handles_init6F_v_;
@@ -7821,34 +5168,22 @@
text: .text%JVM_Halt;
text: .text%JVM_MaxMemory;
text: .text%JVM_GetClassDeclaredMethods;
-text: .text%__1cKCMoveDNodeFIdeal6MpnIPhaseGVN_i_pnENode__;
text: .text%__1cOsalI_mem_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHRetDataKis_RetData6M_i_;
text: .text%JVM_InitializeSocketLibrary;
text: .text%JVM_Socket;
text: .text%__1cPciObjArrayKlass2t6MpnIciSymbol_pnHciKlass_i_v_;
-text: .text%__1cPOopTaskQdDueueSet2t6Mi_v_;
text: .text%__1cbEinitialize_converter_functions6F_v_;
text: .text%JVM_SupportsCX8;
text: .text%__1cUciObjArrayKlassKlassEmake6F_p0_;
text: .text%__1cTcompilerOracle_init6F_v_;
-text: .text%__1cOCompilerOracleRparse_from_string6Fpkc_v_;
text: .text%__1cOCompilerOraclePparse_from_file6F_v_;
-text: .text%__1cHcc_file6F_pkc_: compilerOracle.o;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
-text: .text%__1cOCompilerOracleOread_from_line6Fpc_v_;
text: .text%__1cPciObjectFactoryTinit_shared_objects6M_v_;
text: .text%__1cVcompiledICHolderKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cVcompiledICHolderKlassOset_alloc_size6MI_v_;
-text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiEnvBase.o;
text: .text%__1cVcompiledICHolderKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cNGrowableArray4CpnMJvmtiEnvBase__2t6Mii_v_;
text: .text%__1cRJvmtiEventEnabled2t6M_v_;
-text: .text%__1cRciArrayKlassKlassUis_array_klass_klass6M_i_;
text: .text%__1cRJvmtiEventEnabledFclear6M_v_;
-text: .text%__1cNGrowableArray4CpnOCompilerThread__2t6Mii_v_;
-text: .text%__1cFParseNfetch_monitor6MipnENode_2_2_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cNGrowableArray4CpnIciMethod__Egrow6Mi_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
@@ -7856,10 +5191,7 @@
text: .text%__1cPGenerationSizerQinitialize_flags6M_v_;
text: .text%__1cUJvmtiEventControllerHvm_init6F_v_;
text: .text%__1cUJvmtiEventControllerIvm_death6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
-text: .text%__1cUParallelScavengeHeapbCsupports_inline_contig_alloc6kM_i_;
text: .text%__1cUParallelScavengeHeapItop_addr6kM_ppnIHeapWord__;
-text: .text%__1cNCompileBrokerQcompilation_init6FpnQAbstractCompiler__v_;
text: .text%__1cUParallelScavengeHeapIend_addr6kM_ppnIHeapWord__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiEventController.o;
text: .text%__1cLJvmtiExportRenter_start_phase6F_v_;
@@ -7868,23 +5200,19 @@
text: .text%__1cUParallelScavengeHeapYpermanent_object_iterate6MpnNObjectClosure__v_;
text: .text%__1cLJvmtiExportQenter_live_phase6F_v_;
text: .text%__1cLJvmtiExportNpost_vm_start6F_v_;
-text: .text%__1cOcompiler2_init6F_v_;
text: .text%__1cLJvmtiExportTpost_vm_initialized6F_v_;
text: .text%__1cLJvmtiExportNpost_vm_death6F_v_;
text: .text%__1cLJvmtiExportbMtransition_pending_onload_raw_monitors6F_v_;
text: .text%__1cUParallelScavengeHeapMmax_capacity6kM_L_;
text: .text%__1cUJvmtiPendingMonitorsXtransition_raw_monitors6F_v_;
-text: .text%__1cMaddF_regNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cUParallelScavengeHeapPpost_initialize6M_v_;
text: .text%__1cUParallelScavengeHeapKinitialize6M_i_;
-text: .text%__1cHoopDescLheader_size6F_i_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compilationPolicy.o;
text: .text%__1cPClassFileParserbFjava_lang_ref_Reference_fix_pre6MpnPtypeArrayHandle_nSconstantPoolHandle_pnUFieldAllocationCount_pnGThread__v_;
text: .text%__1cPClassFileParserXjava_lang_Class_fix_pre6MpnOobjArrayHandle_pnUFieldAllocationCount_pnGThread__v_;
text: .text%__1cPClassFileParserYjava_lang_Class_fix_post6Mpi_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiImpl.o;
-text: .text%__1cNGrowableArray4CpnPJvmtiRawMonitor__2t6Mii_v_;
text: .text%__1cNGrowableArray4CpnPJvmtiRawMonitor__Uclear_and_deallocate6M_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiTagMap.o;
text: .text%__1cRCompilationPolicyUcompleted_vm_startup6F_v_;
@@ -7893,7 +5221,6 @@
text: .text%__1cWcompilationPolicy_init6F_v_;
text: .text%__1cMostream_exit6F_v_;
text: .text%__1cTtypeArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
-text: .text%__1cTtypeArrayKlassKlassVoop_is_typeArrayKlass6kM_i_;
text: .text%__1cbCTwoGenerationCollectorPolicyMrem_set_name6M_nJGenRemSetEName__;
text: .text%__1cTtypeArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cQostream_init_log6F_v_;
@@ -7902,14 +5229,12 @@
text: .text%__1cIUniverseNfixup_mirrors6FpnGThread__v_;
text: .text%__1cMostream_init6F_v_;
text: .text%__1cNdefaultStreamEinit6M_v_;
-text: .text%__1cIUniverseUreinitialize_itables6F_v_;
text: .text%__1cKklassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cKklassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cNuniverse_init6F_i_;
text: .text%__1cIUniversePinitialize_heap6F_i_;
text: .text%__1cLClassLoaderbBsetup_bootstrap_search_path6F_v_;
text: .text%__1cOuniverse2_init6F_v_;
-text: .text%__1cSuniverse_post_init6F_v_;
text: .text%__1cIUniverseYcompute_base_vtable_size6F_v_;
text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cCosGinit_26F_i_;
@@ -7919,24 +5244,18 @@
text: .text%Unsafe_SetNativeLong;
text: .text%__1cCosHSolarisOlibthread_init6F_v_;
text: .text%__1cJLoadFNodeMstore_Opcode6kM_i_;
-text: .text%__1cOisT2_libthread6F_i_;
text: .text%Unsafe_FreeMemory;
text: .text%__1cCosHSolarisXinstall_signal_handlers6F_v_;
text: .text%Unsafe_PageSize;
text: .text%__1cRlwp_priocntl_init6F_i_: os_solaris.o;
text: .text%__1cNpriocntl_stub6FinGidtype_iipc_l_: os_solaris.o;
-text: .text%__1cCosHSolarisRmpss_sanity_check6F_v_;
-text: .text%__1cOLibraryCallKitWinline_native_hashcode6Mii_i_;
text: .text%__1cbCTwoGenerationCollectorPolicyQinitialize_flags6M_v_;
-text: .text%__1cCosOrelease_memory6FpcL_i_;
text: .text%__1cCosLsignal_wait6F_i_;
text: .text%JVM_RegisterUnsafeMethods;
-text: .text%__1cVcheck_pending_signals6Fi_i_: os_solaris.o;
text: .text%__1cCosNsignal_notify6Fi_v_;
text: .text%__1cCosOsignal_init_pd6F_v_;
text: .text%__1cLClassLoaderQload_zip_library6F_v_;
text: .text%__1cLClassLoaderZcreate_package_info_table6F_v_;
-text: .text%__1cNmulI_rRegNodeMcisc_version6Mi_pnIMachNode__;
text: .text%__1cLClassLoaderKinitialize6F_v_;
text: .text%__1cLClassLoaderVcompute_Object_vtable6F_i_;
text: .text%__1cCosHSolarisPinit_signal_mem6F_v_;
@@ -7947,19 +5266,12 @@
text: .text%__1cVLoaderConstraintTable2t6Mi_v_;
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
text: .text%__1cOcodeCache_init6F_v_;
-text: .text%__1cVverificationType_init6F_v_;
-text: .text%__1cVverificationType_exit6F_v_;
-text: .text%__1cQVerificationTypeKinitialize6F_v_;
-text: .text%__1cQVerificationTypeIfinalize6F_v_;
text: .text%__1cJCodeCacheKinitialize6F_v_;
text: .text%__1cNIdealLoopTreeQsplit_outer_loop6MpnOPhaseIdealLoop__v_;
text: .text%__1cKfix_parent6FpnNIdealLoopTree_1_v_: loopnode.o;
text: .text%__1cCosHSolarisQsignal_sets_init6F_v_;
text: .text%__1cTClassLoadingServiceEinit6F_v_;
-text: .text%__1cTClassLoadingServiceVnotify_class_unloaded6FpnNinstanceKlass_i_v_;
-text: .text%__1cCosScreate_main_thread6FpnGThread__i_;
text: .text%__1cNIdealLoopTreeUmerge_many_backedges6MpnOPhaseIdealLoop__v_;
-text: .text%__1cQcreate_os_thread6FpnGThread_I_pnIOSThread__: os_solaris.o;
text: .text%__1cRLowMemoryDetectorKinitialize6F_v_;
text: .text%__1cLmethodKlassOset_alloc_size6MI_v_;
text: .text%__1cNExceptionBlob2n6FLI_pv_;
@@ -7971,13 +5283,10 @@
text: .text%__1cSDeoptimizationBlob2n6FLI_pv_;
text: .text%__1cSDeoptimizationBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_iiii_p0_;
text: .text%__1cSDeoptimizationBlob2t6MpnKCodeBuffer_ipnJOopMapSet_iiii_v_;
-text: .text%__1cRLowMemoryDetectorUhas_pending_requests6F_i_;
text: .text%__1cCosbDinit_system_properties_values6F_v_;
text: .text%__1cCosHSolarisWinitialize_system_info6F_v_;
text: .text%__1cCosPphysical_memory6F_X_;
-text: .text%__1cMFastLockNodeLis_FastLock6kM_pk0_;
text: .text%__1cRLowMemoryDetectorbGlow_memory_detector_thread_entry6FpnKJavaThread_pnGThread__v_;
-text: .text%__1cXLowMemoryDetectorThreadbCis_hidden_from_external_view6kM_i_;
text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
text: .text%__1cLmethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: machnode.o;
@@ -7985,28 +5294,16 @@
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: cmsAdaptiveSizePolicy.o;
text: .text%__1cKManagementEinit6F_v_;
text: .text%__1cKManagementKinitialize6FpnGThread__v_;
-text: .text%__1cKManagementWrecord_vm_startup_time6Fxx_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: management.o;
text: .text%__1cOmarksweep_init6F_v_;
-text: .text%__1cCosXis_server_class_machine6F_i_;
-text: .text%__1cJMarkSweepQKeepAliveClosure2t6M_v_: markSweep.o;
-text: .text%__1cNReservedSpace2t6MLLipc_v_;
-text: .text%__1cJMarkSweepOIsAliveClosure2t6M_v_: markSweep.o;
text: .text%__1cCosZset_memory_serialize_page6FpC_v_;
-text: .text%__1cCosNset_boot_path6Fcc_i_;
-text: .text%__1cJMarkSweepSFollowStackClosure2t6M_v_: markSweep.o;
text: .text%__1cNReservedSpaceUpage_align_size_down6FL_L_;
text: .text%__1cNReservedSpaceYallocation_align_size_up6FL_L_;
-text: .text%__1cNGrowableArray4CpnKOSRAdapter__2t6Mii_v_;
-text: .text%__1cXonStackReplacement_init6F_v_;
-text: .text%__1cSOnStackReplacementKinitialize6F_v_;
-text: .text%__1cJMarkSweepRFollowRootClosure2t6M_v_: markSweep.o;
text: .text%__1cCosLinit_random6Fl_v_;
text: .text%__1cHOrLNodeJideal_reg6kM_I_;
text: .text%__1cOvmStructs_init6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vmStructs.o;
text: .text%__1cJvmSymbolsKinitialize6FpnGThread__v_;
-text: .text%__1cJMarkSweepSMarkAndPushClosure2t6M_v_: markSweep.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: markSweep.o;
text: .text%__1cQVMOperationQdDueue2t6M_v_;
text: .text%__1cCosGstrdup6Fpkc_pc_;
@@ -8017,13 +5314,9 @@
text: .text%__1cTsignal_thread_entry6FpnKJavaThread_pnGThread__v_: os.o;
text: .text%__1cOtailjmpIndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSobjArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_;
-text: .text%__1cHMatcherVfind_callee_arguments6FpnNsymbolOopDesc_ipi_pnLOptoRegPair__;
text: .text%__1cIVMThreadGcreate6F_v_;
text: .text%__1cIVMThread2t6M_v_;
-text: .text%__1cNSharedRuntimeUlookup_function_DD_D6FrpFpnHJNIEnv__pnH_jclass_dd_dpkc_v_;
-text: .text%__1cNSharedRuntimebIinitialize_StrictMath_entry_points6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cWResolveOopMapConflictsUdo_potential_rewrite6MpnGThread__nMmethodHandle__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: generateOopMap.o;
@@ -8031,43 +5324,25 @@
text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_2_v_;
text: .text%__1cNCellTypeStateLmake_bottom6F_0_;
text: .text%__1cNcmovL_memNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cRcheck_basic_types6F_v_;
-text: .text%__1cLOptoRuntimeYgenerate_arraycopy_stubs6F_v_;
-text: .text%__1cSobjArrayKlassKlassUoop_is_objArrayKlass6kM_i_;
text: .text%__1cNSharedRuntimebBgenerate_class_cast_message6FpnKJavaThread_pkc_pc_;
-text: .text%__1cNSharedRuntimebBgenerate_class_cast_message6Fpkc2_pc_;
-text: .text%__1cLOptoRuntimebPgenerate_polling_page_return_handler_blob6F_v_;
text: .text%__1cIVMThreadEloop6M_v_;
-text: .text%__1cLOptoRuntimebSgenerate_polling_page_safepoint_handler_blob6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: matcher.o;
-text: .text%__1cLOptoRuntimeUsetup_exception_blob6F_v_;
-text: .text%__1cLOptoRuntimeWfill_in_exception_blob6F_v_;
text: .text%__1cNMemoryManagerbDget_code_cache_memory_manager6F_p0_;
text: .text%__1cNMemoryManagerbDget_psScavenge_memory_manager6F_pnPGCMemoryManager__;
text: .text%__1cNMemoryManagerbEget_psMarkSweep_memory_manager6F_pnPGCMemoryManager__;
-text: .text%__1cQPSGenerationPool2t6MpnIPSOldGen_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cJAssemblerFimull6MpnMRegisterImpl_2_v_;
-text: .text%__1cLOptoRuntimebBgenerate_uncommon_trap_blob6F_v_;
text: .text%__1cNSharedRuntimeTgenerate_deopt_blob6F_v_;
-text: .text%__1cQPSGenerationPool2t6MpnJPSPermGen_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cNRegisterSaverYrestore_result_registers6FpnOMacroAssembler__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: runtimeService.o;
text: .text%__1cORuntimeServiceYrecord_application_start6F_v_;
text: .text%__1cJGenRemSetYmax_alignment_constraint6Fn0AEName__L_;
-text: .text%__1cICarSpaceEinit6F_v_;
-text: .text%__1cNcarSpace_init6F_v_;
text: .text%__1cORuntimeServiceEinit6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
-text: .text%__1cRAlwaysTrueClosure2t6M_v_: genCollectedHeap.o;
-text: .text%__1cLOptoRuntimeVhandle_exception_Type6F_pknITypeFunc__;
-text: .text%__1cLOptoRuntimeSfetch_monitor_Type6F_pknITypeFunc__;
text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_i_v_;
text: .text%__1cLStatSamplerKinitialize6F_v_;
text: .text%__1cLStatSamplerGengage6F_v_;
text: .text%__1cLStatSamplerJdisengage6F_v_;
text: .text%__1cLStatSamplerHdestroy6F_v_;
-text: .text%__1cSCommandLineFlagsExKuintxAtPut6FnXCommandLineFlagWithType_L_v_;
text: .text%__1cSobjArrayKlassKlassbEallocate_system_objArray_klass6MpnGThread__pnMklassOopDesc__;
text: .text%__1cLOptoRuntimeUmultianewarray5_Type6F_pknITypeFunc__;
text: .text%__1cLStatSamplerbMcreate_system_property_instrumentation6FpnGThread__v_;
@@ -8079,14 +5354,7 @@
text: .text%__1cLOptoRuntimeUmultianewarray4_Type6F_pknITypeFunc__;
text: .text%__1cJAssemblerEshll6MpnMRegisterImpl__v_;
text: .text%__1cJAssemblerEshlq6MpnMRegisterImpl__v_;
-text: .text%__1cUEdenMutableSpacePool2t6MpnKPSYoungGen_pnMMutableSpace_pkcnKMemoryPoolIPoolType_i_v_;
text: .text%__1cNStubGeneratorQgenerate_initial6M_v_;
-text: .text%__1cNStubGeneratorXgenerate_atomic_add_ptr6M_pC_;
-text: .text%__1cNStubGeneratorTgenerate_atomic_add6M_pC_;
-text: .text%__1cNStubGeneratorbCgenerate_atomic_cmpxchg_long6M_pC_;
-text: .text%__1cNStubGeneratorXgenerate_atomic_cmpxchg6M_pC_;
-text: .text%__1cNStubGeneratorYgenerate_atomic_xchg_ptr6M_pC_;
-text: .text%__1cNStubGeneratorUgenerate_atomic_xchg6M_pC_;
text: .text%__1cNStubGeneratorYgenerate_catch_exception6M_pC_;
text: .text%__1cNStubGeneratorSgenerate_call_stub6MrpC_1_;
text: .text%__1cNStubGeneratorbAgenerate_forward_exception6M_pC_;
@@ -8098,18 +5366,12 @@
text: .text%__1cLOptoRuntimeUmultianewarray3_Type6F_pknITypeFunc__;
text: .text%__1cNStubGeneratorTgenerate_verify_oop6M_pC_;
text: .text%__1cNStubGeneratorVgenerate_verify_mxcsr6M_pC_;
-text: .text%__1cNStubGeneratorYgenerate_get_previous_fp6M_pC_;
-text: .text%__1cNStubGeneratorbIgenerate_handler_for_unsafe_access6M_pC_;
text: .text%__1cMStubRoutinesLinitialize16F_v_;
text: .text%__1cMStubRoutinesLinitialize26F_v_;
text: .text%__1cSstubRoutines_init16F_v_;
text: .text%__1cSstubRoutines_init26F_v_;
text: .text%__1cLMoveL2DNodeJideal_reg6kM_I_;
-text: .text%__1cNGrowableArray4CpnTDerivedPointerEntry__2t6Mii_v_;
text: .text%__1cLMoveF2INodeJideal_reg6kM_I_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
-text: .text%__1cNGrowableArray4CpnHMonitor__2t6Mii_v_;
text: .text%__1cLOptoRuntimeUmultianewarray2_Type6F_pknITypeFunc__;
-text: .text%__1cLOptoRuntimeUmultianewarray1_Type6F_pknITypeFunc__;
-text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl__v_;
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_i486 Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_i486 Tue Nov 02 22:15:35 2010 -0700
@@ -2,7 +2,6 @@
text = LOAD ?RXO;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
text: .text%__1cNSharedRuntimeElrem6Fxx_x_;
text: .text%__1cCosOjavaTimeMillis6F_x_;
@@ -19,7 +18,6 @@
text: .text%__1cIIndexSetWalloc_block_containing6MI_pn0AIBitBlock__;
text: .text%__1cENodeEjvms6kM_pnIJVMState__;
text: .text%__1cHRegMaskJis_bound16kM_i_;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cETypeDcmp6Fkpk03_i_;
text: .text%__1cHRegMaskJis_bound26kM_i_;
text: .text%__1cHRegMaskESize6kM_I_;
@@ -36,8 +34,6 @@
text: .text%__1cKTypeOopPtrFklass6kM_pnHciKlass__: type.o;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cETypeFuhash6Fkpk0_i_;
-text: .text%__1cOlower_pressure6FpnDLRG_IpnFBlock_pI4_v_: ifg.o;
-text: .text%__1cMget_live_bit6Fpii_i_: buildOopMap.o;
text: .text%__1cMPhaseChaitinLskip_copies6MpnENode__2_;
text: .text%__1cICallNodeKmatch_edge6kMI_I_;
text: .text%__1cHPhiNodeGOpcode6kM_i_;
@@ -47,15 +43,12 @@
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cIPhaseIFGLremove_node6MI_pnIIndexSet__;
text: .text%__1cIPhaseIFGJre_insert6MI_v_;
-text: .text%__1cJraw_score6Fdd_d_: chaitin.o;
text: .text%__1cDLRGFscore6kM_d_;
text: .text%__1cETypeIhashcons6M_pk0_;
text: .text%__1cPClassFileStreamGget_u26MpnGThread__H_;
text: .text%__1cENodeEhash6kM_I_;
text: .text%__1cHNTarjanEEVAL6M_p0_;
text: .text%__1cMMachCallNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cMset_live_bit6Fpii_v_: buildOopMap.o;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cIProjNodeGOpcode6kM_i_;
text: .text%__1cNobjArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -64,7 +57,6 @@
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
text: .text%__1cIConINodeGOpcode6kM_i_;
text: .text%__1cGIfNodeGOpcode6kM_i_;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cHTypePtrEhash6kM_i_;
text: .text%__1cENode2t6MI_v_;
text: .text%JVM_ArrayCopy;
@@ -79,11 +71,9 @@
text: .text%__1cIAddPNodeGOpcode6kM_i_;
text: .text%__1cPDictionaryEntrybDprotection_domain_set_oops_do6MpnKOopClosure__v_: dictionary.o;
text: .text%__1cHTypeIntEhash6kM_i_;
-text: .text%__1cSPSPromotionManagerUflush_prefetch_queue6M_v_: psPromotionManager.o;
text: .text%__1cMMachProjNodeLbottom_type6kM_pknEType__;
text: .text%__1cMPhaseIterGVNNtransform_old6MpnENode__2_;
text: .text%__1cMMachProjNodeGOpcode6kM_i_;
-text: .text%__1cMclr_live_bit6Fpii_v_: buildOopMap.o;
text: .text%__1cJCProjNodeNis_block_proj6kM_pknENode__: cfgnode.o;
text: .text%__1cJPhaseLiveGgetset6MpnFBlock__pnIIndexSet__;
text: .text%__1cHConNodeGOpcode6kM_i_;
@@ -223,7 +213,6 @@
text: .text%__1cENodeHdel_req6MI_v_;
text: .text%__1cETypeEhash6kM_i_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cIHaltNodeGOpcode6kM_i_;
text: .text%__1cMPhaseIterGVNZremove_globally_dead_node6MpnENode__v_;
text: .text%__1cIParmNodeGOpcode6kM_i_;
@@ -310,7 +299,6 @@
text: .text%__1cIIndexSetSpopulate_free_list6F_v_;
text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
text: .text%JVM_ReleaseUTF;
-text: .text%__1cKutf8_write6FpCH_0_: utf8.o;
text: .text%__1cKNode_ArrayGremove6MI_v_;
text: .text%__1cKRegionNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cMPhaseIterGVNMsubsume_node6MpnENode_2_v_;
@@ -359,7 +347,6 @@
text: .text%__1cJTypeTupleGfields6FI_ppknEType__;
text: .text%__1cMPhaseChaitinFUnion6MpknENode_3_v_;
text: .text%__1cKRegionNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cLrecord_bias6FpknIPhaseIFG_ii_v_: coalesce.o;
text: .text%__1cMPhaseChaitinSget_spillcopy_wide6MpnENode_2I_2_;
text: .text%__1cKNativeCallLdestination6kM_pC_;
text: .text%__1cICallNodeIIdentity6MpnOPhaseTransform__pnENode__: callnode.o;
@@ -415,7 +402,6 @@
text: .text%__1cFStateM_sub_Op_ConI6MpknENode__v_;
text: .text%__1cNRelocIteratorKset_limits6MpC1_v_;
text: .text%__1cIsplit_if6FpnGIfNode_pnMPhaseIterGVN__pnENode__: ifnode.o;
-text: .text%__1cTremove_useless_bool6FpnGIfNode_pnIPhaseGVN__pnENode__: ifnode.o;
text: .text%__1cJeRegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSInterpreterRuntimeJanewarray6FpnKJavaThread_pnTconstantPoolOopDesc_ii_v_;
text: .text%__1cHAddNodeEhash6kM_I_;
@@ -478,7 +464,6 @@
text: .text%__1cLMachNopNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cMObjectLocker2T6M_v_;
-text: .text%__1cWConstantPoolCacheEntryRset_initial_state6Mi_v_;
text: .text%__1cOPhaseIdealLoopOidom_no_update6kMpnENode__2_: loopTransform.o;
text: .text%__1cRmethodDataOopDescPinitialize_data6MpnOBytecodeStream_i_i_;
text: .text%__1cRmethodDataOopDescTbytecode_cell_count6FnJBytecodesECode__i_;
@@ -516,7 +501,6 @@
text: .text%__1cMMergeMemNodePset_base_memory6MpnENode__v_;
text: .text%__1cNLoadKlassNodeGOpcode6kM_i_;
text: .text%__1cKTypeRawPtrEhash6kM_i_;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cPPerfLongVariantGsample6M_v_;
text: .text%__1cIAndINodeGOpcode6kM_i_;
text: .text%__1cVCompressedWriteStream2t6Mi_v_;
@@ -552,7 +536,6 @@
text: .text%__1cENodeDcmp6kMrk0_I_;
text: .text%__1cNloadRangeNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_RegI6MpknENode__v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cFStateM_sub_Op_AddP6MpknENode__v_;
text: .text%__1cIGraphKitMsaved_ex_oop6FpnNSafePointNode__pnENode__;
text: .text%__1cIciObjectJset_ident6MI_v_;
@@ -654,7 +637,6 @@
text: .text%JVM_CurrentThread;
text: .text%__1cKBranchDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cLOopMapCacheIentry_at6kMi_pnQOopMapCacheEntry__;
-text: .text%__1cHOopFlowEmake6FpnFArena_i_p0_;
text: .text%__1cOGenerateOopMapKcheck_type6MnNCellTypeState_1_v_;
text: .text%__1cMMergeMemNodeNgrow_to_match6Mpk0_v_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
@@ -734,8 +716,6 @@
text: .text%__1cWconstantPoolCacheKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cFframebFinterpreter_frame_monitor_begin6kM_pnPBasicObjectLock__;
text: .text%__1cGGCTask2t6M_v_;
-text: .text%__1cETypeFwiden6kMpk0_2_: type.o;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cJLoadBNodeGOpcode6kM_i_;
text: .text%__1cOPhaseIdealLoopGspinup6MpnENode_2222pnLsmall_cache__2_;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
@@ -762,8 +742,6 @@
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cILoadNodeHsize_of6kM_I_;
text: .text%__1cVjava_lang_ClassLoaderbBnon_reflection_class_loader6FpnHoopDesc__2_;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cNCatchProjNodeLbottom_type6kM_pknEType__: cfgnode.o;
text: .text%__1cNCatchProjNodeHsize_of6kM_I_: cfgnode.o;
@@ -838,7 +816,6 @@
text: .text%__1cKInlineTreeJcallee_at6kMipnIciMethod__p0_;
text: .text%__1cQSystemDictionarybCfind_instance_or_array_klass6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cMVirtualSpaceOcommitted_size6kM_I_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cGRFrame2t6MnFframe_pnKJavaThread_kp0_v_;
text: .text%__1cYCallStaticJavaDirectNodeFreloc6kM_i_;
text: .text%__1cKciTypeFlowLStateVectorJcopy_into6kMp1_v_;
@@ -847,7 +824,6 @@
text: .text%__1cKciTypeFlowOwork_list_next6M_pn0AFBlock__;
text: .text%__1cKciTypeFlowKflow_block6Mpn0AFBlock_pn0ALStateVector_pn0AGJsrSet__v_;
text: .text%__1cWConstantPoolCacheEntryKset_method6MnJBytecodesECode_nMmethodHandle_i_v_;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cLPCTableNodeLbottom_type6kM_pknEType__;
@@ -887,12 +863,10 @@
text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
text: .text%__1cIConLNodeGOpcode6kM_i_;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cNCallGenerator2t6MpnIciMethod__v_;
text: .text%__1cIGraphKit2t6M_v_;
text: .text%__1cHMulNodeEhash6kM_I_;
text: .text%__1cFStateM_sub_Op_ConP6MpknENode__v_;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cIAddLNodeGOpcode6kM_i_;
text: .text%__1cIGraphKitNset_map_clone6MpnNSafePointNode__v_;
text: .text%__1cIGraphKitOreplace_in_map6MpnENode_2_v_;
@@ -917,7 +891,6 @@
text: .text%__1cOPhaseIdealLoopIsink_use6MpnENode_2_v_;
text: .text%__1cKMemoryPoolYrecord_peak_memory_usage6M_v_;
text: .text%__1cNinstanceKlassKlink_class6MpnGThread__v_;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%__1cKMemBarNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNinstanceKlassPinitialize_impl6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cTconstantPoolOopDescbBbasic_type_for_signature_at6Mi_nJBasicType__;
@@ -935,8 +908,6 @@
text: .text%__1cKReturnNodeKmatch_edge6kMI_I_;
text: .text%__1cKReturnNodeGOpcode6kM_i_;
text: .text%__1cKHandleAreaHoops_do6MpnKOopClosure__v_;
-text: .text%__1cNchunk_oops_do6FpnKOopClosure_pnFChunk_pc_I_: handles.o;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKstorePNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cLStringTableGintern6FpnNsymbolOopDesc_pnGThread__pnHoopDesc__;
text: .text%__1cNsymbolOopDescKas_unicode6kMri_pH_;
@@ -964,7 +935,6 @@
text: .text%__1cPmethodDataKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cICodeHeapLheader_size6F_I_;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cJTypeTupleKmake_range6FpnLciSignature__pk0_;
text: .text%__1cJStoreNodeSIdeal_masked_input6MpnIPhaseGVN_I_pnENode__;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
@@ -1003,7 +973,6 @@
text: .text%__1cIciMethodTcall_profile_at_bci6Mi_nNciCallProfile__;
text: .text%__1cRInterpretedRFrame2t6MnFframe_pnKJavaThread_kpnGRFrame__v_;
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_nHAddress__v_;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cFParseHdo_call6M_v_;
text: .text%__1cIGraphKitWround_double_arguments6MpnIciMethod__v_;
text: .text%__1cIGraphKitTround_double_result6MpnIciMethod__v_;
@@ -1057,12 +1026,10 @@
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cLnaxRegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cbAjni_check_async_exceptions6FpnKJavaThread__v_: jni.o;
text: .text%__1cKciTypeFlowLStateVectorStype_meet_internal6FpnGciType_3p0_3_;
text: .text%__1cJFieldTypeSskip_optional_size6FpnNsymbolOopDesc_pi_v_;
text: .text%__1cQjmpCon_shortNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_: objArrayKlassKlass.o;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKjmpDirNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIBoolNodeDcmp6kMrknENode__I_;
@@ -1090,7 +1057,6 @@
text: .text%__1cJAssemblerKemit_arith6MiipnMRegisterImpl_i_v_;
text: .text%__1cFStateN_sub_Op_LoadP6MpknENode__v_;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
text: .text%__1cJloadINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFArenaRdestruct_contents6M_v_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
@@ -1098,7 +1064,6 @@
text: .text%__1cJAssemblerDjcc6Mn0AJCondition_rnFLabel_nJrelocInfoJrelocType__v_;
text: .text%__1cHi2sNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOGenerateOopMapJdo_method6Miiii_v_;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cNdecI_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
text: .text%__1cQPSGenerationPoolQget_memory_usage6M_nLMemoryUsage__;
@@ -1106,7 +1071,6 @@
text: .text%__1cKMemBarNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cMURShiftLNodeGOpcode6kM_i_;
text: .text%__1cIMulINodeGOpcode6kM_i_;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cIConDNodeGOpcode6kM_i_;
text: .text%__1cNSignatureInfoGdo_int6M_v_: bytecode.o;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
@@ -1138,13 +1102,11 @@
text: .text%__1cMPeriodicTaskMtime_to_wait6F_I_: thread.o;
text: .text%jni_GetByteArrayRegion: jni.o;
text: .text%__1cQPlaceholderTableKfind_entry6MiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cKstorePNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateP_sub_Op_LShiftI6MpknENode__v_;
text: .text%jni_GetArrayLength: jni.o;
text: .text%__1cICodeHeapIcapacity6kM_I_;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cIPipelinePoperand_latency6kMIpk0_I_;
text: .text%__1cIMachOperEtype6kM_pknEType__;
@@ -1221,19 +1183,16 @@
text: .text%__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cRJavaCallArgumentsKparameters6M_pi_;
-text: .text%__1cRruntime_type_from6FpnJJavaValue__nJBasicType__: javaCalls.o;
text: .text%__1cTAbstractInterpreterbFsize_top_interpreter_activation6FpnNmethodOopDesc__i_;
text: .text%__1cJMultiNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPJavaCallWrapper2T6M_v_;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cKInlineTree2t6MpnHCompile_pk0pnIciMethod_pnIJVMState_if_v_;
text: .text%__1cMLinkResolverXresolve_klass_no_update6FrnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cHciField2t6MpnPciInstanceKlass_i_v_;
text: .text%__1cTconstantPoolOopDescbCklass_ref_at_if_loaded_check6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
text: .text%__1cNloadKlassNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOGenerateOopMapCpp6MpnNCellTypeState_2_v_;
text: .text%__1cSObjectSynchronizerXidentity_hash_value_for6FnGHandle__i_;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cHoopDescSslow_identity_hash6M_i_;
text: .text%__1cIMulINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
@@ -1242,8 +1201,6 @@
text: .text%__1cKInlineTreeYcompute_callee_frequency6kMi_f_;
text: .text%__1cKInlineTreebCbuild_inline_tree_for_callee6MpnIciMethod_pnIJVMState_i_p0_;
text: .text%__1cIciMethodbBinterpreter_call_site_count6Mi_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
-text: .text%__1cJGC_lockerNlock_critical6FpnKJavaThread__v_: jni.o;
text: .text%__1cJAssemblerElock6M_v_;
text: .text%__1cFKlassTarray_klass_or_null6Mi_pnMklassOopDesc__;
text: .text%__1cRandI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
@@ -1265,12 +1222,10 @@
text: .text%__1cPciInstanceKlass2t6MnLKlassHandle__v_;
text: .text%jni_GetPrimitiveArrayCritical: jni.o;
text: .text%jni_ReleasePrimitiveArrayCritical: jni.o;
-text: .text%__1cWConstantPoolCacheEntryPbytecode_number6FnJBytecodesECode__i_: cpCacheOop.o;
text: .text%__1cOMethodLivenessKBasicBlockIload_two6Mi_v_;
text: .text%__1cMCreateExNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cFArena2t6M_v_;
text: .text%__1cHMulNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cMCreateExNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cIJVMState2t6Mi_v_;
@@ -1284,9 +1239,7 @@
text: .text%__1cNCatchProjNodeDcmp6kMrknENode__I_;
text: .text%__1cSCountedLoopEndNodeKstride_con6kM_i_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cHCompileXin_preserve_stack_slots6M_I_;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
text: .text%__1cTJvmtiEventCollectorYunset_jvmti_thread_state6M_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2T6M_v_;
@@ -1298,7 +1251,6 @@
text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_: psScavenge.o;
text: .text%__1cFTypeDEmake6Fd_pk0_;
text: .text%jni_IsSameObject: jni.o;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cKMemoryPoolHoops_do6MpnKOopClosure__v_;
text: .text%__1cNstoreImmBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJloadPNodeIpipeline6kM_pknIPipeline__;
@@ -1351,7 +1303,6 @@
text: .text%__1cOGenerateOopMapIdo_field6Miiii_v_;
text: .text%__1cOGenerateOopMapRsigchar_to_effect6McipnNCellTypeState__2_;
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_2_v_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cNSCMemProjNodeGOpcode6kM_i_;
text: .text%__1cJleaP8NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1363,8 +1314,6 @@
text: .text%__1cRMachNullCheckNodeLout_RegMask6kM_rknHRegMask__: machnode.o;
text: .text%__1cRshrI_eReg_immNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cScompP_mem_eRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
text: .text%__1cSobjArrayKlassKlassToop_adjust_pointers6MpnHoopDesc__i_;
@@ -1376,7 +1325,6 @@
text: .text%__1cTsize_java_to_interp6F_I_;
text: .text%__1cKstoreINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cScompU_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__: graphKit.o;
text: .text%__1cSCallLeafDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQComputeCallStackHdo_void6M_v_: generateOopMap.o;
text: .text%__1cHciField2t6MpnPfieldDescriptor__v_;
@@ -1401,11 +1349,9 @@
text: .text%__1cHCompileSregister_intrinsic6MpnNCallGenerator__v_;
text: .text%__1cMeADXRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cRcmpFastUnlockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cXcopy_u2_with_conversion6FpH0i_v_: classFileParser.o;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
text: .text%__1cMLinkResolverbCresolve_special_call_or_null6FnLKlassHandle_nMsymbolHandle_21_nMmethodHandle__;
text: .text%__1cPciInstanceKlassLfind_method6MpnIciSymbol_2_pnIciMethod__;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cFciEnvRfind_system_klass6MpnIciSymbol__pnHciKlass__;
@@ -1444,10 +1390,7 @@
text: .text%__1cIGraphKitPpush_pair_local6Mi_v_: parse2.o;
text: .text%__1cNMemoryServiceXtrack_memory_pool_usage6FpnKMemoryPool__v_;
text: .text%__1cMLinkResolverUresolve_invokestatic6FrnICallInfo_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cXcmpL_reg_flags_LTGENodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cKoopFactoryYnew_permanent_shortArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cFStateR_sub_Op_LoadRange6MpknENode__v_;
text: .text%__1cOcompU_eRegNodeIpipeline6kM_pknIPipeline__;
@@ -1466,8 +1409,6 @@
text: .text%__1cKstoreINodeFreloc6kM_i_;
text: .text%__1cRCardTableModRefBSPdirty_MemRegion6MnJMemRegion__v_;
text: .text%__1cPcheckCastPPNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cKciTypeFlowHdo_flow6M_v_;
text: .text%__1cKciTypeFlowKmap_blocks6M_v_;
text: .text%__1cKciTypeFlowKflow_types6M_v_;
@@ -1509,14 +1450,12 @@
text: .text%__1cPfieldDescriptorRint_initial_value6kM_i_;
text: .text%__1cJTimeStampSticks_since_update6kM_x_;
text: .text%__1cISubLNodeGOpcode6kM_i_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cICodeBlobMset_oop_maps6MpnJOopMapSet__v_;
text: .text%__1cJCodeCacheIallocate6Fi_pnICodeBlob__;
text: .text%__1cQVMOperationQdDueueSqueue_remove_front6Mi_pnMVM_Operation__;
text: .text%__1cMorI_eRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cScompI_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVAdaptivePaddedAverageGsample6Mf_v_;
-text: .text%__1cNPrefetchQdDueueFclear6M_v_: psPromotionManager.o;
text: .text%__1cSPSPromotionManagerFreset6M_v_;
text: .text%__1cSPSPromotionManagerKflush_labs6M_v_;
text: .text%__1cJloadSNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1608,10 +1547,8 @@
text: .text%__1cIAndINodeKadd_opcode6kM_i_: classes.o;
text: .text%__1cIAndINodeKmul_opcode6kM_i_: classes.o;
text: .text%__1cRandI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRshrI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJLoadSNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cLProfileDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_: ciMethodData.o;
-text: .text%__1cRaddI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
text: .text%__1cPRoundDoubleNodeGOpcode6kM_i_;
text: .text%__1cRsarI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
@@ -1619,7 +1556,6 @@
text: .text%__1cLklassVtableQfill_in_mirandas6Mri_v_;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLregFPR1OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNstoreImmBNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKstoreINodeOmemory_operand6kM_pknIMachOper__;
@@ -1640,8 +1576,6 @@
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cNinstanceKlassbBdo_local_static_fields_impl6FnTinstanceKlassHandle_pFpnPfieldDescriptor_pnGThread__v5_v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cLklassVtableQget_num_mirandas6FpnMklassOopDesc_pnPobjArrayOopDesc_4_i_;
text: .text%__1cLklassItableZsetup_itable_offset_table6FnTinstanceKlassHandle__v_;
text: .text%__1cIUniverseTflush_dependents_on6FnTinstanceKlassHandle__v_;
@@ -1649,7 +1583,6 @@
text: .text%__1cPClassFileParserbBparse_constant_pool_entries6MnSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cQSystemDictionaryQadd_to_hierarchy6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cNinstanceKlassWdo_local_static_fields6MpFpnPfieldDescriptor_pnGThread__v4_v_;
-text: .text%__1cPClassFileParserUcompute_oop_map_size6MnTinstanceKlassHandle_ii_i_;
text: .text%__1cPClassFileParserVset_precomputed_flags6MnTinstanceKlassHandle__v_;
text: .text%__1cPClassFileParserTparse_constant_pool6MpnGThread__nSconstantPoolHandle__;
text: .text%__1cPClassFileParserbDcompute_transitive_interfaces6MnTinstanceKlassHandle_nOobjArrayHandle_pnGThread__2_;
@@ -1664,8 +1597,6 @@
text: .text%__1cSThreadProfilerMark2T6M_v_;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cQSystemDictionaryRfind_shared_class6FnMsymbolHandle__pnMklassOopDesc__;
text: .text%__1cQSystemDictionaryRload_shared_class6FnMsymbolHandle_nGHandle_pnGThread__nTinstanceKlassHandle__;
@@ -1704,7 +1635,6 @@
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cJLoadLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cPshrI_eReg_1NodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cYmulI_imm_RShift_highNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cUBytecode_tableswitchOdest_offset_at6kMi_i_;
text: .text%__1cSObjectSynchronizerJnotifyall6FnGHandle_pnGThread__v_;
@@ -1731,9 +1661,6 @@
text: .text%__1cNSafepointBlobbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_: codeBlob.o;
text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
-text: .text%__1cNSharedRuntimebOraw_exception_handler_for_return_address6FpC_1_;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
-text: .text%__1cNaddI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHOrINodeGadd_id6kM_pknEType__: classes.o;
text: .text%signalHandler;
text: .text%JVM_handle_solaris_signal;
@@ -1800,7 +1727,6 @@
text: .text%__1cNdecI_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cICodeHeapLmerge_right6MpnJFreeBlock__v_;
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cNsubI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIPhaseIFGYCompute_Effective_Degree6M_v_;
text: .text%__1cMPhaseChaitinISimplify6M_v_;
text: .text%__1cMPhaseChaitinGSelect6M_I_;
@@ -1809,7 +1735,6 @@
text: .text%__1cLOptoRuntimeJstub_name6FpC_pkc_;
text: .text%__1cSvframeStreamCommonZsecurity_get_caller_frame6Mi_v_;
text: .text%__1cENodeHrm_prec6MI_v_;
-text: .text%__1cUjni_invoke_nonstatic6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cWflagsReg_long_EQdDNEOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKciTypeFlowPflow_exceptions6MpnNGrowableArray4Cpn0AFBlock___pnNGrowableArray4CpnPciInstanceKlass___pn0ALStateVector__v_;
text: .text%__1cXmembar_release_lockNodeIadr_type6kM_pknHTypePtr__;
@@ -1820,7 +1745,6 @@
text: .text%__1cZPhaseConservativeCoalesceGverify6M_v_;
text: .text%__1cHTypePtrFxmeet6kMpknEType__3_;
text: .text%__1cSsafePoint_pollNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
text: .text%__1cNSignatureInfoHdo_long6M_v_: bytecode.o;
text: .text%__1cXvirtual_call_RelocationJfirst_oop6M_pC_;
@@ -1844,7 +1768,6 @@
text: .text%__1cSThreadLocalStorageTpd_getTlsAccessMode6F_n0AQpd_tlsAccessMode__;
text: .text%__1cOMacroAssemblerKget_thread6MpnMRegisterImpl__v_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIGraphKitNshared_unlock6MpnENode_2_v_;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
@@ -1877,7 +1800,6 @@
text: .text%__1cMeBCXRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cRsubI_eReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cIJumpDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
-text: .text%__1cMalloc_object6FpnH_jclass_pnGThread__pnPinstanceOopDesc__: jni.o;
text: .text%__1cHOrINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cKTypeRawPtrEmake6FnHTypePtrDPTR__pk0_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
@@ -1900,7 +1822,6 @@
text: .text%__1cMorI_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%jni_NewObject: jni.o;
text: .text%__1cMTailCallNodeKmatch_edge6kMI_I_;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cKStoreFNodeGOpcode6kM_i_;
text: .text%__1cFStateO_sub_Op_StoreC6MpknENode__v_;
text: .text%__1cFciEnvKcompile_id6M_I_;
@@ -1939,7 +1860,6 @@
text: .text%__1cXcmpL_reg_flags_LTGENodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJloadBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cMLinkResolverOresolve_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
-text: .text%__1cNincI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNandL_eRegNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cSciExceptionHandlerLcatch_klass6M_pnPciInstanceKlass__;
@@ -1958,8 +1878,6 @@
text: .text%__1cKPSYoungGenRcapacity_in_bytes6kM_I_;
text: .text%__1cMVirtualSpaceNreserved_size6kM_I_;
text: .text%__1cHNTarjanIsetdepth6MIpI_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
text: .text%__1cHNTarjanDDFS6Fp0rnJVectorSet_pnOPhaseIdealLoop_pI_i_;
text: .text%__1cOPhaseIdealLoopRinit_dom_lca_tags6M_v_;
@@ -1994,7 +1912,6 @@
text: .text%__1cLRuntimeStubbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_: codeBlob.o;
text: .text%__1cNDispatchTableJset_entry6MirnKEntryPoint__v_;
text: .text%__1cNmethodOopDescVclear_native_function6M_v_;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cJLoadBNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cSSetupItableClosureEdoit6MpnMklassOopDesc_i_v_: klassVtable.o;
text: .text%__1cLeAXRegIOperKin_RegMask6kMi_pknHRegMask__;
@@ -2010,7 +1927,6 @@
text: .text%__1cOPhaseIdealLoopLdo_split_if6MpnENode__v_;
text: .text%__1cRsubI_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNaddI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
text: .text%__1cMURShiftLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%jni_GetObjectArrayElement: jni.o;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
@@ -2023,7 +1939,6 @@
text: .text%__1cKManagementHoops_do6FpnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollectorXoops_do_for_all_threads6FpnKOopClosure__v_;
text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cKJNIHandlesMweak_oops_do6FpnRBoolObjectClosure_pnKOopClosure__v_;
@@ -2040,7 +1955,6 @@
text: .text%jio_vsnprintf;
text: .text%__1cLRethrowNodeEhash6kM_I_: classes.o;
text: .text%__1cWCallLeafNoFPDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRsalI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRsalI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJAssemblerDjmp6MnHAddress__v_;
text: .text%jio_snprintf;
@@ -2057,8 +1971,6 @@
text: .text%__1cbAPSGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
text: .text%__1cUParallelScavengeHeapbFaccumulate_statistics_all_tlabs6M_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
text: .text%__1cQSystemDictionaryHoops_do6FpnKOopClosure__v_;
@@ -2094,7 +2006,6 @@
text: .text%__1cSObjectSynchronizerVdeflate_idle_monitors6F_v_;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cMCounterDecayFdecay6F_v_;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cRInlineCacheBufferUupdate_inline_caches6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
text: .text%__1cORuntimeServiceUrecord_safepoint_end6F_v_;
@@ -2241,7 +2152,6 @@
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cHRetNodeFreloc6kM_i_;
text: .text%__1cIConFNodeGOpcode6kM_i_;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cJCodeCacheNalive_nmethod6FpnICodeBlob__pnHnmethod__;
text: .text%__1cQLibraryIntrinsicIgenerate6MpnIJVMState__2_;
text: .text%__1cOcompP_eRegNodeLout_RegMask6kM_rknHRegMask__;
@@ -2249,9 +2159,7 @@
text: .text%__1cKCompiledICSset_ic_destination6MpC_v_;
text: .text%__1cLConvL2INodeJideal_reg6kM_I_: classes.o;
text: .text%__1cZInterpreterMacroAssemblerNdispatch_next6MnITosState_i_v_;
-text: .text%__1cPshlI_eReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSmembar_releaseNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cNdecI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNandL_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNdecI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJLoadDNodeGOpcode6kM_i_;
@@ -2267,13 +2175,9 @@
text: .text%__1cRxorI_eReg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateR_sub_Op_SafePoint6MpknENode__v_;
text: .text%__1cMciMethodDataStrap_recompiled_at6MpnLProfileData__i_;
-text: .text%__1cSsafePoint_pollNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSsafePoint_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSsafePoint_pollNodeFreloc6kM_i_;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cNandI_eRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRandI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cHi2sNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHi2sNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateL_sub_Op_OrI6MpknENode__v_;
text: .text%JVM_GetClassNameUTF;
@@ -2311,14 +2215,12 @@
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIMaxINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFStateQ_sub_Op_FastLock6MpknENode__v_;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cEUTF8Ounicode_length6Fpkc_i_;
text: .text%__1cPCallRuntimeNodeGOpcode6kM_i_;
text: .text%__1cFParseFBlockMadd_new_path6M_i_;
text: .text%JVM_FindClassFromClass;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc_ii_v_: nativeLookup.o;
text: .text%__1cIMulINodeGmul_id6kM_pknEType__: classes.o;
text: .text%__1cPshlI_eReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cbDjava_lang_reflect_ConstructorFclazz6FpnHoopDesc__2_;
@@ -2327,8 +2229,6 @@
text: .text%__1cbDjava_lang_reflect_ConstructorEslot6FpnHoopDesc__i_;
text: .text%__1cLConvI2LNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cKReflectionSinvoke_constructor6FpnHoopDesc_nOobjArrayHandle_pnGThread__2_;
-text: .text%__1cMorI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cOmangle_name_on6FpnMoutputStream_pnNsymbolOopDesc__v_: nativeLookup.o;
text: .text%__1cMtlsLoadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cYmulI_imm_RShift_highNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFParseFBlockNstack_type_at6kMi_pknEType__;
@@ -2361,12 +2261,10 @@
text: .text%__1cJAssemblerEmovl6MpnMRegisterImpl_i_v_;
text: .text%__1cXmembar_acquire_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMMergeMemNodeIadr_type6kM_pknHTypePtr__: memnode.o;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
text: .text%__1cIModINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQjava_lang_StringTcreate_oop_from_str6FpkcpnGThread__pnHoopDesc__;
text: .text%__1cKoopFactoryNnew_charArray6FpkcpnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cScompP_mem_eRegNodeFreloc6kM_i_;
-text: .text%__1cMadjust_check6FpnENode_11iipnMPhaseIterGVN__v_: ifnode.o;
text: .text%__1cNtestU_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateP_sub_Op_ConvI2L6MpknENode__v_;
text: .text%__1cJScopeDescGsender6kM_p0_;
@@ -2443,7 +2341,6 @@
text: .text%__1cFStateM_sub_Op_AddL6MpknENode__v_;
text: .text%__1cJAssemblerEsubl6MpnMRegisterImpl_i_v_;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cENodeEgetd6kM_d_;
text: .text%__1cFStateM_sub_Op_AndL6MpknENode__v_;
text: .text%__1cKConv2BNodeGOpcode6kM_i_;
@@ -2483,16 +2380,13 @@
text: .text%__1cLConvI2FNodeGOpcode6kM_i_;
text: .text%__1cQComputeCallStackIdo_short6M_v_: generateOopMap.o;
text: .text%__1cICodeHeapMinsert_after6MpnJFreeBlock_2_v_;
-text: .text%__1cHnmFlagsFclear6M_v_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cHnmethod2n6FIi_pv_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cQorI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHCompileUremove_useless_nodes6MrnQUnique_Node_List__v_;
text: .text%__1cIciMethodRbuild_method_data6MnMmethodHandle__v_;
@@ -2511,7 +2405,6 @@
text: .text%__1cIPhaseCCPMdo_transform6M_v_;
text: .text%__1cHCompileNreturn_values6MpnIJVMState__v_;
text: .text%__1cKInlineTreeWbuild_inline_tree_root6F_p0_;
-text: .text%__1cbAfinal_graph_reshaping_walk6FrnKNode_Stack_pnENode_rnUFinal_Reshape_Counts__v_: compile.o;
text: .text%__1cIPhaseCCPJtransform6MpnENode__2_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
text: .text%__1cMPhaseIterGVN2t6Mp0_v_;
@@ -2535,7 +2428,6 @@
text: .text%__1cXSignatureHandlerLibraryDadd6FnMmethodHandle__v_;
text: .text%__1cIAddFNodeGOpcode6kM_i_;
text: .text%__1cJAssemblerFffree6Mi_v_;
-text: .text%__1cKExceptionsG_throw6FpnGThread_pkcinGHandle__v_;
text: .text%__1cQjava_lang_StringPcreate_from_str6FpkcpnGThread__nGHandle__;
text: .text%__1cOGenerateOopMapIppop_any6Mi_v_;
text: .text%__1cXroundDouble_mem_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -2551,7 +2443,6 @@
text: .text%__1cKJavaThreadZsecurity_get_caller_class6Mi_pnMklassOopDesc__;
text: .text%jni_GetStringUTFChars: jni.o;
text: .text%jni_ReleaseStringUTFChars;
-text: .text%__1cNloadConI0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSInterpreterRuntimeXthrow_pending_exception6FpnKJavaThread__v_;
text: .text%__1cXcmpL_reg_flags_LEGTNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOClearArrayNodeIIdentity6MpnOPhaseTransform__pnENode__;
@@ -2572,18 +2463,14 @@
text: .text%__1cQsalI_eReg_CLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSshrL_eReg_1_31NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJleaP8NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cXcmpL_reg_flags_LTGENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cNcmpL_LTGENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFParsePmerge_exception6Mi_v_;
text: .text%__1cFStateS_sub_Op_ClearArray6MpknENode__v_;
text: .text%__1cMrep_stosNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMrep_stosNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOcompI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFTypeFEmake6Ff_pk0_;
text: .text%__1cKstoreLNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSInterpreterRuntimeOmultianewarray6FpnKJavaThread_pi_v_;
text: .text%__1cIDivINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLStrCompNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cXJNI_ArgumentPusherVaArgHget_int6M_v_: jni.o;
text: .text%__1cNtestP_regNodeIpipeline6kM_pknIPipeline__;
@@ -2602,11 +2489,8 @@
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreLNodeFreloc6kM_i_;
-text: .text%__1cGThreadLnmethods_do6M_v_;
text: .text%__1cPRoundDoubleNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cCosTnative_java_library6F_pv_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
text: .text%__1cIModLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cScompP_eReg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
@@ -2615,13 +2499,11 @@
text: .text%__1cCosYprint_jni_name_suffix_on6FpnMoutputStream_i_v_;
text: .text%__1cCosYprint_jni_name_prefix_on6FpnMoutputStream_i_v_;
text: .text%__1cJJavaCallsMcall_special6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_53pnGThread__v_;
-text: .text%__1cVlookup_special_native6Fpc_pC_: nativeLookup.o;
text: .text%__1cPciObjArrayKlassGloader6M_pnHoopDesc__: ciObjArrayKlass.o;
text: .text%__1cPDictionaryEntryVadd_protection_domain6MpnHoopDesc__v_;
text: .text%__1cRxorI_eReg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
-text: .text%__1cPshrI_eReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKarrayKlassbBcomplete_create_array_klass6FnQarrayKlassHandle_nLKlassHandle_pnGThread__v_;
text: .text%__1cKarrayKlassXbase_create_array_klass6FrknKKlass_vtbl_inLKlassHandle_pnGThread__nQarrayKlassHandle__;
text: .text%__1cIPerfLong2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability__v_;
@@ -2642,7 +2524,6 @@
text: .text%__1cRsubI_eReg_memNodeFreloc6kM_i_;
text: .text%__1cKstoreBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_: classes.o;
-text: .text%__1cKJavaThreadLnmethods_do6M_v_;
text: .text%__1cXvirtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNcmovI_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cZCallDynamicJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2651,17 +2532,14 @@
text: .text%__1cNstoreImmINodeFreloc6kM_i_;
text: .text%__1cNobjArrayKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
text: .text%__1cRsarI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cRsarI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cWCallLeafNoFPDirectNodeFreloc6kM_i_;
text: .text%__1cNobjArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: objArrayKlass.o;
text: .text%jni_GetStringCritical: jni.o;
text: .text%jni_ReleaseStringCritical: jni.o;
text: .text%__1cPciObjArrayKlass2t6MnLKlassHandle__v_;
-text: .text%__1cPsarI_eReg_1NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPsarI_eReg_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPconvF2D_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPPerfDataManagerMcounter_name6Fpkc2_pc_;
-text: .text%__1cRaddL_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHCompileSrethrow_exceptions6MpnIJVMState__v_;
text: .text%__1cLRethrowNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cURethrowExceptionNodeLout_RegMask6kM_rknHRegMask__;
@@ -2682,9 +2560,7 @@
text: .text%__1cKJavaThreadLgc_epilogue6M_v_;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
text: .text%__1cFParseSjump_switch_ranges6MpnENode_pnLSwitchRange_4i_v_;
-text: .text%__1cNxorI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_NewByteArray: jni.o;
-text: .text%__1cNmulL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMstoreSSINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKReflectionTget_parameter_types6FnMmethodHandle_ippnHoopDesc_pnGThread__nOobjArrayHandle__;
text: .text%__1cNmethodOopDescbGresolved_checked_exceptions_impl6Fp0pnGThread__nOobjArrayHandle__;
@@ -2698,13 +2574,11 @@
text: .text%__1cOcmpD_cc_P6NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRandI_eReg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
-text: .text%__1cNandL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFBlockNset_next_call6MpnENode_rnJVectorSet_rnLBlock_Array__v_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorEmove6Mii_v_;
text: .text%__1cENode2t6Mp0111111_v_;
text: .text%__1cFStateP_sub_Op_RShiftL6MpknENode__v_;
-text: .text%__1cMloadConLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIAddDNodeGOpcode6kM_i_;
text: .text%__1cNmodL_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
@@ -2729,8 +2603,6 @@
text: .text%jni_GetFieldID: jni.o;
text: .text%jni_IsAssignableFrom: jni.o;
text: .text%__1cNnegI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNnegI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cFParseWcheck_interpreter_type6MpnENode_pknEType_rpnNSafePointNode__2_;
text: .text%__1cJAssemblerEaddl6MnHAddress_i_v_;
text: .text%__1cTsarL_eReg_32_63NodeLout_RegMask6kM_rknHRegMask__;
@@ -2745,9 +2617,7 @@
text: .text%__1cSloadL_volatileNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cNtestU_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSloadL_volatileNodeFreloc6kM_i_;
-text: .text%__1cTcompareAndSwapLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubLNodeGadd_id6kM_pknEType__: classes.o;
-text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
text: .text%__1cOPhaseIdealLoopUpeeled_dom_test_elim6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cJAssemblerDhlt6M_v_;
text: .text%__1cYcmpL_zero_flags_LEGTNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2761,11 +2631,8 @@
text: .text%__1cTconvD2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateT_sub_Op_ThreadLocal6MpknENode__v_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pF_vc_v_;
-text: .text%__1cMtlsLoadPNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIciObject2t6MpnHciKlass__v_;
text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorDbox6Mii_v_;
-text: .text%__1cKsplit_once6FpnMPhaseIterGVN_pnENode_333_v_: cfgnode.o;
-text: .text%__1cYmulI_imm_RShift_highNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPRoundDoubleNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cKloadUBNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMURShiftLNodeJideal_reg6kM_I_: classes.o;
@@ -2775,8 +2642,6 @@
text: .text%__1cGciType2t6MpnHciKlass__v_;
text: .text%__1cHciKlass2t6MpnIciSymbol_p0_v_;
text: .text%__1cIciMethodRinterpreter_entry6M_pC_;
-text: .text%__1cXjvm_define_class_common6FpnHJNIEnv__pkcpnI_jobject_pkWi53pnGThread__pnH_jclass__: jvm.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cUciInstanceKlassKlassEmake6F_p0_;
text: .text%__1cLLShiftLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cIciSymbolHbyte_at6Mi_i_;
@@ -2785,12 +2650,10 @@
text: .text%__1cIModINodeJideal_reg6kM_I_: classes.o;
text: .text%__1cSTailCalljmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cXMachCallDynamicJavaNodePret_addr_offset6M_i_;
-text: .text%__1cNcmpL_EQdDNENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOGenerateOopMapOdo_monitorexit6Mi_v_;
text: .text%__1cOGenerateOopMapLmonitor_pop6M_nNCellTypeState__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cOmulIS_eRegNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSalign_to_page_size6FI_I_: heap.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcinMsymbolHandle_4nGHandle_6_v_;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
@@ -2810,7 +2673,6 @@
text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_: icBuffer.o;
text: .text%__1cPICStubInterfaceKinitialize6MpnEStub_i_v_: icBuffer.o;
text: .text%__1cSleaP_eReg_immINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNcmpL_LEGTNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateQ_sub_Op_URShiftL6MpknENode__v_;
text: .text%__1cIModLNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_i_v_;
@@ -2844,10 +2706,8 @@
text: .text%__1cNsubL_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cODeoptimizationVtrap_state_has_reason6Fii_i_;
-text: .text%__1cNaddL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadBNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRmulI_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cS__ieee754_rem_pio26Fdpd_i_: sharedRuntimeTrig.o;
text: .text%__1cSThreadLocalStorageNpd_set_thread6FpnGThread__v_;
text: .text%__1cSThreadLocalStorageKset_thread6FpnGThread__v_;
text: .text%__1cSThreadLocalStoragebBget_thread_via_cache_slowly6FIi_pnGThread__;
@@ -2870,7 +2730,6 @@
text: .text%__1cIDivDNodeGOpcode6kM_i_;
text: .text%__1cHCompileQgrow_alias_types6M_v_;
text: .text%JVM_GetClassCPTypes;
-text: .text%__1cUverify_byte_codes_fn6F_pv_: verifier.o;
text: .text%JVM_GetClassMethodsCount;
text: .text%JVM_GetClassCPEntriesCount;
text: .text%JVM_GetClassFieldsCount;
@@ -2878,7 +2737,6 @@
text: .text%__1cPconvI2F_SSFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQjava_lang_ThreadKset_thread6FpnHoopDesc_pnKJavaThread__v_;
text: .text%__1cMdecI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPconvI2L_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOMacroAssemblerKverify_FPU6Mipkc_v_;
text: .text%__1cJLoadFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cMloadConDNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2920,7 +2778,6 @@
text: .text%__1cMloadConFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateM_sub_Op_MinI6MpknENode__v_;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_;
-text: .text%__1cNminI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFMutex2T6M_v_;
text: .text%lwp_mutex_destroy: os_solaris.o;
text: .text%__1cHMonitor2T6M_v_;
@@ -2942,7 +2799,6 @@
text: .text%__1cJCodeCacheFfirst6F_pnICodeBlob__;
text: .text%__1cNaddP_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cICodeHeapLfirst_block6kM_pnJHeapBlock__;
-text: .text%__1cXcmpL_reg_flags_LEGTNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPciObjectFactoryPinsert_non_perm6Mrpn0ANNonPermObject_pnHoopDesc_pnIciObject__v_;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cISubDNodeGOpcode6kM_i_;
@@ -2951,7 +2807,6 @@
text: .text%__1cOcmpD_cc_P6NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLConvD2FNodeGOpcode6kM_i_;
text: .text%__1cTmembar_volatileNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSshrL_eReg_1_31NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_MonitorNotify;
text: .text%__1cFParseNdo_instanceof6M_v_;
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl_i_v_;
@@ -2967,7 +2822,6 @@
text: .text%__1cZCallDynamicJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulFNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFStateN_sub_Op_LoadF6MpknENode__v_;
-text: .text%__1cNandI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cWPredictedCallGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cYjava_lang_reflect_MethodGcreate6FpnGThread__nGHandle__;
text: .text%__1cYjava_lang_reflect_MethodJset_clazz6FpnHoopDesc_2_v_;
@@ -2985,7 +2839,6 @@
text: .text%__1cNCallGeneratorRfor_uncommon_trap6FpnIciMethod_nODeoptimizationLDeoptReason_n0CLDeoptAction__p0_;
text: .text%__1cNmodI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cFStateP_sub_Op_LShiftL6MpknENode__v_;
-text: .text%__1cNmodI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvI2DNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cIGraphKitJpush_pair6MpnENode__v_: callGenerator.o;
text: .text%__1cZUncommonTrapCallGeneratorIgenerate6MpnIJVMState__2_;
@@ -2995,9 +2848,7 @@
text: .text%__1cJloadFNodeFreloc6kM_i_;
text: .text%__1cMincI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cVCallRuntimeDirectNodeKmethod_set6Mi_v_;
-text: .text%__1cRaddI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOGenerateOopMapKinit_state6M_v_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cOGenerateOopMapTmark_reachable_code6M_v_;
text: .text%__1cOGenerateOopMapPinitialize_vars6M_v_;
text: .text%__1cNinstanceKlassSregister_finalizer6FpnPinstanceOopDesc_pnGThread__2_;
@@ -3013,7 +2864,6 @@
text: .text%__1cQjava_lang_SystemSin_offset_in_bytes6F_i_;
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cQjava_lang_SystemTout_offset_in_bytes6F_i_;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cNmulI_eRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
@@ -3032,7 +2882,6 @@
text: .text%__1cIMulDNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cOmulF24_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
-text: .text%__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_: jni.o;
text: .text%__1cOjmpLoopEndNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cOjmpLoopEndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOGenerateOopMapMmonitor_push6MnNCellTypeState__v_;
@@ -3054,7 +2903,6 @@
text: .text%__1cNsubI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTcmovII_reg_LEGTNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cJAssemblerFfld_s6MnHAddress__v_;
-text: .text%__1cVscale_to_lwp_priority6Fiii_i_: os_solaris.o;
text: .text%__1cNxorI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJMemRegionMintersection6kMk0_0_;
text: .text%__1cMincI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3098,7 +2946,6 @@
text: .text%__1cKCompiledICKcached_oop6kM_pnHoopDesc__;
text: .text%__1cFStateM_sub_Op_MulI6MpknENode__v_;
text: .text%__1cCosPpd_start_thread6FpnGThread__v_;
-text: .text%__1cNsubL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPRoundDoubleNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cXjava_lang_reflect_FieldIset_slot6FpnHoopDesc_i_v_;
text: .text%__1cKReflectionInew_type6FnMsymbolHandle_nLKlassHandle_pnGThread__nGHandle__;
@@ -3144,9 +2991,7 @@
text: .text%__1cKJavaThreadDrun6M_v_;
text: .text%__1cKJavaThreadRthread_main_inner6M_v_;
text: .text%__1cKReflectionbFbasic_type_mirror_to_basic_type6FpnHoopDesc_pnGThread__nJBasicType__;
-text: .text%__1cM__kernel_cos6Fdd_d_: sharedRuntimeTrig.o;
text: .text%__1cJAssemblerFcmovl6Mn0AJCondition_pnMRegisterImpl_3_v_;
-text: .text%__1cM__kernel_sin6Fddi_d_: sharedRuntimeTrig.o;
text: .text%__1cSleaP_eReg_immINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopJclone_iff6MpnHPhiNode_pnNIdealLoopTree__pnIBoolNode__;
text: .text%__1cGThreadFstart6Fp0_v_;
@@ -3154,7 +2999,6 @@
text: .text%__1cNSharedRuntimeEdcos6Fd_d_;
text: .text%jni_CallStaticVoidMethod: jni.o;
text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
-text: .text%__1cSshlL_eReg_1_31NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNsymbolOopDescWas_klass_external_name6kM_pkc_;
text: .text%__1cNdecI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTconvF2I_reg_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -3165,7 +3009,6 @@
text: .text%__1cHTypePtrFxdual6kM_pknEType__;
text: .text%__1cSMachBreakpointNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQshrI_eReg_CLNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cRmulI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_GetClassName;
text: .text%__1cSsarL_eReg_1_31NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLStringTableGintern6FpkcpnGThread__pnHoopDesc__;
@@ -3184,7 +3027,6 @@
text: .text%JVM_Open;
text: .text%__1cQjava_lang_ThreadIpriority6FpnHoopDesc__nOThreadPriority__;
text: .text%__1cQjava_lang_ThreadJstackSize6FpnHoopDesc__x_;
-text: .text%__1cYcmpL_zero_flags_EQdDNENodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNObjectMonitorJnotifyAll6MpnGThread__v_;
text: .text%__1cNPerfByteArray2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_i_v_;
text: .text%JVM_StartThread;
@@ -3192,9 +3034,7 @@
text: .text%__1cMthread_entry6FpnKJavaThread_pnGThread__v_: jvm.o;
text: .text%__1cOMacroAssemblerKnull_check6MpnMRegisterImpl_i_v_;
text: .text%__1cGICStubLdestination6kM_pC_;
-text: .text%__1cYcmpL_zero_flags_LEGTNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvD2INodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cRxorI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRInlineCacheBufferVic_buffer_entry_point6FpC_1_;
text: .text%__1cKJavaThreadHprepare6MpnI_jobject_nOThreadPriority__v_;
text: .text%jni_GetStaticObjectField: jni.o;
@@ -3250,13 +3090,11 @@
text: .text%__1cQaddD_reg_immNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cTsarL_eReg_32_63NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%jni_CallObjectMethod: jni.o;
-text: .text%__1cNaddP_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNaddP_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLOptoRuntimeMrethrow_Type6F_pknITypeFunc__;
text: .text%__1cMstoreSSPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRandI_eReg_memNodeFreloc6kM_i_;
text: .text%__1cRCardTableModRefBSPclear_MemRegion6MnJMemRegion__v_;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cRInlineCacheBufferLnew_ic_stub6F_pnGICStub__;
text: .text%__1cRInlineCacheBufferWcreate_transition_stub6FpnKCompiledIC_pnHoopDesc_pC_v_;
text: .text%__1cRInlineCacheBufferXassemble_ic_buffer_code6FpCpnHoopDesc_1_v_;
@@ -3276,7 +3114,6 @@
text: .text%JVM_MonitorNotifyAll;
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cKConv2BNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cNmaxI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cSvframeArrayElementDbci6kM_i_;
text: .text%__1cIDivDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cMloadConFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3289,15 +3126,12 @@
text: .text%__1cTcmovII_reg_LTGENodeQuse_cisc_RegMask6M_v_;
text: .text%__1cSPerfStringConstant2t6MnJCounterNS_pkc3_v_;
text: .text%__1cIMulDNodeGmul_id6kM_pknEType__: classes.o;
-text: .text%__1cQorI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
text: .text%__1cOMacroAssemblerFleave6M_v_;
text: .text%JVM_GetInheritedAccessControlContext;
text: .text%JVM_NativePath;
text: .text%__1cQjava_lang_ThreadbGinherited_access_control_context6FpnHoopDesc__2_;
text: .text%__1cVLoaderConstraintTableJnew_entry6MIpnNsymbolOopDesc_pnMklassOopDesc_ii_pnVLoaderConstraintEntry__;
-text: .text%__1cVloadConL_low_onlyNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cQsalI_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateT_sub_Op_CallRuntime6MpknENode__v_;
text: .text%__1cCosXnon_memory_address_word6F_pc_;
text: .text%__1cQsalI_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3307,7 +3141,6 @@
text: .text%__1cVCallRuntimeDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOmulF24_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cRandL_eReg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTshrL_eReg_32_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOaddF24_regNodeQuse_cisc_RegMask6M_v_;
text: .text%__1cNcmovP_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKCompiledICOset_cached_oop6MpnHoopDesc__v_;
@@ -3319,7 +3152,6 @@
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl_i_v_;
text: .text%__1cKstoreFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSaddD_reg_roundNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cMdecI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPciInstanceKlassLjava_mirror6M_pnKciInstance__;
text: .text%__1cISubDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKReflectionTunbox_for_primitive6FpnHoopDesc_pnGjvalue_pnGThread__nJBasicType__;
@@ -3342,13 +3174,11 @@
text: .text%__1cQsalL_eReg_CLNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cNSafePointNodeQpeek_monitor_obj6kM_pnENode__;
text: .text%__1cVcompiledICHolderKlassToop_adjust_pointers6MpnHoopDesc__i_;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cPoldgetTimeNanos6F_x_: os_solaris.o;
text: .text%__1cVcompiledICHolderKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cIDivLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJOperation__v4_v_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
-text: .text%__1cRxorI_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerEsarl6MpnMRegisterImpl_i_v_;
text: .text%__1cIModLNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cFParsePdo_monitor_exit6M_v_;
@@ -3368,7 +3198,6 @@
text: .text%__1cJLoadDNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cXjava_lang_reflect_FieldFclazz6FpnHoopDesc__2_;
text: .text%__1cMsubD_regNodeQuse_cisc_RegMask6M_v_;
-text: .text%__1cOcmpD_cc_P6NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTcmovII_reg_EQdDNENodeQuse_cisc_RegMask6M_v_;
text: .text%__1cFStateM_sub_Op_CmpD6MpknENode__v_;
text: .text%__1cXjava_lang_reflect_FieldJmodifiers6FpnHoopDesc__i_;
@@ -3391,7 +3220,6 @@
text: .text%__1cKstoreINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cXcmpL_reg_flags_LTGENodeIpipeline6kM_pknIPipeline__;
text: .text%__1cSMachBreakpointNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQshrI_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKemit_break6FrnKCodeBuffer__v_;
text: .text%__1cQshrI_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIciMethodVget_osr_flow_analysis6Mi_pnKciTypeFlow__;
@@ -3443,7 +3271,6 @@
text: .text%__1cRsubL_eReg_memNodeFreloc6kM_i_;
text: .text%__1cMTailJumpNodeKmatch_edge6kMI_I_;
text: .text%__1cFStateP_sub_Op_ConvF2D6MpknENode__v_;
-text: .text%__1cNdivL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNinstanceKlassPadd_osr_nmethod6MpnHnmethod__v_;
text: .text%__1cHThreadsbMis_supported_jni_version_including_1_16Fi_C_;
text: .text%__1cFStateM_sub_Op_DivL6MpknENode__v_;
@@ -3458,7 +3285,6 @@
text: .text%__1cLStrCompNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cJAssemblerGfrstor6MnHAddress__v_;
text: .text%JVM_GetCPFieldModifiers;
-text: .text%__1cSUnsafe_DefineClass6FpnHJNIEnv__pnI_jstring_pnL_jbyteArray_iipnI_jobject_7_pnH_jclass__: unsafe.o;
text: .text%__1cJBasicLockHmove_to6MpnHoopDesc_p0_v_;
text: .text%__1cSObjectSynchronizerOinflate_helper6FpnHoopDesc__pnNObjectMonitor__: synchronizer.o;
text: .text%__1cSdivD_reg_roundNodeLout_RegMask6kM_rknHRegMask__;
@@ -3480,15 +3306,10 @@
text: .text%__1cYjava_lang_reflect_MethodPparameter_types6FpnHoopDesc__2_;
text: .text%__1cLPSMarkSweepbAreset_millis_since_last_gc6F_v_;
text: .text%__1cUPSAdaptiveSizePolicyUmajor_collection_end6MInHGCCauseFCause__v_;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cJCodeCacheLgc_epilogue6F_v_;
text: .text%__1cJMarkSweepNrestore_marks6F_v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cYinternal_word_RelocationFvalue6M_pC_: relocInfo.o;
text: .text%__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_533pnGThread__v_;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
-text: .text%__1cMset_property6FnGHandle_pkc2pnGThread__v_: jvm.o;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
text: .text%__1cHJNIEnv_JNewObject6MpnH_jclass_pnK_jmethodID_E_pnI_jobject__: jni.o;
text: .text%__1cLPSMarkSweepPallocate_stacks6F_v_;
@@ -3501,7 +3322,6 @@
text: .text%__1cUPSAdaptiveSizePolicyWmajor_collection_begin6M_v_;
text: .text%__1cJMarkSweepMadjust_marks6F_v_;
text: .text%__1cJMarkSweepXfollow_weak_klass_links6F_v_;
-text: .text%__1cNmodL_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_AllocObject: jni.o;
text: .text%__1cPcmpFastLockNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQSystemDictionaryYalways_strong_classes_do6FpnKOopClosure__v_;
@@ -3512,7 +3332,6 @@
text: .text%JVM_InvokeMethod;
text: .text%__1cQSystemDictionaryValways_strong_oops_do6FpnKOopClosure__v_;
text: .text%__1cFKlassWcompute_modifier_flags6kMpnGThread__i_;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cIPSOldGenKprecompact6M_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
text: .text%__1cHThreadsLgc_prologue6F_v_;
@@ -3522,9 +3341,7 @@
text: .text%__1cQSystemDictionaryPplaceholders_do6FpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_ModL6MpknENode__v_;
text: .text%__1cJPSPermGenKprecompact6M_v_;
-text: .text%__1cHi2bNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTleaPIdxScaleOffNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMincI_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
text: .text%__1cNTemplateTableMlocals_index6FpnMRegisterImpl_i_v_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFn0AJCondition__v4_v_;
@@ -3533,7 +3350,6 @@
text: .text%__1cNcmovI_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cJStubQdDueueMremove_first6Mi_v_;
text: .text%__1cSsarL_eReg_1_31NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNloadConL0NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_NewArray;
text: .text%__1cLConvF2INodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cOcmpF_cc_P6NodeLout_RegMask6kM_rknHRegMask__;
@@ -3545,7 +3361,6 @@
text: .text%__1cZInterpreterMacroAssemblerNunlock_object6MpnMRegisterImpl__v_;
text: .text%__1cSmulF24_reg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cTconvD2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMulFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cFStateP_sub_Op_ConvD2I6MpknENode__v_;
text: .text%__1cLMoveF2INodeGOpcode6kM_i_;
@@ -3575,13 +3390,11 @@
text: .text%__1cLStatSamplerTget_system_property6FpkcpnGThread__2_;
text: .text%__1cPconvL2D_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cXPartialSubtypeCheckNodeLbottom_type6kM_pknEType__: classes.o;
-text: .text%__1cOresolve_symbol6Fpkc_pC_: os_solaris.o;
text: .text%__1cPMultiBranchDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_;
text: .text%JVM_RawMonitorCreate;
text: .text%__1cQConstantIntValue2t6MpnTDebugInfoReadStream__v_;
text: .text%__1cOMacroAssemblerTset_last_Java_frame6MpnMRegisterImpl_22pC_v_;
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubFNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cFStateP_sub_Op_StrComp6MpknENode__v_;
text: .text%__1cFStateP_sub_Op_ConvI2F6MpknENode__v_;
@@ -3599,13 +3412,10 @@
text: .text%__1cLvframeArrayPunpack_to_stack6MrnFframe_i_v_;
text: .text%__1cLvframeArrayZdeallocate_monitor_chunks6M_v_;
text: .text%__1cOstoreF_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNcmovI_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cImulINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQsalL_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_CompareAndSwapInt;
text: .text%__1cZInterpreterMacroAssemblerPset_mdp_data_at6MpnMRegisterImpl_i2_v_;
-text: .text%__1cRsubI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cQsalL_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMsubD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMnegD_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3634,7 +3444,6 @@
text: .text%__1cOMacroAssemblerFenter6M_v_;
text: .text%Unsafe_GetNativeByte;
text: .text%__1cOMacroAssemblerNpop_FPU_state6M_v_;
-text: .text%__1cTsarL_eReg_32_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPconvL2F_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKCMoveLNodeGOpcode6kM_i_;
text: .text%JVM_NanoTime;
@@ -3657,10 +3466,8 @@
text: .text%__1cJAssemblerEmovw6MnHAddress_pnMRegisterImpl__v_;
text: .text%__1cQshrL_eReg_CLNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cFStateM_sub_Op_AddF6MpknENode__v_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%jint_cmp: parse2.o;
text: .text%__1cJAssemblerExorl6MpnMRegisterImpl_i_v_;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%jni_CallVoidMethod: jni.o;
text: .text%__1cOsubF24_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOstoreF_immNodeOmemory_operand6kM_pknIMachOper__;
@@ -3683,7 +3490,6 @@
text: .text%__1cJAssemblerFfwait6M_v_;
text: .text%__1cJAssemblerKrepne_scan6M_v_;
text: .text%__1cNRegisterSaverWrestore_live_registers6FpnOMacroAssembler__v_;
-text: .text%__1cRandL_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNcmovL_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
text: .text%__1cImulINodeOmemory_operand6kM_pknIMachOper__;
@@ -3702,12 +3508,10 @@
text: .text%__1cIAddDNodeIIdentity6MpnOPhaseTransform__pnENode__: classes.o;
text: .text%__1cJAssemblerFtestb6MpnMRegisterImpl_i_v_;
text: .text%__1cNTemplateTableQfast_accessfield6FnITosState__v_;
-text: .text%__1cOmulIS_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_StaticFieldBaseFromField;
text: .text%__1cNTemplateTableZjvmti_post_fast_field_mod6F_v_;
text: .text%__1cNTemplateTablePfast_storefield6FnITosState__v_;
text: .text%Unsafe_StaticFieldOffset;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%Unsafe_GetObjectVolatile;
text: .text%__1cHnmethodFflush6M_v_;
text: .text%__1cHnmethodSflush_dependencies6MpnRBoolObjectClosure__v_;
@@ -3717,7 +3521,6 @@
text: .text%__1cNaddP_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIMachOperNbase_position6kM_i_;
text: .text%__1cZInterpreterMacroAssemblerGf2ieee6M_v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%Unsafe_EnsureClassInitialized;
text: .text%__1cIciSymbolHas_utf86M_pkc_;
text: .text%__1cOtypeArrayKlassNexternal_name6FnJBasicType__pkc_;
@@ -3728,7 +3531,6 @@
text: .text%__1cNdivI_eRegNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJAssemblerHfincstp6M_v_;
text: .text%__1cETypeFxdual6kM_pk0_;
-text: .text%__1cQorI_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOMacroAssemblerEfpop6M_v_;
text: .text%__1cLOptoRuntimeTmultianewarray_Type6Fi_pknITypeFunc__;
text: .text%__1cOGenerateOopMapGdo_jsr6Mi_v_;
@@ -3741,7 +3543,6 @@
text: .text%__1cSmulF24_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cSaddF24_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%JVM_GetClassDeclaredFields;
-text: .text%stat: os_solaris.o;
text: .text%JVM_IsSameClassPackage;
text: .text%__1cCosMuser_handler6F_pv_;
text: .text%__1cQSystemDictionaryPresolve_or_null6FnMsymbolHandle_pnGThread__pnMklassOopDesc__;
@@ -3793,9 +3594,7 @@
text: .text%JVM_IsSupportedJNIVersion;
text: .text%__1cOstoreF_immNodeFreloc6kM_i_;
text: .text%__1cPPerfLongVariant2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_pnUPerfLongSampleHelper__v_;
-text: .text%__1cNmulI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerGfild_d6MnHAddress__v_;
-text: .text%__1cRmulI_imm_highNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_ObjectFieldOffset;
text: .text%__1cRaddL_eReg_memNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJAssemblerEincl6MnHAddress__v_;
@@ -3835,20 +3634,14 @@
text: .text%__1cWImplicitExceptionTable2t6MpknHnmethod__v_;
text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_pnUPerfLongSampleHelper_pnGThread__pnQPerfLongVariable__;
text: .text%__1cKExceptionsK_throw_oop6FpnGThread_pkcipnHoopDesc__v_;
-text: .text%__1cNdivI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLVtableStubsPstub_containing6FpC_pnKVtableStub__;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
text: .text%__1cFStateP_sub_Op_ConvF2I6MpknENode__v_;
-text: .text%__1cODeoptimizationYreset_invocation_counter6FpnJScopeDesc_i_v_;
text: .text%__1cQshrL_eReg_CLNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTconvF2I_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNCellTypeStateImake_any6Fi_0_: generateOopMap.o;
text: .text%__1cJAssemblerEmovb6MnHAddress_i_v_;
text: .text%__1cPPerfDataManagerKname_space6Fpkc2i_pc_;
-text: .text%__1cTshlL_eReg_32_63NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cWImplicitExceptionTableCat6kMI_I_;
-text: .text%__1cQshrL_eReg_CLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cSsarL_eReg_1_31NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerFfinit6M_v_;
text: .text%__1cFParseRjump_if_true_fork6MpnGIfNode_ii_v_;
text: .text%__1cKVtableStubRpd_code_alignment6F_i_;
@@ -3889,7 +3682,6 @@
text: .text%__1cNTemplateTableFfload6Fi_v_;
text: .text%__1cNTemplateTableFlload6Fi_v_;
text: .text%__1cNcmovI_memNodeFreloc6kM_i_;
-text: .text%__1cPaddress_of_flag6FnXCommandLineFlagWithType__pnEFlag__: globals.o;
text: .text%__1cNTemplateTableFiload6Fi_v_;
text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_vi4_v_;
text: .text%__1cNdivI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3951,14 +3743,11 @@
text: .text%__1cJAssemblerEandl6MpnMRegisterImpl_2_v_;
text: .text%__1cNCompileBrokerUmake_compiler_thread6FpkcpnMCompileQdDueue_pnQCompilerCounters_pnGThread__pnOCompilerThread__;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cOcmpF_cc_P6NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJAssemblerEcdql6M_v_;
text: .text%__1cUInterpreterGeneratorbDgenerate_stack_overflow_check6M_v_;
text: .text%__1cRCardTableModRefBSbCfind_covering_region_by_base6MpnIHeapWord__i_;
-text: .text%__1cIci2bNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRCardTableModRefBSbAlargest_prev_committed_end6kMi_pnIHeapWord__;
text: .text%__1cMSysClassPathNreset_item_at6Mi_v_: arguments.o;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cFStateM_sub_Op_CmpF6MpknENode__v_;
text: .text%__1cRCardTableModRefBSVresize_covered_region6MnJMemRegion__v_;
text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_nHAddress__v_;
@@ -3973,7 +3762,6 @@
text: .text%__1cVcompiler_thread_entry6FpnKJavaThread_pnGThread__v_: thread.o;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
text: .text%__1cNSafepointBlob2t6MpnKCodeBuffer_ipnJOopMapSet_i_v_;
-text: .text%__1cJlookupOne6FpnHJNIEnv__pkcpnGThread__pnH_jclass__: jni.o;
text: .text%__1cUPSGenerationCounters2t6MpkciipnOPSVirtualSpace__v_;
text: .text%__1cNSafepointBlob2n6FII_pv_;
text: .text%__1cQmulD_reg_memNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3992,7 +3780,6 @@
text: .text%jni_CallStaticObjectMethodV: jni.o;
text: .text%__1cIci2bNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cZInterpreterMacroAssemblerRgen_subtype_check6MpnMRegisterImpl_rnFLabel__v_;
-text: .text%__1cRaddI_mem_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_Available;
text: .text%__1cCosIjvm_path6Fpci_v_;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MpnMRegisterImpl_2i_v_;
@@ -4032,7 +3819,6 @@
text: .text%__1cFStateM_sub_Op_SubF6MpknENode__v_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
text: .text%__1cMPeriodicTask2t6MI_v_;
-text: .text%__1cSestimate_path_freq6FpnENode__f_: loopnode.o;
text: .text%__1cFStateP_sub_Op_MoveL2D6MpknENode__v_;
text: .text%__1cNincI_eRegNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNTemplateTableHcastore6F_v_;
@@ -4068,17 +3854,13 @@
text: .text%__1cQAgentLibraryList2t6M_v_: arguments.o;
text: .text%__1cJAssemblerEmovb6MpnMRegisterImpl_nHAddress__v_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
-text: .text%__1cPconvL2D_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cPconvD2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNmulI_eRegNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cINegFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cSInterpreterRuntimeMat_safepoint6FpnKJavaThread__v_;
text: .text%__1cOGenerateOopMapTadd_to_ref_init_set6Mi_v_;
text: .text%__1cIPSOldGenOgen_size_limit6M_I_;
text: .text%__1cIPSOldGenGresize6MI_v_;
-text: .text%__1cQorl_eReg_immNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNciMethodKlassEmake6F_p0_;
-text: .text%__1cPconvL2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cUParallelScavengeHeapItop_addr6kM_ppnIHeapWord__: parallelScavengeHeap.o;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cMGCTaskThread2t6MpnNGCTaskManager_II_v_;
@@ -4086,13 +3868,10 @@
text: .text%__1cMGCTaskThreadDrun6M_v_;
text: .text%__1cJLoadFNodeMstore_Opcode6kM_i_: classes.o;
text: .text%__1cUInterpreterGeneratorLlock_method6M_v_;
-text: .text%__1cXpartialSubtypeCheckNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubFNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cISubFNodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cIPSOldGenPinitialize_work6Mpkci_v_;
-text: .text%lstat: perfMemory_solaris.o;
text: .text%__1cRComputeEntryStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cPfilename_to_pid6Fpkc_l_: perfMemory_solaris.o;
text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cJCodeCachebGmake_marked_nmethods_not_entrant6F_v_;
text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpCpnMRegisterImpl__v_;
@@ -4198,7 +3977,6 @@
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
text: .text%__1cTtypeArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
text: .text%__1cKVM_VersionWget_processor_features6F_v_;
text: .text%__1cKVM_VersionKinitialize6F_v_;
@@ -4239,9 +4017,7 @@
text: .text%__1cWreset_vm_info_property6FpnGThread__v_: thread.o;
text: .text%JVM_RegisterUnsafeMethods;
text: .text%__1cQvtableStubs_init6F_v_;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cTtypeArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: typeArrayKlassKlass.o;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cIUniversePcheck_alignment6FIIpkc_v_;
text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cFJNIidKdeallocate6Fp0_v_;
@@ -4292,7 +4068,6 @@
text: .text%__1cWResolveOopMapConflictsUdo_potential_rewrite6MpnGThread__nMmethodHandle__;
text: .text%__1cJGenRemSetYmax_alignment_constraint6Fn0AEName__I_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
text: .text%__1cKNoopGCTaskQcreate_on_c_heap6F_p0_;
text: .text%__1cNGCTaskManagerKthreads_do6MpnNThreadClosure__v_;
text: .text%__1cNGCTaskManagerKinitialize6M_v_;
@@ -4398,9 +4173,6 @@
text: .text%__1cHi2bNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreBNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOtailjmpIndNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cRaddL_eReg_memNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cLconvP2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
-text: .text%__1cIcp2bNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTconvI2F_SSF_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQmulD_reg_memNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOtailjmpIndNodeFreloc6kM_i_;
@@ -4410,7 +4182,6 @@
text: .text%__1cPconvI2L_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJArgumentsbBset_cms_and_parnew_gc_flags6F_v_;
text: .text%__1cJArgumentsTset_parnew_gc_flags6F_v_;
-text: .text%__1cQno_shared_spaces6F_v_: arguments.o;
text: .text%__1cJArgumentsMget_property6Fpkc_2_;
text: .text%__1cMSysClassPathQadd_jars_to_path6Fpcpkc_1_;
text: .text%__1cMSysClassPathPexpand_endorsed6M_v_;
@@ -4446,13 +4217,11 @@
text: .text%__1cQconstMethodKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cTcompilerOracle_init6F_v_;
text: .text%__1cOCompilerOraclePparse_from_file6F_v_;
-text: .text%__1cHcc_file6F_pkc_: compilerOracle.o;
text: .text%__1cVcompiledICHolderKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: compiledICHolderKlass.o;
text: .text%__1cVcompiledICHolderKlassOset_alloc_size6MI_v_: compiledICHolderKlass.o;
text: .text%__1cVcompiledICHolderKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cSDeoptimizationBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_iiii_p0_;
text: .text%__1cRCardTableModRefBSbBct_max_alignment_constraint6F_I_;
text: .text%__1cRCardTableModRefBS2t6MnJMemRegion_i_v_;
@@ -4508,20 +4277,13 @@
text: .text%__1cLStatSamplerGengage6F_v_;
text: .text%__1cLStatSamplerKinitialize6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
-text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
-text: .text%__1cTPSAlwaysTrueClosure2t6M_v_: psMarkSweep.o;
text: .text%__1cLPSMarkSweepKinitialize6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCounters2t6MpkciipnUPSAdaptiveSizePolicy__v_;
text: .text%__1cQPlaceholderTable2t6Mi_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: phase.o;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
text: .text%__1cKPerfMemoryUcreate_memory_region6FI_v_;
-text: .text%__1cUdelete_shared_memory6FpcI_v_: perfMemory_solaris.o;
-text: .text%__1cUcreate_shared_memory6FI_pc_: perfMemory_solaris.o;
-text: .text%__1cSmmap_create_shared6FI_pc_: perfMemory_solaris.o;
-text: .text%__1cbAcreate_sharedmem_resources6Fpkc1I_i_: perfMemory_solaris.o;
-text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cIPSOldGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cSReferenceProcessorMinit_statics6F_v_;
text: .text%__1cXreferenceProcessor_init6F_v_;
@@ -4602,7 +4364,6 @@
text: .text%__1cQSystemDictionarybCinitialize_preloaded_classes6FpnGThread__v_;
text: .text%__1cQSystemDictionaryKinitialize6FpnGThread__v_;
text: .text%__1cQSystemDictionaryKclasses_do6FpFpnMklassOopDesc__v_v_;
-text: .text%__1cLremove_file6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cNMemoryServicebFadd_parallel_scavenge_heap_info6FpnUParallelScavengeHeap__v_;
text: .text%__1cNMemoryServiceRset_universe_heap6FpnNCollectedHeap__v_;
text: .text%__1cNMemoryManagerbEget_psMarkSweep_memory_manager6F_pnPGCMemoryManager__;
@@ -4610,11 +4371,6 @@
text: .text%__1cNMemoryManagerbDget_code_cache_memory_manager6F_p0_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: matcher.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: markSweep.o;
-text: .text%__1cJMarkSweepSMarkAndPushClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepRFollowRootClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepSFollowStackClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepOIsAliveClosure2t6M_v_: markSweep.o;
-text: .text%__1cJMarkSweepQKeepAliveClosure2t6M_v_: markSweep.o;
text: .text%__1cOmarksweep_init6F_v_;
text: .text%__1cNMemoryServiceXadd_psYoung_memory_pool6FpnKPSYoungGen_pnNMemoryManager_4_v_;
text: .text%__1cKmutex_init6F_v_;
@@ -4666,9 +4422,6 @@
text: .text%__1cCosHSolarisUsynchronization_init6F_v_;
text: .text%__1cCosHSolarisOlibthread_init6F_v_;
text: .text%__1cUParallelScavengeHeapYpermanent_object_iterate6MpnNObjectClosure__v_;
-text: .text%__1cWget_sharedmem_filename6Fpkci_pc_: perfMemory_solaris.o;
-text: .text%__1cNget_user_name6Fl_pc_: perfMemory_solaris.o;
-text: .text%__1cQget_user_tmp_dir6Fpkc_pc_: perfMemory_solaris.o;
text: .text%__1cKPerfMemoryHdestroy6F_v_;
text: .text%__1cKPerfMemoryKinitialize6F_v_;
text: .text%__1cPperfMemory_exit6F_v_;
@@ -4689,7 +4442,6 @@
text: .text%__1cCosLsignal_init6F_v_;
text: .text%__1cTsignal_thread_entry6FpnKJavaThread_pnGThread__v_: os.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
-text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
text: .text%__1cSobjArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: objArrayKlassKlass.o;
text: .text%__1cSobjArrayKlassKlassbEallocate_system_objArray_klass6MpnGThread__pnMklassOopDesc__;
text: .text%__1cSobjArrayKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
@@ -4703,7 +4455,6 @@
text: .text%__1cCosSget_temp_directory6F_pkc_;
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
text: .text%__1cCosHSolarisQsignal_sets_init6F_v_;
-text: .text%__1cQcreate_os_thread6FpnGThread_I_pnIOSThread__: os_solaris.o;
text: .text%__1cCosbDinit_system_properties_values6F_v_;
text: .text%__1cCosHSolarisWinitialize_system_info6F_v_;
text: .text%__1cCosPphysical_memory6F_X_;
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_sparc Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_sparc Tue Nov 02 22:15:35 2010 -0700
@@ -4,7 +4,6 @@
text: .text%__1cCosOjavaTimeMillis6F_x_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNinstanceKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNinstanceKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cOtypeArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
@@ -33,7 +32,6 @@
text: .text%__1cQIndexSetIteratorEnext6M_I_: chaitin.o;
text: .text%__1cENodeIout_grow6MI_v_;
text: .text%__1cOloadConI13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -45,7 +43,6 @@
text: .text%__1cKbranchNodeNis_block_proj6kM_pknENode__: ad_sparc_misc.o;
text: .text%__1cIProjNodeGOpcode6kM_i_;
text: .text%__1cETypeIhashcons6M_pk0_;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cWNode_Backward_IteratorEnext6M_pnENode__;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
@@ -154,7 +151,6 @@
text: .text%__1cILRG_ListGextend6MII_v_;
text: .text%__1cJVectorSet2F6kMI_i_;
text: .text%__1cENodeQIdeal_DU_postCCP6MpnIPhaseCCP__p0_;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIProjNodeEhash6kM_I_;
text: .text%__1cIAddINodeGOpcode6kM_i_;
text: .text%__1cIIndexSet2t6Mp0_v_;
@@ -168,7 +164,6 @@
text: .text%__1cKNode_ArrayGremove6MI_v_;
text: .text%__1cHPhiNodeEhash6kM_I_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cKmethodOperJnum_edges6kM_I_: ad_sparc.o;
text: .text%__1cJStartNodeLbottom_type6kM_pknEType__;
text: .text%__1cHTypeIntFxmeet6kMpknEType__3_;
@@ -502,7 +497,6 @@
text: .text%__1cENodeKreplace_by6Mp0_v_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cMMergeMemNodePiteration_setup6Mpk0_v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cKDictionaryEfind6MiInMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cRMachSpillCopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
@@ -605,7 +599,6 @@
text: .text%__1cMCallLeafNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHPhiNodeEmake6FpnENode_2pknEType_pknHTypePtr__p0_;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cOcompU_iRegNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJiRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNflagsRegPOperKin_RegMask6kMi_pknHRegMask__;
@@ -640,7 +633,6 @@
text: .text%__1cQregF_to_stkINodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cENodeDcmp6kMrk0_I_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cMmerge_region6FpnKRegionNode_pnIPhaseGVN__pnENode__: cfgnode.o;
text: .text%__1cJAssemblerOpatched_branch6Fiii_i_;
text: .text%__1cJAssemblerSbranch_destination6Fii_i_;
@@ -738,10 +730,7 @@
text: .text%__1cIBoolNodeJideal_reg6kM_I_: subnode.o;
text: .text%__1cHCmpNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cRloadConP_pollNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cETypeFwiden6kMpk0_2_: type.o;
text: .text%__1cLstoreI0NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cMloadConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cKDictionaryKfind_class6MiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
@@ -755,7 +744,6 @@
text: .text%__1cSInterpreterRuntimePresolve_get_put6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cQsubI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cXmembar_acquire_lockNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cQaddP_reg_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cIAndLNodeGOpcode6kM_i_;
@@ -826,7 +814,6 @@
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cQsubI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cQaddP_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKmethodOperGmethod6kM_i_: ad_sparc.o;
text: .text%__1cFKlassIsubklass6kM_p0_;
@@ -946,7 +933,6 @@
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cMPhaseChaitinLclone_projs6MpnFBlock_IpnENode_4rI_i_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cIJVMState2t6MpnIciMethod_p0_v_;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
@@ -954,7 +940,6 @@
text: .text%__1cSsafePoint_pollNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cINodeHashJhash_find6MpknENode__p1_;
text: .text%__1cQmulL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cSaddP_reg_imm13NodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cOMethodLivenessKBasicBlock2t6Mp0ii_v_;
text: .text%__1cOMethodLivenessKBasicBlockQcompute_gen_kill6MpnIciMethod__v_;
text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
@@ -987,7 +972,6 @@
text: .text%__1cNloadConP0NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cHMulNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMPhaseIterGVNJtransform6MpnENode__2_;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadSNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKarrayKlassLobject_size6kMi_i_;
@@ -1019,7 +1003,6 @@
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_: objArrayKlassKlass.o;
text: .text%__1cPcompP_iRegPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJloadPNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cNSignatureInfoGdo_int6M_v_: bytecode.o;
text: .text%__1cOstackSlotLOperKin_RegMask6kMi_pknHRegMask__;
@@ -1038,9 +1021,7 @@
text: .text%__1cGIfNodeHsize_of6kM_I_: classes.o;
text: .text%__1cPconvL2I_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIimmLOperJconstantL6kM_x_: ad_sparc_clone.o;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%jni_GetByteArrayRegion: jni.o;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
text: .text%__1cSHighResTimeSamplerLtake_sample6M_x_: statSampler.o;
text: .text%__1cHCompileFstart6kM_pnJStartNode__;
text: .text%__1cPStatSamplerTaskEtask6M_v_: statSampler.o;
@@ -1082,7 +1063,6 @@
text: .text%__1cURethrowExceptionNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
text: .text%__1cNSignatureInfoHdo_bool6M_v_: bytecode.o;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cSandI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cLTypeInstPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
@@ -1095,7 +1075,6 @@
text: .text%__1cLRethrowNodeGOpcode6kM_i_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cICodeHeapIcapacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cPcmpFastLockNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
@@ -1136,7 +1115,6 @@
text: .text%__1cIJumpDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cObranchConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
text: .text%__1cJcmpOpOperFccode6kM_i_: ad_sparc_clone.o;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
@@ -1200,7 +1178,6 @@
text: .text%__1cLstoreP0NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeKmatch_edge6kMI_I_;
text: .text%__1cFTypeFEhash6kM_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_AddI6MpknENode__v_;
text: .text%__1cOParseGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cFParseQcreate_entry_map6M_pnNSafePointNode__;
@@ -1213,17 +1190,13 @@
text: .text%__1cNCallGeneratorKfor_inline6FpnIciMethod_f_p0_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2t6M_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2T6M_v_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cRciVirtualCallDataOtranslate_from6MpnLProfileData__v_;
text: .text%jni_IsSameObject: jni.o;
text: .text%__1cMloadConINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNbranchConNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cNbranchConNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQandL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cPThreadLocalNodeGOpcode6kM_i_;
text: .text%__1cZPhaseConservativeCoalesceKupdate_ifg6MIIpnIIndexSet_2_v_;
text: .text%__1cZPhaseConservativeCoalesceMunion_helper6MpnENode_2II222pnFBlock_I_v_;
@@ -1244,7 +1217,6 @@
text: .text%__1cQandI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIciMethodbBinterpreter_call_site_count6Mi_i_;
text: .text%__1cGBitMapIset_from6M0_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
text: .text%__1cHSubNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cFChunk2n6FII_pv_;
@@ -1278,7 +1250,6 @@
text: .text%__1cKTypeOopPtrEhash6kM_i_;
text: .text%__1cIMinINodeGOpcode6kM_i_;
text: .text%__1cMURShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cIMulLNodeLbottom_type6kM_pknEType__: classes.o;
@@ -1325,7 +1296,6 @@
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cUcompI_iReg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOMacroAssemblerNverify_thread6M_v_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
text: .text%__1cSbranchCon_longNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
@@ -1356,12 +1326,9 @@
text: .text%__1cbDcatch_cleanup_find_cloned_def6FpnFBlock_pnENode_1rnLBlock_Array_i_3_: lcm.o;
text: .text%__1cQxorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cOClearArrayNodeKmatch_edge6kMI_I_;
text: .text%__1cPconvL2I_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cSFixupMirrorClosureJdo_object6MpnHoopDesc__v_: universe.o;
text: .text%__1cFStateP_sub_Op_LShiftI6MpknENode__v_;
text: .text%__1cQandL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -1387,7 +1354,6 @@
text: .text%__1cKstorePNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMaxINodeGOpcode6kM_i_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cIimmDOperJconstantD6kM_d_: ad_sparc_clone.o;
text: .text%__1cIPhaseIFGEinit6MI_v_;
@@ -1512,7 +1478,6 @@
text: .text%__1cKDictionaryJadd_klass6MnMsymbolHandle_nGHandle_nLKlassHandle__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZCallDynamicJavaDirectNodePoper_input_base6kM_I_: ad_sparc_misc.o;
-text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__: graphKit.o;
text: .text%__1cWImplicitExceptionTableGappend6MII_v_;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLProfileDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_: ciMethodData.o;
@@ -1534,14 +1499,12 @@
text: .text%__1cOGenerateOopMapLmerge_state6Fp0ipi_v_;
text: .text%__1cMTypeKlassPtrFxdual6kM_pknEType__;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassWdo_local_static_fields6MpFpnPfieldDescriptor_pnGThread__v4_v_;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
@@ -1561,22 +1524,17 @@
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cHMemNodeHsize_of6kM_I_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cPClassFileParserbKparse_classfile_sourcefile_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cQmodI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRShiftINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKCMoveINodeGOpcode6kM_i_;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cYcompareAndSwapL_boolNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
text: .text%__1cMtlsLoadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateQ_sub_Op_URShiftI6MpknENode__v_;
text: .text%__1cKcmpOpUOperGnegate6M_v_: ad_sparc_clone.o;
@@ -1626,7 +1584,6 @@
text: .text%__1cSaddL_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQshrL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
text: .text%__1cILoopNodeHsize_of6kM_I_: classes.o;
text: .text%__1cHMatcherLfind_shared6MpnENode__v_;
text: .text%__1cJStartNodeHsize_of6kM_I_;
@@ -1643,8 +1600,6 @@
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cMnegF_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cNSharedRuntimebWnative_method_throw_unsatisfied_link_error_entry6F_pC_;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cOMethodLivenessQcompute_liveness6M_v_;
text: .text%__1cOMethodLiveness2t6MpnFArena_pnIciMethod__v_;
text: .text%__1cOMethodLivenessNinit_gen_kill6M_v_;
@@ -1654,7 +1609,6 @@
text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJTimeStampGupdate6M_v_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cMloadConDNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cNloadConP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -1673,7 +1627,6 @@
text: .text%__1cNflagsRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cFParseXcatch_inline_exceptions6MpnNSafePointNode__v_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cKcmpOpUOperNgreater_equal6kM_i_: ad_sparc_clone.o;
text: .text%JVM_GetFieldIxModifiers;
@@ -1698,7 +1651,6 @@
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_: psScavenge.o;
text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
@@ -1736,7 +1688,6 @@
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
text: .text%__1cQshlI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cFParseNthrow_to_exit6MpnNSafePointNode__v_;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cVConstantOopWriteValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cJVectorSetGslamin6Mrk0_v_;
text: .text%JVM_Clone;
@@ -1772,7 +1723,6 @@
text: .text%__1cJNode_ListEyank6MpnENode__v_;
text: .text%__1cMPhaseChaitinISimplify6M_v_;
text: .text%__1cNIdealLoopTreeIset_nest6MI_i_;
-text: .text%__1cSCallLeafDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMulLNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cMStartOSRNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeLout_RegMask6kM_rknHRegMask__;
@@ -1792,7 +1742,6 @@
text: .text%__1cLstoreB0NodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRshrI_reg_imm5NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cMPhaseChaitinVfind_base_for_derived6MppnENode_2rI_2_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
@@ -1824,8 +1773,6 @@
text: .text%__1cJCMoveNodeLis_cmove_id6FpnOPhaseTransform_pnENode_44pnIBoolNode__4_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%jni_NewGlobalRef: jni.o;
text: .text%__1cTciConstantPoolCache2t6MpnFArena_i_v_;
text: .text%__1cIAndINodeJideal_reg6kM_I_: classes.o;
@@ -1981,10 +1928,8 @@
text: .text%__1cPmethodDataKlassIallocate6MnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cKoopFactoryOnew_methodData6FnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cIAndLNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cVshrL_reg_imm6_L2INodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLConvL2INodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cSmulI_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
text: .text%__1cMindIndexOperNconstant_disp6kM_i_: ad_sparc.o;
@@ -2013,7 +1958,6 @@
text: .text%__1cSconvI2D_helperNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUPSGenerationCountersKupdate_all6M_v_: psGenerationCounters.o;
text: .text%__1cQComputeCallStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
text: .text%__1cQregP_to_stkPNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOGenerateOopMapHppstore6MpnNCellTypeState_i_v_;
text: .text%__1cJTimeStampSticks_since_update6kM_x_;
@@ -2038,7 +1982,6 @@
text: .text%__1cFStateM_sub_Op_AndI6MpknENode__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKcmpOpFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cTmembar_volatileNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateL_sub_Op_OrI6MpknENode__v_;
@@ -2066,7 +2009,6 @@
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cPorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIPhaseCFGOinsert_goto_at6MII_v_;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
text: .text%__1cPCallRuntimeNodeGOpcode6kM_i_;
text: .text%__1cJcmpOpOperNgreater_equal6kM_i_: ad_sparc_clone.o;
@@ -2097,7 +2039,6 @@
text: .text%__1cKstoreLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cGIfNodeMdominated_by6MpnENode_pnMPhaseIterGVN__v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cQshlI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOGenerateOopMapJdo_astore6Mi_v_;
text: .text%__1cbFunnecessary_membar_volatileNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -2127,7 +2068,6 @@
text: .text%__1cPconvF2D_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNloadConP0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRorI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperEless6kM_i_: ad_sparc_clone.o;
@@ -2135,7 +2075,6 @@
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%lwp_mutex_init: os_solaris.o;
text: .text%__1cRsubI_zero_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cQnotemp_iRegIOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cITemplateIbytecode6kM_nJBytecodesECode__;
@@ -2178,7 +2117,6 @@
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
text: .text%__1cQshrI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cNinstanceKlassbFlookup_method_in_all_interfaces6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cTloadL_unalignedNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
@@ -2249,11 +2187,9 @@
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIciMethodRbuild_method_data6M_v_;
text: .text%__1cHCompileIOptimize6M_v_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
@@ -2365,7 +2301,6 @@
text: .text%__1cQxorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWCallLeafNoFPDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLcmpD_ccNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWCallLeafNoFPDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadINodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cbBopt_virtual_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFi_vi_v_;
@@ -2392,8 +2327,6 @@
text: .text%__1cIimmLOperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
text: .text%__1cQregP_to_stkPNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
text: .text%__1cSmembar_releaseNodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_NewByteArray: jni.o;
@@ -2402,7 +2335,6 @@
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
text: .text%__1cSconvI2D_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cLstoreP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -2454,7 +2386,6 @@
text: .text%__1cSxorI_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOcompiledVFrameGsender6kM_pnGvframe__;
text: .text%__1cZInterpreterMacroAssemblerDpop6MnITosState__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cXJvmtiCurrentBreakpointsHoops_do6FpnKOopClosure__v_;
text: .text%__1cNMemoryServiceHoops_do6FpnKOopClosure__v_;
@@ -2462,7 +2393,6 @@
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
text: .text%__1cLJvmtiExportHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKJNIHandlesMweak_oops_do6FpnRBoolObjectClosure_pnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
@@ -2510,8 +2440,6 @@
text: .text%__1cKPSYoungGenPupdate_counters6M_v_;
text: .text%__1cWThreadLocalAllocBufferbFaccumulate_statistics_before_gc6F_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersPupdate_counters6M_v_;
@@ -2527,7 +2455,6 @@
text: .text%__1cQaddF_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cCosbAmake_polling_page_readable6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
text: .text%__1cOcmovII_immNodeErule6kM_I_: ad_sparc_misc.o;
@@ -2539,7 +2466,6 @@
text: .text%__1cNSignatureInfoHdo_byte6M_v_: bytecode.o;
text: .text%__1cOcmovPP_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLstoreC0NodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cTloadL_unalignedNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cICmpFNodeGOpcode6kM_i_;
@@ -2551,7 +2477,6 @@
text: .text%jni_GetFieldID: jni.o;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_: classes.o;
text: .text%__1cLstoreB0NodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cHTypeAryFxdual6kM_pknEType__;
text: .text%__1cMtlsLoadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIVMThreadHexecute6FpnMVM_Operation__v_;
@@ -2626,9 +2551,7 @@
text: .text%__1cRloadConP_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
text: .text%__1cNSharedRuntimeSfind_callee_method6FpnKJavaThread_pnGThread__nMmethodHandle__;
-text: .text%__1cMloadConLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadDNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cQstkI_to_regFNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQregP_to_stkPNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZInterpreterMacroAssemblerFpop_i6MpnMRegisterImpl__v_;
@@ -2636,7 +2559,6 @@
text: .text%__1cNSharedRuntimeTreresolve_call_site6FpnKJavaThread_pnGThread__nMmethodHandle__;
text: .text%__1cYcompareAndSwapL_boolNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNSCMemProjNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cYcompareAndSwapL_boolNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIProjNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIPSOldGenMmax_gen_size6M_I_: psOldGen.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
@@ -2855,7 +2777,6 @@
text: .text%jni_GetMethodID: jni.o;
text: .text%__1cQshlL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulINodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cNminI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshlI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOloadConL13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
@@ -2877,7 +2798,6 @@
text: .text%__1cNloadConL0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cKo1RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSsubL_reg_reg_1NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cQshrL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cRsarL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2948,7 +2868,6 @@
text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cJvmSymbolsOsignature_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cQsubL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQmodI_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubDNodeGOpcode6kM_i_;
text: .text%__1cQmodI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPfieldDescriptorLannotations6kM_pnQtypeArrayOopDesc__;
@@ -2986,7 +2905,6 @@
text: .text%__1cJMemRegionMintersection6kMk0_0_;
text: .text%__1cKJavaThread2t6MpFp0pnGThread__vI_v_;
text: .text%__1cKJavaThreadDrun6M_v_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cPjava_lang_ClassOprimitive_type6FpnHoopDesc__nJBasicType__;
text: .text%JVM_IsArrayClass;
text: .text%jni_CallStaticVoidMethod: jni.o;
@@ -3017,14 +2935,12 @@
text: .text%__1cINodeHashEgrow6M_v_;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
text: .text%__1cOcmovPP_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cMloadConDNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMaxINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cJloadSNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
text: .text%__1cLConvF2DNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%JVM_Open;
text: .text%__1cRInvocationCounterFreset6M_v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMap2t6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapRdo_interpretation6M_v_;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
@@ -3144,7 +3060,6 @@
text: .text%__1cIMinINodeIadd_ring6kMpknEType_3_3_;
text: .text%JVM_GetInheritedAccessControlContext;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
-text: .text%__1cNmaxI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_NativePath;
text: .text%__1cOMacroAssemblerNflush_windows6M_v_;
text: .text%__1cSsubD_regD_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3157,13 +3072,11 @@
text: .text%__1cKstorePNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQObjectStartArrayFreset6M_v_;
text: .text%__1cPconvI2D_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cQaddD_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLConvF2INodeGOpcode6kM_i_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJHashtableGunlink6MpnRBoolObjectClosure__v_;
text: .text%__1cIPSOldGenPadjust_pointers6M_v_;
-text: .text%__1cVCallRuntimeDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOcmovPI_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIPSOldGenHcompact6M_v_;
text: .text%__1cMtlsLoadPNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3177,7 +3090,6 @@
text: .text%jni_GetStaticMethodID: jni.o;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MipnMRegisterImpl__v_;
text: .text%__1cRtestI_reg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cPconvF2D_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopKdo_peeling6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cOcmovLL_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -3290,7 +3202,6 @@
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cOcmovLL_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRorI_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTloadL_unalignedNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTloadL_unalignedNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cXconvI2D_regDHi_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3371,7 +3282,6 @@
text: .text%__1cYjava_lang_reflect_MethodFclazz6FpnHoopDesc__2_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
text: .text%__1cJStubQdDueueKremove_all6M_v_;
-text: .text%__1cMloadConFNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPconvI2D_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPorL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerLindex_check6MpnMRegisterImpl_2i22_v_;
@@ -3405,12 +3315,10 @@
text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cKPSYoungGenKprecompact6M_v_;
text: .text%__1cXjava_lang_reflect_FieldEslot6FpnHoopDesc__i_;
-text: .text%__1cSconvD2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMnegF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHThreadsLgc_prologue6F_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
text: .text%__1cPconvI2L_regNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cPconvD2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_pnGThread__v_;
text: .text%__1cUParallelScavengeHeapHcollect6MnHGCCauseFCause__v_;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
@@ -3449,10 +3357,6 @@
text: .text%JVM_GetSystemPackage;
text: .text%__1cPfieldDescriptorTfloat_initial_value6kM_f_;
text: .text%__1cKPSYoungGenPadjust_pointers6M_v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
text: .text%__1cJCodeCacheLgc_epilogue6F_v_;
text: .text%__1cIXorINodeIadd_ring6kMpknEType_3_3_;
@@ -3508,16 +3412,13 @@
text: .text%jni_GetEnv;
text: .text%__1cJloadDNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQstkI_to_regINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_: interpreterRT_sparc.o;
text: .text%Unsafe_GetNativeByte;
text: .text%JVM_NanoTime;
text: .text%__1cCosNjavaTimeNanos6F_x_;
text: .text%__1cOMacroAssemblerOrestore_thread6MkpnMRegisterImpl__v_;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cQandL_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIimmFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cKcmpOpFOperGnegate6M_v_: ad_sparc_clone.o;
text: .text%__1cICodeBlobFflush6M_v_;
text: .text%__1cFParseMdo_anewarray6M_v_;
@@ -3537,8 +3438,6 @@
text: .text%__1cKo2RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cQregI_to_stkINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_method_entry6MnTAbstractInterpreterKMethodKind__pC_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cWloadConI_x43300000NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQdo_monitor_enter6M_v_;
text: .text%__1cPorL_reg_regNodeIpipeline6kM_pknIPipeline__;
@@ -3547,13 +3446,11 @@
text: .text%__1cVMoveL2D_stack_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNTemplateTableEiop26Fn0AJOperation__v_;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
-text: .text%__1cSmodL_reg_imm13NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshrI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cSsubL_reg_reg_2NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cUmulL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cPconvI2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
text: .text%__1cOstackSlotFOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cUdivL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3561,7 +3458,6 @@
text: .text%__1cOcmovLL_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
text: .text%__1cSmulL_reg_imm13NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%__1cOloadConL13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKcmpOpFOperHgreater6kM_i_: ad_sparc_clone.o;
text: .text%__1cIDivDNodeJideal_reg6kM_I_: classes.o;
@@ -3589,7 +3485,6 @@
text: .text%__1cKCompiledICSset_to_megamorphic6MpnICallInfo_nJBytecodesECode_pnGThread__v_;
text: .text%Unsafe_StaticFieldOffset;
text: .text%__1cQmulI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cQaddI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cOcmovLI_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%JVM_GetClassContext;
@@ -3725,7 +3620,6 @@
text: .text%Unsafe_AllocateMemory;
text: .text%__1cSandL_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetLastErrorString;
-text: .text%__1cQmodL_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableElop26Fn0AJOperation__v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cNTemplateTableEfop26Fn0AJOperation__v_;
@@ -3738,7 +3632,6 @@
text: .text%__1cLConvF2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cRcompL_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvD2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSconvD2I_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRsubI_zero_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
@@ -3775,7 +3668,6 @@
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_vi4_v_;
-text: .text%__1cPconvI2D_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_SetMemory;
text: .text%__1cKstfSSFNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerOthrow_if_not_x6MnJAssemblerJCondition_pCpnMRegisterImpl__v_;
@@ -3798,7 +3690,6 @@
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cOGenerateOopMapRdo_multianewarray6Mii_v_;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cbFpartialSubtypeCheck_vs_zeroNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_CallStaticObjectMethodV: jni.o;
text: .text%__1cNTemplateTableMfast_xaccess6FnITosState__v_;
text: .text%__1cJMemRegionFminus6kMk0_0_;
@@ -3857,13 +3748,10 @@
text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterImpl__v_;
text: .text%__1cTAbstract_VM_VersionOvm_info_string6F_pkc_;
text: .text%__1cJStubQdDueue2t6MpnNStubInterface_ipnFMutex_pkc_v_;
-text: .text%__1cSconvF2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
-text: .text%__1cbAconvL2D_reg_slow_fxtofNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOstackSlotFOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
-text: .text%__1cPconvF2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableGlconst6Fi_v_;
text: .text%__1cLstoreC0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
@@ -3913,7 +3801,6 @@
text: .text%__1cLOptoRuntimeIl2f_Type6F_pknITypeFunc__;
text: .text%__1cOMacroAssemblerUcalc_mem_param_words6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerLprofile_ret6MnITosState_pnMRegisterImpl_3_v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cZInterpreterMacroAssemblerSupdate_mdp_for_ret6MnITosState_pnMRegisterImpl__v_;
@@ -4001,16 +3888,13 @@
text: .text%__1cVMoveF2I_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVMoveL2D_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWinvocationCounter_init6F_v_;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
text: .text%__1cFParseMjump_if_join6MpnENode_2_2_;
text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cSinstanceKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlassKlass.o;
-text: .text%__1cLconvP2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cETypeRInitialize_shared6FpnHCompile__v_;
text: .text%__1cQinstanceRefKlassZupdate_nonstatic_oop_maps6FpnMklassOopDesc__v_;
text: .text%__1cVInterfaceSupport_init6F_v_;
-text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cPGenerationSizerQinitialize_flags6M_v_: parallelScavengeHeap.o;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_normal6MnITosState__v_;
text: .text%__1cJTimeStampMmilliseconds6kM_x_;
@@ -4103,11 +3987,9 @@
text: .text%__1cQvtableStubs_init6F_v_;
text: .text%__1cKi0RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKg1RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cLmethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: methodKlass.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: methodLiveness.o;
text: .text%__1cMMutableSpaceOobject_iterate6MpnNObjectClosure__v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cKmutex_init6F_v_;
text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC222_v_;
@@ -4440,7 +4322,6 @@
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableRfast_linearswitch6F_v_;
text: .text%__1cNTemplateTableRfast_binaryswitch6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
text: .text%__1cJPSPermGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
--- a/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9 Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9 Tue Nov 02 22:15:35 2010 -0700
@@ -2,9 +2,7 @@
text = LOAD ?RXO;
-text: .text%__1cCosOjavaTimeMillis6F_x_;
text: .text%__1cQIndexSetIteratorQadvance_and_next6M_I_;
-text: .text%__1cNinstanceKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNinstanceKlassToop_adjust_pointers6MpnHoopDesc__i_;
text: .text%__1cNinstanceKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cOtypeArrayKlassToop_adjust_pointers6MpnHoopDesc__i_;
@@ -18,11 +16,9 @@
text: .text%__1cHRegMaskJis_bound16kM_i_;
text: .text%__1cDff16FI_i_;
text: .text%__1cHRegMaskESize6kM_I_;
-text: .text%__1cXresource_allocate_bytes6FI_pc_;
text: .text%__1cENodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJVectorSet2R6MI_rnDSet__;
text: .text%__1cHRegMaskJis_bound26kM_i_;
-text: .text%__1cNSharedRuntimeElmul6Fxx_x_;
text: .text%__1cIMachNodeGOpcode6kM_i_;
text: .text%__1cJiRegIOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cIIndexSetKinitialize6MI_v_;
@@ -33,7 +29,6 @@
text: .text%__1cQIndexSetIteratorEnext6M_I_: chaitin.o;
text: .text%__1cENodeIout_grow6MI_v_;
text: .text%__1cOloadConI13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cNobjArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cENodeHadd_req6Mp0_v_;
text: .text%__1cJMarkSweepUAdjustPointerClosureGdo_oop6MppnHoopDesc__v_: markSweep.o;
text: .text%__1cNobjArrayKlassToop_follow_contents6MpnHoopDesc__v_;
@@ -45,7 +40,6 @@
text: .text%__1cKbranchNodeNis_block_proj6kM_pknENode__: ad_sparc_misc.o;
text: .text%__1cIProjNodeGOpcode6kM_i_;
text: .text%__1cETypeIhashcons6M_pk0_;
-text: .text%__1cOPhaseIdealLoopUbuild_loop_late_post6MpnENode_pk0_v_;
text: .text%__1cMPhaseChaitinTinterfere_with_live6MIpnIIndexSet__v_;
text: .text%__1cWNode_Backward_IteratorEnext6M_pnENode__;
text: .text%__1cNIdealLoopTreeJis_member6kMpk0_i_;
@@ -56,7 +50,6 @@
text: .text%__1cOPhaseIdealLoopZsplit_if_with_blocks_post6MpnENode__v_;
text: .text%__1cIUniverseMnon_oop_word6F_pv_;
text: .text%__1cDLRGOcompute_degree6kMr0_i_;
-text: .text%__1cFArenaIArealloc6MpvII_1_;
text: .text%__1cIConINodeGOpcode6kM_i_;
text: .text%__1cETypeEmeet6kMpk0_2_;
text: .text%__1cENode2t6MI_v_;
@@ -91,7 +84,6 @@
text: .text%__1cMMachProjNodeLbottom_type6kM_pknEType__;
text: .text%JVM_ArrayCopy;
text: .text%__1cOtypeArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
-text: .text%__1cNSharedRuntimeDl2f6Fx_f_;
text: .text%__1cPjava_lang_ClassLas_klassOop6FpnHoopDesc__pnMklassOopDesc__;
text: .text%__1cHConNodeGOpcode6kM_i_;
text: .text%__1cMPhaseIterGVNWadd_users_to_worklist06MpnENode__v_;
@@ -129,7 +121,6 @@
text: .text%__1cRMachSpillCopyNodeKin_RegMask6kMI_rknHRegMask__: ad_sparc.o;
text: .text%__1cbAfinal_graph_reshaping_impl6FpnENode_rnUFinal_Reshape_Counts__v_: compile.o;
text: .text%__1cOtypeArrayKlassIallocate6MipnGThread__pnQtypeArrayOopDesc__;
-text: .text%__1cUParallelScavengeHeapVlarge_typearray_limit6M_I_: parallelScavengeHeap.o;
text: .text%__1cIPhaseCCPOtransform_once6MpnENode__2_;
text: .text%__1cGciTypeEmake6FnJBasicType__p0_;
text: .text%__1cKoopFactoryNnew_typeArray6FnJBasicType_ipnGThread__pnQtypeArrayOopDesc__;
@@ -154,7 +145,6 @@
text: .text%__1cILRG_ListGextend6MII_v_;
text: .text%__1cJVectorSet2F6kMI_i_;
text: .text%__1cENodeQIdeal_DU_postCCP6MpnIPhaseCCP__p0_;
-text: .text%__1cOtypeArrayKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIProjNodeEhash6kM_I_;
text: .text%__1cIAddINodeGOpcode6kM_i_;
text: .text%__1cIIndexSet2t6Mp0_v_;
@@ -168,7 +158,6 @@
text: .text%__1cKNode_ArrayGremove6MI_v_;
text: .text%__1cHPhiNodeEhash6kM_I_;
text: .text%__1cLSymbolTableGlookup6FpkcipnGThread__pnNsymbolOopDesc__;
-text: .text%__1cKoopFactoryKnew_symbol6FpkcipnGThread__pnNsymbolOopDesc__;
text: .text%__1cKmethodOperJnum_edges6kM_I_: ad_sparc.o;
text: .text%__1cJStartNodeLbottom_type6kM_pknEType__;
text: .text%__1cHTypeIntFxmeet6kMpknEType__3_;
@@ -206,11 +195,7 @@
text: .text%__1cICallNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cTconstantPoolOopDescNklass_at_impl6FnSconstantPoolHandle_ipnGThread__pnMklassOopDesc__;
text: .text%__1cJLoadPNodeGOpcode6kM_i_;
-text: .text%__1cMMutableSpaceIallocate6MI_pnIHeapWord__;
-text: .text%__1cJPSPermGenSallocate_permanent6MI_pnIHeapWord__;
-text: .text%__1cUParallelScavengeHeapWpermanent_mem_allocate6MI_pnIHeapWord__;
text: .text%__1cIMachNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cMMutableSpaceMcas_allocate6MI_pnIHeapWord__;
text: .text%__1cNflagsRegPOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cHPhiNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMMachTypeNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
@@ -235,7 +220,6 @@
text: .text%__1cOPhaseIdealLoopbIdom_lca_for_get_late_ctrl_internal6MpnENode_22_2_;
text: .text%__1cXPipeline_Use_Cycle_MaskCOr6Mrk0_v_;
text: .text%__1cILoadNodeEhash6kM_I_;
-text: .text%__1cKTypeAryPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cKHandleMarkKinitialize6MpnGThread__v_;
text: .text%__1cKHandleMark2T6M_v_;
text: .text%__1cZPhaseConservativeCoalesceIcoalesce6MpnFBlock__v_;
@@ -263,7 +247,6 @@
text: .text%__1cPindOffset13OperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cUcompI_iReg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cODataRelocationJset_value6MpC_v_: relocInfo.o;
-text: .text%__1cKRelocationRpd_set_data_value6MpCi_v_;
text: .text%__1cKCastPPNodeGOpcode6kM_i_;
text: .text%__1cOoop_RelocationFvalue6M_pC_: relocInfo.o;
text: .text%__1cOoop_RelocationGoffset6M_i_: relocInfo.o;
@@ -284,7 +267,6 @@
text: .text%__1cOoop_RelocationSfix_oop_relocation6M_v_;
text: .text%__1cRSignatureIteratorSiterate_parameters6M_v_;
text: .text%__1cIAddPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cGBitMap2t6MpII_v_;
text: .text%__1cPClassFileStreamGget_u46MpnGThread__I_;
text: .text%__1cMMachCallNodeLbottom_type6kM_pknEType__;
text: .text%__1cFParsePdo_one_bytecode6M_v_;
@@ -292,7 +274,6 @@
text: .text%__1cHPhiNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cHMatcherKmatch_tree6MpknENode__pnIMachNode__;
text: .text%__1cMPhaseIterGVNKis_IterGVN6M_p0_: phaseX.o;
-text: .text%__1cKimmI13OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cCosVcurrent_stack_pointer6F_pC_;
text: .text%__1cEDict2F6kMpkv_pv_;
text: .text%__1cKRegionNodeLbottom_type6kM_pknEType__: classes.o;
@@ -320,7 +301,6 @@
text: .text%__1cSaddP_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIMachNodeHtwo_adr6kM_I_: ad_sparc.o;
text: .text%__1cNSafePointNodeHsize_of6kM_I_;
-text: .text%__1cLTypeInstPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cHCmpNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cPcheckCastPPNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNLoadRangeNodeGOpcode6kM_i_;
@@ -371,9 +351,7 @@
text: .text%__1cIMachOperDreg6kMpnNPhaseRegAlloc_pknENode__i_;
text: .text%__1cNPhaseCoalesceRcombine_these_two6MpnENode_2_v_;
text: .text%__1cKcmpOpPOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cKTypeRawPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cMloadConINodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cFArenaEgrow6MI_pv_;
text: .text%__1cMPhaseChaitinLinsert_proj6MpnFBlock_IpnENode_I_v_;
text: .text%__1cILoadNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cJStoreNodeLbottom_type6kM_pknEType__;
@@ -383,7 +361,6 @@
text: .text%__1cIHaltNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cPCheckCastPPNodeGOpcode6kM_i_;
text: .text%__1cKStorePNodeGOpcode6kM_i_;
-text: .text%__1cKRelocationLunpack_data6M_v_: relocInfo.o;
text: .text%__1cNflagsRegUOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cNinstanceKlassGvtable6kM_pnLklassVtable__;
text: .text%__1cPcheckCastPPNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
@@ -465,7 +442,6 @@
text: .text%__1cMMergeMemNodeEhash6kM_I_;
text: .text%__1cKSchedulingbFComputeRegisterAntidependencies6MpnFBlock__v_;
text: .text%__1cKSchedulingPComputeUseCount6MpknFBlock__v_;
-text: .text%__1cHTypePtrHget_con6kM_i_;
text: .text%__1cNinstanceKlassRprotection_domain6M_pnHoopDesc__: instanceKlass.o;
text: .text%__1cIMachNodePcompute_padding6kMi_i_: ad_sparc.o;
text: .text%__1cIMachNodeSalignment_required6kM_i_: ad_sparc.o;
@@ -477,13 +453,10 @@
text: .text%__1cFBlockJfind_node6kMpknENode__I_;
text: .text%__1cUArgumentSizeComputerDset6MinJBasicType__v_: frame.o;
text: .text%__1cHCmpNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cNCollectedHeapXallocate_from_tlab_slow6FpnGThread_I_pnIHeapWord__;
text: .text%__1cWThreadLocalAllocBufferXclear_before_allocation6M_v_;
text: .text%__1cHTypePtrEhash6kM_i_;
text: .text%__1cNinstanceKlassRallocate_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cSObjectSynchronizerKslow_enter6FnGHandle_pnJBasicLock_pnGThread__v_;
-text: .text%__1cWThreadLocalAllocBufferEfill6MpnIHeapWord_2I_v_;
-text: .text%__1cUParallelScavengeHeapRallocate_new_tlab6MI_pnIHeapWord__;
text: .text%__1cYNoJvmtiVMObjectAllocMark2t6M_v_;
text: .text%__1cYNoJvmtiVMObjectAllocMark2T6M_v_;
text: .text%__1cFBlockLfind_remove6MpknENode__v_;
@@ -502,7 +475,6 @@
text: .text%__1cENodeKreplace_by6Mp0_v_;
text: .text%__1cSObjectSynchronizerJslow_exit6FpnHoopDesc_pnJBasicLock_pnGThread__v_;
text: .text%__1cMMergeMemNodePiteration_setup6Mpk0_v_;
-text: .text%__1cFKlassNlookup_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cKDictionaryEfind6MiInMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cRMachSpillCopyNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKRegionNodeIIdentity6MpnOPhaseTransform__pnENode__;
@@ -513,8 +485,6 @@
text: .text%__1cKIfTrueNodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cRMemBarReleaseNodeGOpcode6kM_i_;
text: .text%__1cKbranchNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIMachOperIconstant6kM_i_;
-text: .text%__1cWMutableSpaceUsedHelperLtake_sample6M_x_: spaceCounters.o;
text: .text%__1cGPcDescHreal_pc6kMpknHnmethod__pC_;
text: .text%__1cRPSOldPromotionLABFflush6M_v_;
text: .text%__1cTconstantPoolOopDescMklass_ref_at6MipnGThread__pnMklassOopDesc__;
@@ -526,7 +496,6 @@
text: .text%__1cIBoolNodeKmatch_edge6kMI_I_: subnode.o;
text: .text%__1cMMergeMemNodePset_base_memory6MpnENode__v_;
text: .text%__1cLIfFalseNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cCosPelapsed_counter6F_x_;
text: .text%__1cGBitMapOset_difference6M0_v_;
text: .text%__1cNSafePointNodeEjvms6kM_pnIJVMState__: callnode.o;
text: .text%__1cOoop_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
@@ -534,7 +503,6 @@
text: .text%JVM_GetMethodIxLocalsCount;
text: .text%__1cNloadRangeNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%JVM_CurrentThread;
-text: .text%__1cENodeHget_ptr6kM_i_;
text: .text%__1cRcmpFastUnlockNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIAndINodeGOpcode6kM_i_;
text: .text%__1cPClassFileParserYverify_legal_method_name6MnMsymbolHandle_pnGThread__v_;
@@ -569,7 +537,6 @@
text: .text%__1cQaddP_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMLinkResolverZcheck_klass_accessability6FnLKlassHandle_1pnGThread__v_;
text: .text%__1cIJVMStateIof_depth6kMi_p0_;
-text: .text%__1cNSharedRuntimeElrem6Fxx_x_;
text: .text%__1cRconstantPoolKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cMciMethodDataLbci_to_data6Mi_pnLProfileData__;
text: .text%__1cRMemBarAcquireNodeGOpcode6kM_i_;
@@ -579,7 +546,6 @@
text: .text%__1cJVectorSet2t6MpnFArena__v_;
text: .text%__1cKTypeAryPtrFxmeet6kMpknEType__3_;
text: .text%__1cVcompP_iRegP_imm13NodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cRSignatureIteratorSiterate_parameters6MX_v_;
text: .text%__1cICallNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%__1cJTraceTime2T6M_v_;
text: .text%__1cITypeNodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -605,7 +571,6 @@
text: .text%__1cMCallLeafNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHPhiNodeEmake6FpnENode_2pknEType_pknHTypePtr__p0_;
-text: .text%__1cIAddPNodeQmach_bottom_type6FpknIMachNode__pknEType__;
text: .text%__1cOcompU_iRegNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJiRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNflagsRegPOperKin_RegMask6kMi_pknHRegMask__;
@@ -640,7 +605,6 @@
text: .text%__1cQregF_to_stkINodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cENodeDcmp6kMrk0_I_;
text: .text%__1cHTypeIntFxdual6kM_pknEType__;
-text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
text: .text%__1cMmerge_region6FpnKRegionNode_pnIPhaseGVN__pnENode__: cfgnode.o;
text: .text%__1cJAssemblerOpatched_branch6Fiii_i_;
text: .text%__1cJAssemblerSbranch_destination6Fii_i_;
@@ -653,7 +617,6 @@
text: .text%__1cITypeFuncEmake6FpknJTypeTuple_3_pk0_;
text: .text%__1cMloadConDNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cSCallLeafDirectNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cKTypeOopPtrHget_con6kM_i_;
text: .text%__1cQsubI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIRootNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cJloadLNodeErule6kM_I_: ad_sparc_misc.o;
@@ -729,7 +692,6 @@
text: .text%__1cJloadSNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKStoreCNodeGOpcode6kM_i_;
text: .text%__1cOGenerateOopMapRdo_exception_edge6MpnOBytecodeStream__v_;
-text: .text%__1cMstringStreamFwrite6MpkcI_v_;
text: .text%__1cOGenerateOopMapDpop6M_nNCellTypeState__;
text: .text%__1cHRetNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cPcmpFastLockNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -738,10 +700,7 @@
text: .text%__1cIBoolNodeJideal_reg6kM_I_: subnode.o;
text: .text%__1cHCmpNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cRloadConP_pollNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cETypeFwiden6kMpk0_2_: type.o;
text: .text%__1cLstoreI0NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cFciEnvTget_method_by_index6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
-text: .text%__1cFciEnvYget_method_by_index_impl6MpnPciInstanceKlass_inJBytecodesECode__pnIciMethod__;
text: .text%__1cMloadConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFciEnvNlookup_method6MpnNinstanceKlass_2pnNsymbolOopDesc_4nJBytecodesECode__pnNmethodOopDesc__;
text: .text%__1cKDictionaryKfind_class6MiInMsymbolHandle_nGHandle__pnMklassOopDesc__;
@@ -755,7 +714,6 @@
text: .text%__1cSInterpreterRuntimePresolve_get_put6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cQsubI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cXmembar_acquire_lockNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cQaddP_reg_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cPCountedLoopNodeGOpcode6kM_i_;
text: .text%__1cSInterpreterRuntimeLmonitorexit6FpnKJavaThread_pnPBasicObjectLock__v_;
text: .text%__1cIAndLNodeGOpcode6kM_i_;
@@ -765,13 +723,10 @@
text: .text%__1cFParseFBlockKinit_graph6Mp0_v_;
text: .text%__1cMTypeKlassPtrEmake6FnHTypePtrDPTR_pnHciKlass_i_pk0_;
text: .text%__1cKRelocationLspec_simple6FnJrelocInfoJrelocType__nQRelocationHolder__;
-text: .text%__1cCosGmalloc6FI_pv_;
text: .text%__1cSInterpreterRuntimeOresolve_invoke6FpnKJavaThread_nJBytecodesECode__v_;
text: .text%__1cIGraphKitTadd_exception_state6MpnNSafePointNode__v_;
-text: .text%__1cIimmPOperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cIregDOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cKstoreINodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cICodeHeapLheader_size6F_I_;
text: .text%__1cWConstantPoolCacheEntryKset_method6MnJBytecodesECode_nMmethodHandle_i_v_;
text: .text%__1cNloadRangeNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseMdo_one_block6M_v_;
@@ -794,7 +749,6 @@
text: .text%__1cMFastLockNodeGOpcode6kM_i_;
text: .text%__1cLConvL2INodeGOpcode6kM_i_;
text: .text%__1cIXorINodeGOpcode6kM_i_;
-text: .text%__1cMVirtualSpaceOcommitted_size6kM_I_;
text: .text%__1cOcompU_iRegNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cPorI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKTypeAryPtrFklass6kM_pnHciKlass__;
@@ -812,23 +766,17 @@
text: .text%__1cPsp_ptr_RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cPClassFileParserbCverify_legal_field_signature6MnMsymbolHandle_1pnGThread__v_;
text: .text%__1cPClassFileParserXverify_legal_field_name6MnMsymbolHandle_pnGThread__v_;
-text: .text%__1cRshrP_reg_imm5NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLBoxLockNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cITypeLongEmake6Fxxi_pk0_;
text: .text%__1cNloadKlassNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%JVM_GetCPMethodNameUTF;
text: .text%__1cMtlsLoadPNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLstoreB0NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIimmIOperIconstant6kM_i_: ad_sparc_clone.o;
-text: .text%__1cNSharedRuntimeEldiv6Fxx_x_;
text: .text%__1cHBitDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cURethrowExceptionNodeNis_block_proj6kM_pknENode__: ad_sparc_misc.o;
text: .text%__1cQSystemDictionarybOfind_constrained_instance_or_array_klass6FnMsymbolHandle_nGHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cQsubI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIciSymbol2t6MnMsymbolHandle__v_;
text: .text%__1cQaddP_reg_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKmethodOperGmethod6kM_i_: ad_sparc.o;
text: .text%__1cFKlassIsubklass6kM_p0_;
text: .text%__1cNinstanceKlassbBallocate_permanent_instance6MpnGThread__pnPinstanceOopDesc__;
text: .text%__1cXInterpreterFrameClosureJoffset_do6Mi_v_: frame.o;
@@ -885,7 +833,6 @@
text: .text%JVM_GetCPFieldSignatureUTF;
text: .text%__1cENodeLnonnull_req6kM_p0_;
text: .text%__1cYCallStaticJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cYCallStaticJavaDirectNodeKmethod_set6Mi_v_;
text: .text%__1cMelapsedTimerFstart6M_v_;
text: .text%__1cMelapsedTimerEstop6M_v_;
text: .text%__1cMURShiftINodeLbottom_type6kM_pknEType__: classes.o;
@@ -946,7 +893,6 @@
text: .text%__1cNinstanceKlassLfind_method6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cHCompileKTracePhase2T6M_v_;
text: .text%__1cMPhaseChaitinLclone_projs6MpnFBlock_IpnENode_4rI_i_;
-text: .text%__1cNinstanceKlassSlookup_osr_nmethod6kMkpnNmethodOopDesc_i_pnHnmethod__;
text: .text%__1cIJVMState2t6MpnIciMethod_p0_v_;
text: .text%__1cIHaltNode2t6MpnENode_2_v_;
text: .text%__1cLOptoRuntimeSuncommon_trap_Type6F_pknITypeFunc__;
@@ -954,7 +900,6 @@
text: .text%__1cSsafePoint_pollNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cINodeHashJhash_find6MpknENode__p1_;
text: .text%__1cQmulL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cSaddP_reg_imm13NodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cOMethodLivenessKBasicBlock2t6Mp0ii_v_;
text: .text%__1cOMethodLivenessKBasicBlockQcompute_gen_kill6MpnIciMethod__v_;
text: .text%__1cOGenerateOopMapFppush6MpnNCellTypeState__v_;
@@ -966,7 +911,6 @@
text: .text%__1cLstoreB0NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cMtlsLoadPNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLBoxLockNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cITypeLongEmake6Fx_pk0_;
text: .text%__1cHciFieldPinitialize_from6MpnPfieldDescriptor__v_;
text: .text%__1cKimmI13OperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cJloadBNodeIpipeline6kM_pknIPipeline__;
@@ -987,7 +931,6 @@
text: .text%__1cNloadConP0NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cHMulNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cMPhaseIterGVNJtransform6MpnENode__2_;
-text: .text%__1cHTypeIntFwiden6kMpknEType__3_;
text: .text%__1cSsafePoint_pollNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadSNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKarrayKlassLobject_size6kMi_i_;
@@ -1019,36 +962,26 @@
text: .text%__1cSobjArrayKlassKlassIoop_size6kMpnHoopDesc__i_: objArrayKlassKlass.o;
text: .text%__1cPcompP_iRegPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cJloadPNodeOmemory_operand6kM_pknIMachOper__;
-text: .text%__1cPBytecode_invokeJsignature6kM_pnNsymbolOopDesc__;
text: .text%__1cFframebGinterpreter_callee_receiver_addr6MnMsymbolHandle__ppnHoopDesc__;
text: .text%__1cNSignatureInfoGdo_int6M_v_: bytecode.o;
text: .text%__1cOstackSlotLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKInlineTreeMok_to_inline6MpnIciMethod_pnIJVMState_rnNciCallProfile_pnMWarmCallInfo__8_;
text: .text%__1cOGenerateOopMapbAget_basic_block_containing6kMi_pnKBasicBlock__;
-text: .text%__1cICodeHeapSallocated_capacity6kM_I_;
-text: .text%__1cICHeapObj2n6FI_pv_;
text: .text%__1cQsubL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cWCallLeafNoFPDirectNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cFTypeDEhash6kM_i_;
-text: .text%__1cKTypeRawPtrHget_con6kM_i_;
text: .text%__1cJStartNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
text: .text%jni_ExceptionOccurred: jni.o;
text: .text%__1cKciTypeFlowLStateVectorStype_meet_internal6FpnGciType_3p0_3_;
text: .text%__1cMloadConINodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cGIfNodeHsize_of6kM_I_: classes.o;
text: .text%__1cPconvL2I_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cIimmLOperJconstantL6kM_x_: ad_sparc_clone.o;
-text: .text%__1cTStackWalkCompPolicyRcompilation_level6MnMmethodHandle_i_i_;
text: .text%jni_GetByteArrayRegion: jni.o;
-text: .text%__1cIGraphKitTset_all_memory_call6MpnENode__v_;
-text: .text%__1cSHighResTimeSamplerLtake_sample6M_x_: statSampler.o;
text: .text%__1cHCompileFstart6kM_pnJStartNode__;
text: .text%__1cPStatSamplerTaskEtask6M_v_: statSampler.o;
-text: .text%__1cMPeriodicTaskOreal_time_tick6FI_v_;
text: .text%__1cQPlaceholderTableKfind_entry6MiInMsymbolHandle_nGHandle__pnNsymbolOopDesc__;
text: .text%__1cIParmNodeJideal_reg6kM_I_;
text: .text%__1cQandL_reg_regNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIMachNodeRget_base_and_disp6kMrirpknHTypePtr__pknENode__;
text: .text%__1cQSystemDictionarybBresolve_array_class_or_null6FnMsymbolHandle_nGHandle_2pnGThread__pnMklassOopDesc__;
text: .text%__1cIregFOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cRbranchLoopEndNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -1072,7 +1005,6 @@
text: .text%JVM_RawMonitorEnter;
text: .text%JVM_RawMonitorExit;
text: .text%__1cOMachReturnNodeKin_RegMask6kMI_rknHRegMask__;
-text: .text%__1cMTypeKlassPtrKadd_offset6kMi_pknHTypePtr__;
text: .text%__1cWShouldNotReachHereNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPcmpFastLockNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cETypeRget_typeflow_type6FpnGciType__pk0_;
@@ -1082,7 +1014,6 @@
text: .text%__1cURethrowExceptionNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOJNIHandleBlockOallocate_block6FpnGThread__p0_;
text: .text%__1cNSignatureInfoHdo_bool6M_v_: bytecode.o;
-text: .text%__1cKBufferBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cSandI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIAddINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cLTypeInstPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
@@ -1094,16 +1025,10 @@
text: .text%__1cPorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeGOpcode6kM_i_;
text: .text%__1cJloadSNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cICodeHeapIcapacity6kM_I_;
-text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
-text: .text%__1cMCodeHeapPoolNused_in_bytes6M_I_: memoryPool.o;
text: .text%__1cPcmpFastLockNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cMCodeHeapPoolQget_memory_usage6M_nLMemoryUsage__;
text: .text%__1cFArena2T6M_v_;
text: .text%__1cKMemBarNodeFmatch6MpknIProjNode_pknHMatcher__pnENode__;
-text: .text%__1cOCallRelocationFvalue6M_pC_: relocInfo.o;
-text: .text%__1cHoopDescSslow_identity_hash6M_i_;
-text: .text%__1cSObjectSynchronizerXidentity_hash_value_for6FnGHandle__i_;
text: .text%__1cLPCTableNodeEhash6kM_I_;
text: .text%__1cHConNodeLout_RegMask6kM_rknHRegMask__: classes.o;
text: .text%__1cXPhaseAggressiveCoalesceYinsert_copy_with_overlap6MpnFBlock_pnENode_II_v_;
@@ -1136,7 +1061,6 @@
text: .text%__1cIJumpDataKcell_count6M_i_: ciMethodData.o;
text: .text%__1cObranchConPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cITypeFuncFxdual6kM_pknEType__;
-text: .text%__1cQjava_lang_StringGlength6FpnHoopDesc__i_;
text: .text%__1cFStateM_sub_Op_CmpI6MpknENode__v_;
text: .text%__1cJcmpOpOperFccode6kM_i_: ad_sparc_clone.o;
text: .text%__1cGciType2t6MnLKlassHandle__v_;
@@ -1175,7 +1099,6 @@
text: .text%__1cPconvI2L_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNMemoryServiceXtrack_memory_pool_usage6FpnKMemoryPool__v_;
text: .text%__1cSmembar_releaseNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cJimmU5OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cPciInstanceKlass2t6MnLKlassHandle__v_;
text: .text%__1cLOpaque1NodeEhash6kM_I_;
text: .text%__1cJStoreNodeZIdeal_sign_extended_input6MpnIPhaseGVN_i_pnENode__;
@@ -1200,11 +1123,9 @@
text: .text%__1cLstoreP0NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRethrowNodeKmatch_edge6kMI_I_;
text: .text%__1cFTypeFEhash6kM_i_;
-text: .text%__1cHnmethodHoops_do6MpnKOopClosure__v_;
text: .text%__1cFStateM_sub_Op_AddI6MpknENode__v_;
text: .text%__1cOParseGeneratorIgenerate6MpnIJVMState__2_;
text: .text%__1cFParseQcreate_entry_map6M_pnNSafePointNode__;
-text: .text%__1cFArenaEused6kM_I_;
text: .text%__1cFParseLbuild_exits6M_v_;
text: .text%__1cFParseIdo_exits6M_v_;
text: .text%__1cFParse2t6MpnIJVMState_pnIciMethod_f_v_;
@@ -1213,17 +1134,13 @@
text: .text%__1cNCallGeneratorKfor_inline6FpnIciMethod_f_p0_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2t6M_v_;
text: .text%__1cbGJvmtiVMObjectAllocEventCollector2T6M_v_;
-text: .text%__1cQconstMethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cRciVirtualCallDataOtranslate_from6MpnLProfileData__v_;
text: .text%jni_IsSameObject: jni.o;
text: .text%__1cMloadConINodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNbranchConNodeJlabel_set6MrnFLabel_I_v_;
text: .text%__1cNbranchConNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQandL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLmethodKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cLsymbolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cIciObjectFklass6M_pnHciKlass__;
-text: .text%__1cLSymbolTableFprobe6Fpkci_pnNsymbolOopDesc__;
text: .text%__1cPThreadLocalNodeGOpcode6kM_i_;
text: .text%__1cZPhaseConservativeCoalesceKupdate_ifg6MIIpnIIndexSet_2_v_;
text: .text%__1cZPhaseConservativeCoalesceMunion_helper6MpnENode_2II222pnFBlock_I_v_;
@@ -1240,14 +1157,11 @@
text: .text%__1cKstorePNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cOPhaseIdealLoopOsplit_thru_phi6MpnENode_2i_2_;
text: .text%__1cENodeGOpcode6kM_i_;
-text: .text%__1cRshrP_reg_imm5NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQandI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cIciMethodbBinterpreter_call_site_count6Mi_i_;
text: .text%__1cGBitMapIset_from6M0_v_;
-text: .text%__1cNCompileBrokerOcompile_method6FnMmethodHandle_i1ipkcpnGThread__pnHnmethod__;
text: .text%__1cTconstantPoolOopDescbDresolve_string_constants_impl6FnSconstantPoolHandle_pnGThread__v_;
text: .text%__1cHSubNodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cFChunk2n6FII_pv_;
text: .text%__1cTCallDynamicJavaNodeGOpcode6kM_i_;
text: .text%__1cKstoreBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cILoadNodeDcmp6kMrknENode__I_;
@@ -1261,7 +1175,6 @@
text: .text%__1cFframeLreal_sender6kMpnLRegisterMap__0_;
text: .text%__1cGRFrameGcaller6M_p0_;
text: .text%__1cPCheckCastPPNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cRshrP_reg_imm5NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_;
text: .text%__1cXmembar_release_lockNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cJloadINodeOmemory_operand6kM_pknIMachOper__;
@@ -1278,7 +1191,6 @@
text: .text%__1cKTypeOopPtrEhash6kM_i_;
text: .text%__1cIMinINodeGOpcode6kM_i_;
text: .text%__1cMURShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cFframeRoops_code_blob_do6MpnKOopClosure_pknLRegisterMap__v_;
text: .text%__1cKTypeRawPtrFxmeet6kMpknEType__3_;
text: .text%JVM_GetMethodIxModifiers;
text: .text%__1cIMulLNodeLbottom_type6kM_pknEType__: classes.o;
@@ -1289,8 +1201,6 @@
text: .text%__1cPorI_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIDivINodeGOpcode6kM_i_;
text: .text%__1cOGenerateOopMapTmerge_state_into_bb6MpnKBasicBlock__v_;
-text: .text%__1cICodeHeapIallocate6MI_pv_;
-text: .text%__1cICodeHeapPsearch_freelist6MI_pnJFreeBlock__;
text: .text%__1cLOpaque1NodeLbottom_type6kM_pknEType__: connode.o;
text: .text%__1cNloadRangeNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cLRShiftLNodeGOpcode6kM_i_;
@@ -1315,7 +1225,6 @@
text: .text%__1cParrayKlassKlassToop_follow_contents6MpnHoopDesc__v_;
text: .text%__1cIGraphKitYcombine_exception_states6MpnNSafePointNode_2_v_;
text: .text%__1cQmulL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cRshrP_reg_imm5NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSconstMethodOopDescYchecked_exceptions_start6kM_pnXCheckedExceptionElement__;
text: .text%__1cPClassFileParserYparse_checked_exceptions6MpHInSconstantPoolHandle_pnGThread__1_;
text: .text%__1cKstoreLNodePoper_input_base6kM_I_: ad_sparc_misc.o;
@@ -1325,7 +1234,6 @@
text: .text%__1cPClassFileStreamHskip_u26MipnGThread__v_;
text: .text%__1cUcompI_iReg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOMacroAssemblerNverify_thread6M_v_;
-text: .text%__1cIGraphKitZset_results_for_java_call6MpnMCallJavaNode__pnENode__;
text: .text%__1cSbranchCon_longNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cHnmethodVcleanup_inline_caches6M_v_;
text: .text%__1cTciConstantPoolCacheGinsert6Mipv_v_;
@@ -1356,12 +1264,9 @@
text: .text%__1cbDcatch_cleanup_find_cloned_def6FpnFBlock_pnENode_1rnLBlock_Array_i_3_: lcm.o;
text: .text%__1cQxorI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cFciEnvVget_constant_by_index6MpnPciInstanceKlass_i_nKciConstant__;
-text: .text%__1cFciEnvbAget_constant_by_index_impl6MpnPciInstanceKlass_i_nKciConstant__;
text: .text%__1cOClearArrayNodeKmatch_edge6kMI_I_;
text: .text%__1cPconvL2I_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadSNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cKJavaThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cSFixupMirrorClosureJdo_object6MpnHoopDesc__v_: universe.o;
text: .text%__1cFStateP_sub_Op_LShiftI6MpknENode__v_;
text: .text%__1cQandL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
@@ -1381,13 +1286,11 @@
text: .text%__1cQandI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cSandI_reg_imm13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cRCardTableModRefBSPdirty_MemRegion6MnJMemRegion__v_;
-text: .text%__1cZresource_reallocate_bytes6FpcII_0_;
text: .text%__1cLConvL2INodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cOAbstractICacheQinvalidate_range6FpCi_v_;
text: .text%__1cKstorePNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMaxINodeGOpcode6kM_i_;
text: .text%__1cTDirectCallGeneratorIgenerate6MpnIJVMState__2_;
-text: .text%__1cNCallGeneratorPfor_direct_call6FpnIciMethod__p0_;
text: .text%__1cMWarmCallInfoLalways_cold6F_p0_;
text: .text%__1cIimmDOperJconstantD6kM_d_: ad_sparc_clone.o;
text: .text%__1cIPhaseIFGEinit6MI_v_;
@@ -1415,7 +1318,6 @@
text: .text%__1cMoutputStream2t6Mi_v_;
text: .text%__1cMstringStreamJas_string6M_pc_;
text: .text%__1cMstringStream2T6M_v_;
-text: .text%__1cMstringStream2t6MI_v_;
text: .text%__1cIGraphKitMreset_memory6M_pnENode__;
text: .text%__1cZCallDynamicJavaDirectNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKstorePNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -1472,7 +1374,6 @@
text: .text%__1cOPhaseIdealLoopPis_counted_loop6MpnENode_pnNIdealLoopTree__2_;
text: .text%__1cQComputeCallStackHdo_void6M_v_: generateOopMap.o;
text: .text%__1cFKlassRinitialize_supers6MpnMklassOopDesc_pnGThread__v_;
-text: .text%__1cKKlass_vtbl2n6FIrnLKlassHandle_ipnGThread__pv_;
text: .text%__1cFKlassVbase_create_klass_oop6FrnLKlassHandle_irknKKlass_vtbl_pnGThread__pnMklassOopDesc__;
text: .text%__1cQjava_lang_StringLutf8_length6FpnHoopDesc__i_;
text: .text%jni_GetStringUTFLength: jni.o;
@@ -1494,7 +1395,6 @@
text: .text%JVM_InternString;
text: .text%__1cLStringTableGintern6FpnHoopDesc_pnGThread__2_;
text: .text%__1cCosGrandom6F_l_;
-text: .text%__1cKimmP13OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cVcompP_iRegP_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKoopFactoryXnew_permanent_byteArray6FipnGThread__pnQtypeArrayOopDesc__;
text: .text%__1cRcompL_reg_regNodeIpipeline6kM_pknIPipeline__;
@@ -1512,7 +1412,6 @@
text: .text%__1cKDictionaryJadd_klass6MnMsymbolHandle_nGHandle_nLKlassHandle__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZCallDynamicJavaDirectNodePoper_input_base6kM_I_: ad_sparc_misc.o;
-text: .text%__1cIGraphKitTcreate_and_xform_if6MpnENode_2ff_pnGIfNode__: graphKit.o;
text: .text%__1cWImplicitExceptionTableGappend6MII_v_;
text: .text%__1cRMachNullCheckNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLProfileDataPpost_initialize6MpnOBytecodeStream_pnRmethodDataOopDesc__v_: ciMethodData.o;
@@ -1534,14 +1433,12 @@
text: .text%__1cOGenerateOopMapLmerge_state6Fp0ipi_v_;
text: .text%__1cMTypeKlassPtrFxdual6kM_pknEType__;
text: .text%__1cQSystemDictionaryVdefine_instance_class6FnTinstanceKlassHandle_pnGThread__v_;
-text: .text%__1cSinstanceKlassKlassXallocate_instance_klass6MiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cPClassFileParserbBcheck_final_method_override6FnTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cJCodeCachebKnumber_of_nmethods_with_dependencies6F_i_;
text: .text%__1cNinstanceKlassQinit_implementor6M_v_;
text: .text%__1cPClassFileStream2t6MpCipc_v_;
text: .text%__1cNinstanceKlassSprocess_interfaces6MpnGThread__v_;
text: .text%__1cNinstanceKlassYcompute_secondary_supers6MipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cKoopFactoryRnew_instanceKlass6FiiiinNReferenceType_pnGThread__pnMklassOopDesc__;
text: .text%__1cNinstanceKlassWdo_local_static_fields6MpFpnPfieldDescriptor_pnGThread__v4_v_;
text: .text%__1cPClassFileParserMsort_methods6MnOobjArrayHandle_111pnGThread__nPtypeArrayHandle__;
text: .text%__1cFKlassKsuperklass6kM_pnNinstanceKlass__;
@@ -1561,22 +1458,17 @@
text: .text%__1cNinstanceKlassOset_alloc_size6MI_v_: instanceKlass.o;
text: .text%__1cNinstanceKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlass.o;
text: .text%__1cHMemNodeHsize_of6kM_I_;
-text: .text%__1cFVTuneQstart_class_load6F_v_;
text: .text%__1cSThreadProfilerMark2T6M_v_;
-text: .text%__1cFVTuneOend_class_load6F_v_;
text: .text%__1cLClassLoaderOload_classfile6FnMsymbolHandle_pnGThread__nTinstanceKlassHandle__;
text: .text%__1cJEventMark2t6MpkcE_v_: classLoader.o;
text: .text%__1cSThreadProfilerMark2t6Mn0AGRegion__v_;
text: .text%__1cQSystemDictionaryRload_shared_class6FnTinstanceKlassHandle_nGHandle_pnGThread__1_;
-text: .text%__1cKklassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cPClassFileParserbKparse_classfile_sourcefile_attribute6MnSconstantPoolHandle_nTinstanceKlassHandle_pnGThread__v_;
text: .text%__1cQmodI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLRShiftINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKCMoveINodeGOpcode6kM_i_;
text: .text%__1cLLShiftLNodeGOpcode6kM_i_;
text: .text%__1cYcompareAndSwapL_boolNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cSinstanceKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cNinstanceKlassScopy_static_fields6MpnSPSPromotionManager__v_;
text: .text%__1cMtlsLoadPNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateQ_sub_Op_URShiftI6MpknENode__v_;
text: .text%__1cKcmpOpUOperGnegate6M_v_: ad_sparc_clone.o;
@@ -1619,14 +1511,12 @@
text: .text%__1cQandI_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIXorINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cRmethodDataOopDescLbci_to_data6Mi_pnLProfileData__;
-text: .text%__1cFframeZinterpreter_frame_set_bcx6Mi_v_;
text: .text%__1cMnegF_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLstoreI0NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cTOopMapForCacheEntryZfill_stackmap_for_opcodes6MpnOBytecodeStream_pnNCellTypeState_4i_v_;
text: .text%__1cSaddL_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQshrL_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cNSharedRuntimebKexception_handler_for_return_address6FpC_1_;
text: .text%__1cILoopNodeHsize_of6kM_I_: classes.o;
text: .text%__1cHMatcherLfind_shared6MpnENode__v_;
text: .text%__1cJStartNodeHsize_of6kM_I_;
@@ -1643,8 +1533,6 @@
text: .text%__1cMLinkResolverbHlookup_instance_method_in_klasses6FrnMmethodHandle_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cMnegF_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cNSharedRuntimebWnative_method_throw_unsatisfied_link_error_entry6F_pC_;
-text: .text%__1cTStackWalkCompPolicyYmethod_back_branch_event6MnMmethodHandle_iipnGThread__v_;
-text: .text%__1cRCompilationPolicybJreset_counter_for_back_branch_event6MnMmethodHandle__v_;
text: .text%__1cOMethodLivenessQcompute_liveness6M_v_;
text: .text%__1cOMethodLiveness2t6MpnFArena_pnIciMethod__v_;
text: .text%__1cOMethodLivenessNinit_gen_kill6M_v_;
@@ -1654,7 +1542,6 @@
text: .text%__1cLRShiftINodeIIdentity6MpnOPhaseTransform__pnENode__;
text: .text%__1cJTimeStampGupdate6M_v_;
text: .text%__1cRmethodDataOopDescKmileage_of6FpnNmethodOopDesc__i_;
-text: .text%__1cWconstantPoolCacheKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cMloadConDNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQarray_addressing6MnJBasicType_ippknEType__pnENode__;
text: .text%__1cNloadConP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -1666,14 +1553,11 @@
text: .text%__1cRsubI_zero_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cJcmpOpOperFequal6kM_i_: ad_sparc_clone.o;
text: .text%__1cHCompilebAvarargs_C_out_slots_killed6kM_I_;
-text: .text%__1cXJNI_ArgumentPusherVaArgHiterate6MX_v_: jni.o;
-text: .text%__1cbBjava_lang_ref_SoftReferenceFclock6F_x_;
text: .text%__1cOPhaseIdealLoopQset_subtree_ctrl6MpnENode__v_;
text: .text%__1cWstatic_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
text: .text%__1cNflagsRegLOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cYciExceptionHandlerStreamPcount_remaining6M_i_;
text: .text%__1cFParseXcatch_inline_exceptions6MpnNSafePointNode__v_;
-text: .text%__1cRconstantPoolKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNobjArrayKlassKcopy_array6MpnMarrayOopDesc_i2iipnGThread__v_;
text: .text%__1cKcmpOpUOperNgreater_equal6kM_i_: ad_sparc_clone.o;
text: .text%JVM_GetFieldIxModifiers;
@@ -1698,7 +1582,6 @@
text: .text%__1cIregDOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cNmethodOopDescTverified_code_entry6M_pC_;
text: .text%__1cNSharedRuntimeXfind_callee_info_helper6FpnKJavaThread_rnMvframeStream_rnJBytecodesECode_rnICallInfo_pnGThread__nGHandle__;
-text: .text%__1cPBytecode_invokeFindex6kM_i_;
text: .text%__1cLRethrowNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSPSKeepAliveClosureGdo_oop6MppnHoopDesc__v_: psScavenge.o;
text: .text%__1cFParseFBlockRsuccessor_for_bci6Mi_p1_;
@@ -1724,7 +1607,6 @@
text: .text%__1cOPhaseIdealLoopNreorg_offsets6MpnNIdealLoopTree__v_;
text: .text%__1cRshrL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cNmethodOopDescVset_signature_handler6MpC_v_;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJtimestamp6FpnHoopDesc__x_;
text: .text%__1cPcompP_iRegPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cSxorI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOPhaseIdealLoopRsplit_thru_region6MpnENode_2_2_;
@@ -1736,7 +1618,6 @@
text: .text%__1cOPhaseIdealLoopMdominated_by6MpnENode_2_v_;
text: .text%__1cQshlI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cFParseNthrow_to_exit6MpnNSafePointNode__v_;
-text: .text%__1cQinstanceRefKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cVConstantOopWriteValueIwrite_on6MpnUDebugInfoWriteStream__v_;
text: .text%__1cJVectorSetGslamin6Mrk0_v_;
text: .text%JVM_Clone;
@@ -1772,7 +1653,6 @@
text: .text%__1cJNode_ListEyank6MpnENode__v_;
text: .text%__1cMPhaseChaitinISimplify6M_v_;
text: .text%__1cNIdealLoopTreeIset_nest6MI_i_;
-text: .text%__1cSCallLeafDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMulLNodeImul_ring6kMpknEType_3_3_;
text: .text%__1cMStartOSRNodeGOpcode6kM_i_;
text: .text%__1cSCallLeafDirectNodeLout_RegMask6kM_rknHRegMask__;
@@ -1792,7 +1672,6 @@
text: .text%__1cLstoreB0NodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cRshrI_reg_imm5NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQjava_lang_StringOas_utf8_string6FpnHoopDesc__pc_;
-text: .text%__1cRcmpFastUnlockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNSafePointNodeLpop_monitor6M_v_;
text: .text%__1cMPhaseChaitinVfind_base_for_derived6MppnENode_2rI_2_;
text: .text%__1cLOptoRuntimebAcomplete_monitor_exit_Type6F_pknITypeFunc__;
@@ -1813,7 +1692,6 @@
text: .text%__1cMindirectOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cNSafePointNodeMpush_monitor6MpknMFastLockNode__v_;
text: .text%__1cSCallLeafDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cSCallLeafDirectNodeKmethod_set6Mi_v_;
text: .text%__1cIDivINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cJLoadBNodeJideal_reg6kM_I_: classes.o;
text: .text%__1cJloadBNodeOmemory_operand6kM_pknIMachOper__;
@@ -1824,8 +1702,6 @@
text: .text%__1cJCMoveNodeLis_cmove_id6FpnOPhaseTransform_pnENode_44pnIBoolNode__4_;
text: .text%__1cKTypeAryPtrQcast_to_ptr_type6kMnHTypePtrDPTR__pknEType__;
text: .text%__1cOPhaseIdealLoopKDominators6M_v_;
-text: .text%__1cOPhaseIdealLoopPbuild_loop_late6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
-text: .text%__1cOPhaseIdealLoopQbuild_loop_early6MrnJVectorSet_rnJNode_List_rnKNode_Stack_pk0_v_;
text: .text%jni_NewGlobalRef: jni.o;
text: .text%__1cTciConstantPoolCache2t6MpnFArena_i_v_;
text: .text%__1cIAndINodeJideal_reg6kM_I_: classes.o;
@@ -1838,7 +1714,6 @@
text: .text%__1cRcmpFastUnlockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQshlI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cXmembar_release_lockNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKPSYoungGenNused_in_bytes6kM_I_;
text: .text%__1cOMachEpilogNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKCompiledICSset_to_monomorphic6MrknOCompiledICInfo__v_;
text: .text%__1cJloadFNodeIpipeline6kM_pknIPipeline__;
@@ -1851,8 +1726,6 @@
text: .text%__1cKJavaThreadGactive6F_p0_;
text: .text%__1cKstoreFNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cQjava_lang_StringOchar_converter6FnGHandle_HHpnGThread__1_;
-text: .text%__1cMVirtualSpaceNreserved_size6kM_I_;
-text: .text%__1cICodeHeapMmax_capacity6kM_I_;
text: .text%__1cRsubI_zero_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cHTypePtrFxmeet6kMpknEType__3_;
text: .text%__1cNflagsRegFOperEtype6kM_pknEType__: ad_sparc.o;
@@ -1860,7 +1733,6 @@
text: .text%__1cFParseWensure_phis_everywhere6M_v_;
text: .text%__1cLRethrowNodeEhash6kM_I_: classes.o;
text: .text%__1cIDivLNodeGOpcode6kM_i_;
-text: .text%__1cPlocal_vsnprintf6FpcIpkcpv_i_;
text: .text%__1cNDispatchTableJset_entry6MirnKEntryPoint__v_;
text: .text%__1cNmethodOopDescVclear_native_function6M_v_;
text: .text%__1cOloadConL13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -1933,7 +1805,6 @@
text: .text%__1cHMatcherTFixup_Save_On_Entry6M_v_;
text: .text%__1cHMatcherPinit_spill_mask6MpnENode__v_;
text: .text%__1cHCompileICode_Gen6M_v_;
-text: .text%__1cFArena2t6MI_v_;
text: .text%__1cUDebugInfoWriteStream2t6MpnYDebugInformationRecorder_i_v_;
text: .text%__1cHMatcherVinit_first_stack_mask6M_v_;
text: .text%__1cFArenaNmove_contents6Mp0_1_;
@@ -1972,7 +1843,6 @@
text: .text%__1cHRetNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIConDNodeGOpcode6kM_i_;
text: .text%__1cObranchConFNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cTresource_free_bytes6FpcI_v_;
text: .text%__1cNmethodOopDescbDbuild_interpreter_method_data6FnMmethodHandle_pnGThread__v_;
text: .text%__1cRcompL_reg_conNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cNMemoryManagerHoops_do6MpnKOopClosure__v_;
@@ -1981,10 +1851,8 @@
text: .text%__1cPmethodDataKlassIallocate6MnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cKoopFactoryOnew_methodData6FnMmethodHandle_pnGThread__pnRmethodDataOopDesc__;
text: .text%__1cIAndLNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cKCodeBuffer2t6MpCi_v_;
text: .text%__1cVshrL_reg_imm6_L2INodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cLConvL2INodeIIdentity6MpnOPhaseTransform__pnENode__;
-text: .text%__1cIciMethodRinstructions_size6M_i_;
text: .text%__1cSmulI_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cCosXthread_local_storage_at6Fi_pv_;
text: .text%__1cMindIndexOperNconstant_disp6kM_i_: ad_sparc.o;
@@ -2013,10 +1881,8 @@
text: .text%__1cSconvI2D_helperNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUPSGenerationCountersKupdate_all6M_v_: psGenerationCounters.o;
text: .text%__1cQComputeCallStackHdo_long6M_v_: generateOopMap.o;
-text: .text%__1cKTypeOopPtrSmake_from_constant6FpnIciObject__pk0_;
text: .text%__1cQregP_to_stkPNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOGenerateOopMapHppstore6MpnNCellTypeState_i_v_;
-text: .text%__1cJTimeStampSticks_since_update6kM_x_;
text: .text%__1cQmodI_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIMulINodeImul_ring6kMpknEType_3_3_;
text: .text%__1cURethrowExceptionNodeIpipeline6kM_pknIPipeline__;
@@ -2027,18 +1893,15 @@
text: .text%__1cIModINodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cKklassKlassIoop_size6kMpnHoopDesc__i_;
text: .text%__1cJcmpOpOperHgreater6kM_i_: ad_sparc_clone.o;
-text: .text%__1cJimmL0OperJconstantL6kM_x_: ad_sparc_clone.o;
text: .text%__1cJimmI0OperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cFStateM_sub_Op_ConL6MpknENode__v_;
text: .text%__1cOloadConL13NodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cNObjectMonitorHis_busy6kM_i_;
text: .text%JVM_GetClassNameUTF;
text: .text%__1cKloadUBNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cIXorINodeGadd_id6kM_pknEType__: classes.o;
text: .text%__1cFStateM_sub_Op_AndI6MpknENode__v_;
text: .text%__1cVshrL_reg_imm6_L2INodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cKcmpOpFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cLRuntimeStubHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cTmembar_volatileNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJloadFNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cFStateL_sub_Op_OrI6MpknENode__v_;
@@ -2059,14 +1922,11 @@
text: .text%__1cFTypeFEmake6Ff_pk0_;
text: .text%__1cIimmFOperJconstantF6kM_f_: ad_sparc_clone.o;
text: .text%__1cEUTF8Ounicode_length6Fpkc_i_;
-text: .text%__1cCosRcurrent_thread_id6F_i_;
text: .text%__1cUSafepointSynchronizeFblock6FpnKJavaThread__v_;
text: .text%__1cOGenerateOopMapJppdupswap6Mipkc_v_;
-text: .text%__1cJttyLockerbCbreak_tty_lock_for_safepoint6Fi_v_;
text: .text%__1cSmembar_acquireNodeIadr_type6kM_pknHTypePtr__;
text: .text%__1cPorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIPhaseCFGOinsert_goto_at6MII_v_;
-text: .text%__1cITypeLongFwiden6kMpknEType__3_;
text: .text%__1cSThreadLocalStoragePget_thread_slow6F_pnGThread__;
text: .text%__1cPCallRuntimeNodeGOpcode6kM_i_;
text: .text%__1cJcmpOpOperNgreater_equal6kM_i_: ad_sparc_clone.o;
@@ -2074,7 +1934,6 @@
text: .text%__1cMindIndexOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cMindIndexOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%JVM_FindClassFromClass;
-text: .text%__1cRshrP_reg_imm5NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cObranchConFNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cQshrI_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cbDjava_lang_reflect_ConstructorFclazz6FpnHoopDesc__2_;
@@ -2092,12 +1951,10 @@
text: .text%__1cMloadConFNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cKcmpOpPOperNgreater_equal6kM_i_: ad_sparc_clone.o;
text: .text%__1cLRShiftLNodeLbottom_type6kM_pknEType__: classes.o;
-text: .text%__1cKimmL13OperJconstantL6kM_x_: ad_sparc_clone.o;
text: .text%__1cSTailCalljmpIndNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreLNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cGIfNodeMdominated_by6MpnENode_pnMPhaseIterGVN__v_;
text: .text%__1cOcompiledVFrame2t6MpknFframe_pknLRegisterMap_pnKJavaThread_pnJScopeDesc__v_;
-text: .text%__1cJScopeDesc2t6MpknHnmethod_i_v_;
text: .text%__1cQshlI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOGenerateOopMapJdo_astore6Mi_v_;
text: .text%__1cbFunnecessary_membar_volatileNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -2127,7 +1984,6 @@
text: .text%__1cPconvF2D_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cLOptoRuntimebBcomplete_monitor_enter_Type6F_pknITypeFunc__;
text: .text%__1cIGraphKitLshared_lock6MpnENode__pnMFastLockNode__;
-text: .text%__1cPcmpFastLockNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNloadConP0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRorI_reg_imm13NodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperEless6kM_i_: ad_sparc_clone.o;
@@ -2135,7 +1991,6 @@
text: .text%__1cRLowMemoryDetectorWdetect_after_gc_memory6FpnKMemoryPool__v_;
text: .text%lwp_mutex_init: os_solaris.o;
text: .text%__1cRsubI_zero_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cFframeLnmethods_do6M_v_;
text: .text%__1cQjava_lang_ThreadGthread6FpnHoopDesc__pnKJavaThread__;
text: .text%__1cQnotemp_iRegIOperEtype6kM_pknEType__: ad_sparc.o;
text: .text%__1cITemplateIbytecode6kM_nJBytecodesECode__;
@@ -2174,11 +2029,9 @@
text: .text%__1cSxorI_reg_imm13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cOMacroAssemblerFalign6Mi_v_;
text: .text%__1cRappend_interfaces6FnOobjArrayHandle_ripnPobjArrayOopDesc__v_;
-text: .text%__1cKManagementJtimestamp6F_x_;
text: .text%__1cIPSOldGenPupdate_counters6M_v_;
text: .text%__1cQshrI_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
-text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
text: .text%__1cNinstanceKlassbFlookup_method_in_all_interfaces6kMpnNsymbolOopDesc_2_pnNmethodOopDesc__;
text: .text%__1cTloadL_unalignedNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cJloadLNodeOmemory_operand6kM_pknIMachOper__;
@@ -2222,7 +2075,6 @@
text: .text%__1cKC2CompilerOcompile_method6MpnFciEnv_pnIciMethod_i_v_;
text: .text%JVM_GetClassLoader;
text: .text%__1cNCompileBrokerZinvoke_compiler_on_method6FpnLCompileTask__v_;
-text: .text%__1cCosRelapsed_frequency6F_x_;
text: .text%__1cFStateP_sub_Op_ConvL2I6MpknENode__v_;
text: .text%__1cOPhaseIdealLoopLdo_split_if6MpnENode__v_;
text: .text%__1cLAccessFlagsRatomic_clear_bits6Mi_v_;
@@ -2249,11 +2101,9 @@
text: .text%__1cYDebugInformationRecorderHcopy_to6MpnHnmethod__v_;
text: .text%__1cVExceptionHandlerTableHcopy_to6MpnHnmethod__v_;
text: .text%__1cJCodeCacheGcommit6FpnICodeBlob__v_;
-text: .text%__1cFVTuneOcreate_nmethod6FpnHnmethod__v_;
text: .text%__1cHnmethodQcopy_scopes_data6MpCi_v_;
text: .text%__1cFciEnvVnum_inlined_bytecodes6kM_i_;
text: .text%__1cWImplicitExceptionTableHcopy_to6MpnHnmethod__v_;
-text: .text%__1cLOopRecorderHcopy_to6MpnICodeBlob__v_;
text: .text%__1cIciMethodRbuild_method_data6M_v_;
text: .text%__1cHCompileIOptimize6M_v_;
text: .text%__1cHCompileLFinish_Warm6M_v_;
@@ -2287,7 +2137,6 @@
text: .text%__1cNloadConL0NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQComputeCallStackGdo_int6M_v_: generateOopMap.o;
text: .text%__1cXmembar_acquire_lockNodeIadr_type6kM_pknHTypePtr__;
-text: .text%__1cKPSYoungGenRcapacity_in_bytes6kM_I_;
text: .text%__1cNSafepointBlobbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_: codeBlob.o;
text: .text%__1cOloadConI13NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJloadSNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2299,7 +2148,6 @@
text: .text%__1cLBoxLockNodeDcmp6kMrknENode__I_;
text: .text%__1cSCompiledStaticCallSset_to_interpreted6MnMmethodHandle_pC_v_;
text: .text%__1cSCompiledStaticCallJfind_stub6M_pC_;
-text: .text%__1cRNativeMovConstRegIset_data6Mi_v_;
text: .text%__1cFParsebLincrement_and_test_invocation_counter6Mi_v_;
text: .text%__1cSsafePoint_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMTailCallNodeGOpcode6kM_i_;
@@ -2325,7 +2173,6 @@
text: .text%__1cKPerfMemoryMmark_updated6F_v_;
text: .text%__1cSobjArrayKlassKlassbCallocate_objArray_klass_impl6FnYobjArrayKlassKlassHandle_inLKlassHandle_pnGThread__pnMklassOopDesc__;
text: .text%__1cIPerfData2t6MnJCounterNS_pkcn0AFUnits_n0ALVariability__v_;
-text: .text%__1cKPerfMemoryFalloc6FI_pc_;
text: .text%__1cLStrCompNodeKmatch_edge6kMI_I_;
text: .text%__1cQmulL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cILocation2t6MpnTDebugInfoReadStream__v_;
@@ -2359,13 +2206,11 @@
text: .text%__1cRbranchLoopEndNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cQaddF_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cKcmpOpUOperHgreater6kM_i_: ad_sparc_clone.o;
-text: .text%__1cUParallelScavengeHeapEused6kM_I_;
text: .text%__1cIDivINodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cQmulF_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cQxorI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWCallLeafNoFPDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLcmpD_ccNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cWCallLeafNoFPDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadINodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cbBopt_virtual_call_RelocationLstatic_stub6M_pC_;
text: .text%__1cNTemplateTableDdef6FnJBytecodesECode_inITosState_3pFi_vi_v_;
@@ -2392,8 +2237,6 @@
text: .text%__1cIimmLOperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cFParseOmerge_new_path6Mi_v_;
text: .text%__1cQregP_to_stkPNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cQjava_lang_StringGoffset6FpnHoopDesc__i_;
-text: .text%__1cQjava_lang_StringFvalue6FpnHoopDesc__pnQtypeArrayOopDesc__;
text: .text%__1cQjava_lang_StringScreate_from_symbol6FnMsymbolHandle_pnGThread__nGHandle__;
text: .text%__1cSmembar_releaseNodeLout_RegMask6kM_rknHRegMask__;
text: .text%jni_NewByteArray: jni.o;
@@ -2402,7 +2245,6 @@
text: .text%__1cQSystemDictionarybAvalidate_protection_domain6FnTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cKDictionaryVadd_protection_domain6MiInTinstanceKlassHandle_nGHandle_2pnGThread__v_;
text: .text%__1cFParseLdo_newarray6MnJBasicType__v_;
-text: .text%__1cPmethodDataKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cNmethodOopDescKklass_name6kM_pnNsymbolOopDesc__;
text: .text%__1cSconvI2D_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cLstoreP0NodeLout_RegMask6kM_rknHRegMask__;
@@ -2427,7 +2269,6 @@
text: .text%__1cZInterpreterMacroAssemblerZget_2_byte_integer_at_bcp6MipnMRegisterImpl_2n0ALsignedOrNot_n0AKsetCCOrNot__v_;
text: .text%__1cQcmovI_reg_gtNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cURethrowExceptionNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPfieldDescriptorSlong_initial_value6kM_x_;
text: .text%__1cISubLNodeDsub6kMpknEType_3_3_;
text: .text%__1cPciObjArrayKlass2t6MnLKlassHandle__v_;
text: .text%__1cJLoadINodeMstore_Opcode6kM_i_: classes.o;
@@ -2443,7 +2284,6 @@
text: .text%jni_GetStringCritical: jni.o;
text: .text%__1cHciKlassSsuper_check_offset6M_I_;
text: .text%__1cPciObjArrayKlassGloader6M_pnHoopDesc__: ciObjArrayKlass.o;
-text: .text%__1cWCallLeafNoFPDirectNodeKmethod_set6Mi_v_;
text: .text%__1cWCallLeafNoFPDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cPICStubInterfaceRcode_size_to_size6kMi_i_: icBuffer.o;
@@ -2454,7 +2294,6 @@
text: .text%__1cSxorI_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cOcompiledVFrameGsender6kM_pnGvframe__;
text: .text%__1cZInterpreterMacroAssemblerDpop6MnITosState__v_;
-text: .text%__1cGThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cQPlaceholderTableHoops_do6MpnKOopClosure__v_;
text: .text%__1cXJvmtiCurrentBreakpointsHoops_do6FpnKOopClosure__v_;
text: .text%__1cNMemoryServiceHoops_do6FpnKOopClosure__v_;
@@ -2462,7 +2301,6 @@
text: .text%__1cKJNIHandlesHoops_do6FpnKOopClosure__v_;
text: .text%__1cQSystemDictionaryRpreloaded_oops_do6FpnKOopClosure__v_;
text: .text%__1cLJvmtiExportHoops_do6FpnKOopClosure__v_;
-text: .text%__1cIVMThreadHoops_do6MpnKOopClosure__v_;
text: .text%__1cKJNIHandlesMweak_oops_do6FpnRBoolObjectClosure_pnKOopClosure__v_;
text: .text%__1cSObjectSynchronizerHoops_do6FpnKOopClosure__v_;
text: .text%__1cMFlatProfilerHoops_do6FpnKOopClosure__v_;
@@ -2481,7 +2319,6 @@
text: .text%__1cKReflectionTget_parameter_types6FnMmethodHandle_ippnHoopDesc_pnGThread__nOobjArrayHandle__;
text: .text%__1cRtestI_reg_immNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cOcmovIL_immNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cJimmU6OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cHRegMask2t6M_v_: matcher.o;
text: .text%__1cOGenerateOopMapIcopy_cts6MpnNCellTypeState_2_i_;
text: .text%__1cNObjectMonitorGEnterI6MpnGThread__v_;
@@ -2494,7 +2331,6 @@
text: .text%__1cPPerfDataManagerMcounter_name6Fpkc2_pc_;
text: .text%__1cIModLNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cMloadConFNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cbBjava_lang_ref_SoftReferenceJset_clock6Fx_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersbBupdate_counters_from_policy6M_v_;
text: .text%__1cXTraceMemoryManagerStats2T6M_v_;
text: .text%__1cQSystemDictionaryHoops_do6FpnKOopClosure__v_;
@@ -2510,8 +2346,6 @@
text: .text%__1cKPSYoungGenPupdate_counters6M_v_;
text: .text%__1cWThreadLocalAllocBufferbFaccumulate_statistics_before_gc6F_v_;
text: .text%__1cWThreadLocalAllocBufferQresize_all_tlabs6F_v_;
-text: .text%__1cPGCMemoryManagerIgc_begin6M_v_;
-text: .text%__1cPGCMemoryManagerGgc_end6M_v_;
text: .text%__1cRLowMemoryDetectorRdetect_low_memory6F_v_;
text: .text%__1cNMemoryServiceStrack_memory_usage6F_v_;
text: .text%__1cbAPSGCAdaptivePolicyCountersPupdate_counters6M_v_;
@@ -2527,19 +2361,16 @@
text: .text%__1cQaddF_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUSafepointSynchronizeFbegin6F_v_;
text: .text%__1cKarrayKlassTallocate_arrayArray6MiipnGThread__pnPobjArrayOopDesc__;
-text: .text%__1cONMethodSweeperFsweep6F_v_;
text: .text%__1cCosbAmake_polling_page_readable6F_v_;
text: .text%__1cUSafepointSynchronizeDend6F_v_;
text: .text%__1cOcmovII_immNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cORuntimeServiceUrecord_safepoint_end6F_v_;
-text: .text%__1cKimmU13OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cQshlL_reg_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cUcompU_iReg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetCallerClass;
text: .text%__1cNSignatureInfoHdo_byte6M_v_: bytecode.o;
text: .text%__1cOcmovPP_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cKstoreBNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSobjArrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cLstoreC0NodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cTloadL_unalignedNodePoper_input_base6kM_I_: ad_sparc_misc.o;
text: .text%__1cICmpFNodeGOpcode6kM_i_;
@@ -2551,7 +2382,6 @@
text: .text%jni_GetFieldID: jni.o;
text: .text%__1cJLoadPNodeMstore_Opcode6kM_i_: classes.o;
text: .text%__1cLstoreB0NodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cZInterpreterMacroAssemblerbAget_cache_and_index_at_bcp6MpnMRegisterImpl_2i_v_;
text: .text%__1cHTypeAryFxdual6kM_pknEType__;
text: .text%__1cMtlsLoadPNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIVMThreadHexecute6FpnMVM_Operation__v_;
@@ -2582,9 +2412,6 @@
text: .text%__1cQinstanceRefKlassZacquire_pending_list_lock6FpnJBasicLock__v_;
text: .text%__1cZSerialOldToYoungRootsTaskEname6M_pc_: psTasks.o;
text: .text%__1cKPSYoungGenLswap_spaces6M_v_;
-text: .text%__1cUParallelScavengeHeapQresize_young_gen6MII_v_;
-text: .text%__1cKPSYoungGenGresize6MII_v_;
-text: .text%__1cKPSYoungGenNresize_spaces6MII_v_;
text: .text%__1cSPSPromotionManagerbBvm_thread_promotion_manager6F_p0_;
text: .text%__1cUWaitForBarrierGCTaskIwait_for6M_v_;
text: .text%__1cPVM_GC_OperationNdoit_epilogue6M_v_;
@@ -2626,9 +2453,7 @@
text: .text%__1cRloadConP_pollNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNObjectMonitorHRecycle6M_v_;
text: .text%__1cNSharedRuntimeSfind_callee_method6FpnKJavaThread_pnGThread__nMmethodHandle__;
-text: .text%__1cMloadConLNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJloadDNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
-text: .text%__1cQSystemDictionaryTresolve_from_stream6FnMsymbolHandle_nGHandle_2pnPClassFileStream_pnGThread__pnMklassOopDesc__;
text: .text%__1cQstkI_to_regFNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cQregP_to_stkPNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cZInterpreterMacroAssemblerFpop_i6MpnMRegisterImpl__v_;
@@ -2636,9 +2461,7 @@
text: .text%__1cNSharedRuntimeTreresolve_call_site6FpnKJavaThread_pnGThread__nMmethodHandle__;
text: .text%__1cYcompareAndSwapL_boolNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cNSCMemProjNodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cYcompareAndSwapL_boolNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIProjNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cIPSOldGenMmax_gen_size6M_I_: psOldGen.o;
text: .text%__1cKExceptionsK_throw_msg6FpnGThread_pkcipnNsymbolOopDesc_4_v_;
text: .text%__1cSdivL_reg_imm13NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cbDVM_ParallelGCFailedAllocationEdoit6M_v_;
@@ -2659,7 +2482,6 @@
text: .text%__1cKCMovePNodeGOpcode6kM_i_;
text: .text%__1cLstoreC0NodeIpipeline6kM_pknIPipeline__;
text: .text%JVM_MonitorWait;
-text: .text%__1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_;
text: .text%__1cIAddLNodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cHciKlass2t6MpnIciSymbol_p0_v_;
text: .text%__1cGciType2t6MpnHciKlass__v_;
@@ -2678,7 +2500,6 @@
text: .text%__1cKCompiledICSset_ic_destination6MpC_v_;
text: .text%__1cQaddD_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cCosTset_native_priority6FpnGThread_i_nIOSReturn__;
-text: .text%__1cPPerfDataManagerUcreate_long_variable6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongVariable__;
text: .text%__1cQset_lwp_priority6Fiii_i_;
text: .text%__1cQjava_lang_StringTcreate_oop_from_str6FpkcpnGThread__pnHoopDesc__;
text: .text%jni_NewStringUTF: jni.o;
@@ -2689,7 +2510,6 @@
text: .text%__1cKcmpOpUOperKless_equal6kM_i_: ad_sparc_clone.o;
text: .text%__1cPciInstanceKlassNloader_handle6M_pnI_jobject__;
text: .text%__1cPciInstanceKlassYprotection_domain_handle6M_pnI_jobject__;
-text: .text%__1cUParallelScavengeHeapIcapacity6kM_I_;
text: .text%__1cNmethodOopDescKjmethod_id6M_pnK_jmethodID__;
text: .text%__1cSsubL_reg_reg_2NodeIpipeline6kM_pknIPipeline__;
text: .text%JVM_DefineClassWithSource;
@@ -2705,7 +2525,6 @@
text: .text%__1cSThreadLocalStorageSset_thread_in_slot6FpnGThread__v_;
text: .text%get_thread;
text: .text%__1cKstoreCNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cSThreadLocalStoragebBget_thread_via_cache_slowly6FIi_pnGThread__;
text: .text%__1cSThreadLocalStorageKset_thread6FpnGThread__v_;
text: .text%jni_CallIntMethod: jni.o;
text: .text%__1cSThreadLocalStorageNpd_set_thread6FpnGThread__v_;
@@ -2735,7 +2554,6 @@
text: .text%__1cQmulF_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_5pnGThread__v_;
text: .text%__1cXSignatureHandlerLibraryOpd_set_handler6FpC_v_;
-text: .text%__1cSInterpreterRuntimeZSignatureHandlerGeneratorIgenerate6MX_v_;
text: .text%JVM_IsPrimitiveClass;
text: .text%__1cJimmU6OperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cOPhaseIdealLoopUpeeled_dom_test_elim6MpnNIdealLoopTree_rnJNode_List__v_;
@@ -2758,7 +2576,6 @@
text: .text%__1cOcmovII_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSdivL_reg_imm13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cTloadL_unalignedNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cNSharedRuntimeDd2l6Fd_x_;
text: .text%__1cJStubQdDueueRrequest_committed6Mi_pnEStub__;
text: .text%__1cRInlineCacheBufferRic_stub_code_size6F_i_;
text: .text%__1cFStateP_sub_Op_RShiftL6MpknENode__v_;
@@ -2808,7 +2625,6 @@
text: .text%__1cSdivL_reg_imm13NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRloadConP_pollNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cIModINodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cZCallDynamicJavaDirectNodeKmethod_set6Mi_v_;
text: .text%__1cZCallDynamicJavaDirectNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cSconvD2I_helperNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZCallDynamicJavaDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2846,7 +2662,6 @@
text: .text%__1cYjava_lang_reflect_MethodTset_parameter_types6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodTset_exception_types6FpnHoopDesc_2_v_;
text: .text%__1cYjava_lang_reflect_MethodNset_modifiers6FpnHoopDesc_i_v_;
-text: .text%__1cOimmI_32_63OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cYjava_lang_reflect_MethodIset_name6FpnHoopDesc_2_v_;
text: .text%__1cbFpartialSubtypeCheck_vs_zeroNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cSsubL_reg_reg_2NodeLout_RegMask6kM_rknHRegMask__;
@@ -2855,7 +2670,6 @@
text: .text%jni_GetMethodID: jni.o;
text: .text%__1cQshlL_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cIMulINodeJideal_reg6kM_I_: classes.o;
-text: .text%__1cNminI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshlI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOloadConL13NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNObjectMonitorGnotify6MpnGThread__v_;
@@ -2877,7 +2691,6 @@
text: .text%__1cNloadConL0NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cKo1RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cSsubL_reg_reg_1NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cIBytecodeIset_code6MnJBytecodesECode__v_;
text: .text%__1cQshrL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cRsarL_reg_imm6NodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cJloadFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -2921,7 +2734,6 @@
text: .text%__1cCosHSolarisPhotspot_sigmask6FpnGThread__v_;
text: .text%__1cCosHSolarisVinit_thread_fpu_state6F_v_;
text: .text%__1cFTypeFFxmeet6kMpknEType__3_;
-text: .text%__1cCosScurrent_stack_size6F_I_;
text: .text%__1cIOSThreadNpd_initialize6M_v_;
text: .text%__1cCosScurrent_stack_base6F_pC_;
text: .text%__1cIOSThread2t6MpFpv_i1_v_;
@@ -2948,7 +2760,6 @@
text: .text%__1cKCompiledICMstub_address6kM_pC_;
text: .text%__1cJvmSymbolsOsignature_type6FpnNsymbolOopDesc__nJBasicType__;
text: .text%__1cQsubL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cQmodI_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cISubDNodeGOpcode6kM_i_;
text: .text%__1cQmodI_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPfieldDescriptorLannotations6kM_pnQtypeArrayOopDesc__;
@@ -2984,13 +2795,10 @@
text: .text%__1cNimmP_pollOperJnum_edges6kM_I_: ad_sparc_clone.o;
text: .text%__1cRtestI_reg_immNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cJMemRegionMintersection6kMk0_0_;
-text: .text%__1cKJavaThread2t6MpFp0pnGThread__vI_v_;
text: .text%__1cKJavaThreadDrun6M_v_;
-text: .text%__1cNSafepointBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
text: .text%__1cPjava_lang_ClassOprimitive_type6FpnHoopDesc__nJBasicType__;
text: .text%JVM_IsArrayClass;
text: .text%jni_CallStaticVoidMethod: jni.o;
-text: .text%__1cPPerfDataManagerTcreate_long_counter6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnPPerfLongCounter__;
text: .text%__1cLConvF2DNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cNsymbolOopDescWas_klass_external_name6kM_pkc_;
text: .text%__1cHnmethodbDpreserve_callee_argument_oops6MnFframe_pknLRegisterMap_pnKOopClosure__v_;
@@ -3017,14 +2825,12 @@
text: .text%__1cINodeHashEgrow6M_v_;
text: .text%__1cOGenerateOopMapPdo_monitorenter6Mi_v_;
text: .text%__1cOcmovPP_regNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
-text: .text%__1cMloadConDNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cIMaxINodeIadd_ring6kMpknEType_3_3_;
text: .text%__1cJloadSNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOGenerateOopMapLcompute_map6MpnGThread__v_;
text: .text%__1cLConvF2DNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%JVM_Open;
text: .text%__1cRInvocationCounterFreset6M_v_;
-text: .text%__1cRCompilationPolicybIreset_counter_for_invocation_event6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMap2t6MnMmethodHandle__v_;
text: .text%__1cOGenerateOopMapRdo_interpretation6M_v_;
text: .text%__1cIRetTableRcompute_ret_table6MnMmethodHandle__v_;
@@ -3042,7 +2848,6 @@
text: .text%__1cNPerfByteArray2t6MnJCounterNS_pkcnIPerfDataFUnits_n0CLVariability_i_v_;
text: .text%__1cIGraphKitRcreate_and_map_if6MpnENode_2ff_pnGIfNode__: generateOptoStub.o;
text: .text%__1cQjava_lang_ThreadIpriority6FpnHoopDesc__nOThreadPriority__;
-text: .text%__1cQjava_lang_ThreadJstackSize6FpnHoopDesc__x_;
text: .text%__1cMLinkResolverYresolve_interface_method6FrnMmethodHandle_rnLKlassHandle_nSconstantPoolHandle_ipnGThread__v_;
text: .text%__1cKJavaThreadHprepare6MpnI_jobject_nOThreadPriority__v_;
text: .text%__1cTLoadD_unalignedNodeGOpcode6kM_i_;
@@ -3077,7 +2882,6 @@
text: .text%__1cOGenerateOopMapEppop6MpnNCellTypeState__v_;
text: .text%__1cSTailCalljmpIndNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cQsubF_reg_regNodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cRNativeMovConstRegEdata6kM_i_;
text: .text%__1cbFunnecessary_membar_volatileNodeLbottom_type6kM_pknEType__: ad_sparc_misc.o;
text: .text%__1cLcmpF_ccNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNObjectMonitorJnotifyAll6MpnGThread__v_;
@@ -3144,7 +2948,6 @@
text: .text%__1cIMinINodeIadd_ring6kMpknEType_3_3_;
text: .text%JVM_GetInheritedAccessControlContext;
text: .text%__1cPPerfDataManagerWcreate_string_constant6FnJCounterNS_pkc3pnGThread__pnSPerfStringConstant__;
-text: .text%__1cNmaxI_eRegNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%JVM_NativePath;
text: .text%__1cOMacroAssemblerNflush_windows6M_v_;
text: .text%__1cSsubD_regD_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3157,19 +2960,15 @@
text: .text%__1cKstorePNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cQObjectStartArrayFreset6M_v_;
text: .text%__1cPconvI2D_memNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHThreadsHoops_do6FpnKOopClosure__v_;
text: .text%__1cQaddD_reg_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cLConvF2INodeGOpcode6kM_i_;
text: .text%__1cVCallRuntimeDirectNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cJHashtableGunlink6MpnRBoolObjectClosure__v_;
text: .text%__1cIPSOldGenPadjust_pointers6M_v_;
-text: .text%__1cVCallRuntimeDirectNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOcmovPI_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cIPSOldGenHcompact6M_v_;
text: .text%__1cMtlsLoadPNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cLcmpF_ccNodeErule6kM_I_: ad_sparc_misc.o;
-text: .text%__1cVCallRuntimeDirectNodeKmethod_set6Mi_v_;
-text: .text%__1cKimmI11OperIconstant6kM_i_: ad_sparc_clone.o;
text: .text%__1cQcmovI_reg_gtNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cLstoreP0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOcmovIF_regNodeErule6kM_I_: ad_sparc_misc.o;
@@ -3177,7 +2976,6 @@
text: .text%jni_GetStaticMethodID: jni.o;
text: .text%__1cZInterpreterMacroAssemblerUupdate_mdp_by_offset6MipnMRegisterImpl__v_;
text: .text%__1cRtestI_reg_immNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHnmethodbAmake_not_entrant_or_zombie6Mi_v_;
text: .text%__1cPconvF2D_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cOPhaseIdealLoopKdo_peeling6MpnNIdealLoopTree_rnJNode_List__v_;
text: .text%__1cOcmovLL_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
@@ -3210,7 +3008,6 @@
text: .text%__1cSaddP_reg_imm13NodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cXconvI2D_regDHi_regDNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cKstoreFNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cPPerfDataManagerUcreate_long_constant6FnJCounterNS_pkcnIPerfDataFUnits_xpnGThread__pnQPerfLongConstant__;
text: .text%__1cOMacroAssemblerNget_vm_result6MpnMRegisterImpl__v_;
text: .text%__1cQsubF_reg_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerbIcompute_extra_locals_size_in_bytes6MpnMRegisterImpl_22_v_;
@@ -3250,7 +3047,6 @@
text: .text%jni_NewObjectV: jni.o;
text: .text%__1cOcmovLI_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cPciInstanceKlassLjava_mirror6M_pnKciInstance__;
-text: .text%__1cCosHSolarisKmmap_chunk6FpcIii_2_;
text: .text%__1cXPartialSubtypeCheckNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%jni_EnsureLocalCapacity;
text: .text%__1cLstoreI0NodeOmemory_operand6kM_pknIMachOper__;
@@ -3278,7 +3074,6 @@
text: .text%__1cJloadLNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cISubDNodeLbottom_type6kM_pknEType__: classes.o;
text: .text%__1cZInterpreterMacroAssemblerUprofile_taken_branch6MpnMRegisterImpl_2_v_;
-text: .text%__1cLResourceObj2n6FIn0APallocation_type__pv_;
text: .text%__1cNSafePointNodeQpeek_monitor_box6kM_pnENode__;
text: .text%__1cFTypeFFxdual6kM_pknEType__;
text: .text%__1cICmpFNodeFValue6kMpnOPhaseTransform__pknEType__;
@@ -3290,7 +3085,6 @@
text: .text%__1cLConvI2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cOcmovLL_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cRorI_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cTloadL_unalignedNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cTloadL_unalignedNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cKloadUBNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cXconvI2D_regDHi_regDNodeIpipeline6kM_pknIPipeline__;
@@ -3320,7 +3114,6 @@
text: .text%__1cWloadConI_x41f00000NodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cODeoptimizationbJupdate_method_data_from_interpreter6FnQmethodDataHandle_ii_v_;
text: .text%__1cIimmDOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cFframeZinterpreter_frame_set_mdx6Mi_v_;
text: .text%__1cOstackSlotLOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotLOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cTloadD_unalignedNodeErule6kM_I_: ad_sparc_misc.o;
@@ -3371,7 +3164,6 @@
text: .text%__1cYjava_lang_reflect_MethodFclazz6FpnHoopDesc__2_;
text: .text%__1cYinternal_word_RelocationGtarget6M_pC_;
text: .text%__1cJStubQdDueueKremove_all6M_v_;
-text: .text%__1cMloadConFNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cPconvI2D_memNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cPorL_reg_regNodeMideal_Opcode6kM_i_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerLindex_check6MpnMRegisterImpl_2i22_v_;
@@ -3405,12 +3197,10 @@
text: .text%__1cQComputeCallStackIdo_array6Mii_v_: generateOopMap.o;
text: .text%__1cKPSYoungGenKprecompact6M_v_;
text: .text%__1cXjava_lang_reflect_FieldEslot6FpnHoopDesc__i_;
-text: .text%__1cSconvD2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cMnegF_regNodeLout_RegMask6kM_rknHRegMask__;
text: .text%__1cHThreadsLgc_prologue6F_v_;
text: .text%__1cHThreadsLgc_epilogue6F_v_;
text: .text%__1cPconvI2L_regNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cPconvD2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4nGHandle_pnGThread__v_;
text: .text%__1cUParallelScavengeHeapHcollect6MnHGCCauseFCause__v_;
text: .text%__1cRCardTableModRefBSFclear6MnJMemRegion__v_;
@@ -3441,18 +3231,12 @@
text: .text%__1cUPSMarkSweepDecoratorbHset_destination_decorator_tenured6F_v_;
text: .text%__1cKDictionaryYalways_strong_classes_do6MpnKOopClosure__v_;
text: .text%__1cQmulL_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
-text: .text%__1cUPSAdaptiveSizePolicyUmajor_collection_end6MInHGCCauseFCause__v_;
text: .text%__1cUPSAdaptiveSizePolicyWmajor_collection_begin6M_v_;
text: .text%__1cIUniverseWupdate_heap_info_at_gc6F_v_;
-text: .text%__1cJPSPermGenQcompute_new_size6MI_v_;
text: .text%__1cKPSYoungGenHcompact6M_v_;
text: .text%JVM_GetSystemPackage;
text: .text%__1cPfieldDescriptorTfloat_initial_value6kM_f_;
text: .text%__1cKPSYoungGenPadjust_pointers6M_v_;
-text: .text%__1cQUncommonTrapBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cSDeoptimizationBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cNExceptionBlobHoops_do6MpnKOopClosure__v_: codeBlob.o;
-text: .text%__1cJCodeCacheHoops_do6FpnKOopClosure__v_;
text: .text%__1cJCodeCacheLgc_prologue6F_v_;
text: .text%__1cJCodeCacheLgc_epilogue6F_v_;
text: .text%__1cIXorINodeIadd_ring6kMpknEType_3_3_;
@@ -3508,16 +3292,12 @@
text: .text%jni_GetEnv;
text: .text%__1cJloadDNodeOmemory_operand6kM_pknIMachOper__;
text: .text%__1cQstkI_to_regINodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cSstring_compareNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_: interpreterRT_sparc.o;
text: .text%Unsafe_GetNativeByte;
text: .text%JVM_NanoTime;
-text: .text%__1cCosNjavaTimeNanos6F_x_;
text: .text%__1cOMacroAssemblerOrestore_thread6MkpnMRegisterImpl__v_;
-text: .text%__1cVcompiledICHolderKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
text: .text%__1cQandL_reg_regNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cIimmFOperJnum_edges6kM_I_: ad_sparc_clone.o;
-text: .text%__1cHThreadsLnmethods_do6F_v_;
text: .text%__1cKcmpOpFOperGnegate6M_v_: ad_sparc_clone.o;
text: .text%__1cICodeBlobFflush6M_v_;
text: .text%__1cFParseMdo_anewarray6M_v_;
@@ -3537,8 +3317,6 @@
text: .text%__1cKo2RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cQregI_to_stkINodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cbCAbstractInterpreterGeneratorVgenerate_method_entry6MnTAbstractInterpreterKMethodKind__pC_;
-text: .text%__1cParrayKlassKlassRoop_copy_contents6MpnSPSPromotionManager_pnHoopDesc__v_;
-text: .text%__1cFVTuneOdelete_nmethod6FpnHnmethod__v_;
text: .text%__1cWloadConI_x43300000NodeIpipeline6kM_pknIPipeline__;
text: .text%__1cFParseQdo_monitor_enter6M_v_;
text: .text%__1cPorL_reg_regNodeIpipeline6kM_pknIPipeline__;
@@ -3547,13 +3325,11 @@
text: .text%__1cVMoveL2D_stack_regNodeIpipeline6kM_pknIPipeline__;
text: .text%__1cNTemplateTableEiop26Fn0AJOperation__v_;
text: .text%__1cZInterpreterMacroAssemblerMdispatch_via6MnITosState_ppC_v_;
-text: .text%__1cSmodL_reg_imm13NodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cRshrI_reg_imm5NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cJJavaCallsLcall_static6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnGThread__v_;
text: .text%__1cSsubL_reg_reg_2NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cUmulL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cIDivDNodeFValue6kMpnOPhaseTransform__pknEType__;
-text: .text%__1cPconvI2F_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNinstanceKlassUfind_interface_field6kMpnNsymbolOopDesc_2pnPfieldDescriptor__pnMklassOopDesc__;
text: .text%__1cOstackSlotFOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cUdivL_reg_imm13_1NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
@@ -3561,7 +3337,6 @@
text: .text%__1cOcmovLL_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%__1cJname2type6Fpkc_nJBasicType__;
text: .text%__1cSmulL_reg_imm13NodeIpipeline6kM_pknIPipeline__;
-text: .text%__1cPBytecode_invokeLresult_type6kMpnGThread__nJBasicType__;
text: .text%__1cOloadConL13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cKcmpOpFOperHgreater6kM_i_: ad_sparc_clone.o;
text: .text%__1cIDivDNodeJideal_reg6kM_I_: classes.o;
@@ -3569,7 +3344,6 @@
text: .text%__1cOcmovDF_regNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cOcmovIF_immNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%__1cSconvI2F_helperNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cKVtableStub2n6FIi_pv_;
text: .text%__1cbEJvmtiDynamicCodeEventCollector2T6M_v_;
text: .text%__1cOtypeArrayKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: typeArrayKlass.o;
text: .text%__1cPconvD2F_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
@@ -3589,7 +3363,6 @@
text: .text%__1cKCompiledICSset_to_megamorphic6MpnICallInfo_nJBytecodesECode_pnGThread__v_;
text: .text%Unsafe_StaticFieldOffset;
text: .text%__1cQmulI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cNTemplateTableXresolve_cache_and_index6FipnMRegisterImpl_2_v_;
text: .text%__1cQaddI_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cOcmovLI_regNodeHtwo_adr6kM_I_: ad_sparc_misc.o;
text: .text%JVM_GetClassContext;
@@ -3685,7 +3458,6 @@
text: .text%__1cULinearLeastSquareFit2t6MI_v_;
text: .text%__1cQdivL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cPciObjectFactoryTget_unloaded_method6MpnPciInstanceKlass_pnIciSymbol_4_pnIciMethod__;
-text: .text%__1cNReservedSpace2t6MI_v_;
text: .text%__1cSCardTableExtensionVresize_covered_region6MnJMemRegion__v_;
text: .text%__1cOloadI_fregNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cRCardTableModRefBSVresize_covered_region6MnJMemRegion__v_;
@@ -3705,7 +3477,6 @@
text: .text%__1cOMacroAssemblerEfneg6MnRFloatRegisterImplFWidth_p13_v_;
text: .text%__1cXNativeSignatureIteratorJdo_double6M_v_: interpreterRT_sparc.o;
text: .text%__1cRtestI_reg_immNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
-text: .text%__1cNSpaceCounters2t6MpkciIpnMMutableSpace_pnSGenerationCounters__v_;
text: .text%__1cLcmpF_ccNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cMNativeLookupTbase_library_lookup6Fpkc22_pC_;
text: .text%jni_SetObjectField: jni.o;
@@ -3725,7 +3496,6 @@
text: .text%Unsafe_AllocateMemory;
text: .text%__1cSandL_reg_imm13NodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%JVM_GetLastErrorString;
-text: .text%__1cQmodL_reg_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableElop26Fn0AJOperation__v_;
text: .text%__1cQjava_lang_ThreadKset_daemon6FpnHoopDesc__v_;
text: .text%__1cNTemplateTableEfop26Fn0AJOperation__v_;
@@ -3738,7 +3508,6 @@
text: .text%__1cLConvF2INodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cIciMethod2t6MpnPciInstanceKlass_pnIciSymbol_4_v_;
text: .text%__1cRcompL_reg_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
-text: .text%__1cLconvI2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cLConvD2FNodeFValue6kMpnOPhaseTransform__pknEType__;
text: .text%__1cSconvD2I_helperNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cRsubI_zero_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
@@ -3775,12 +3544,10 @@
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cTjava_lang_ThrowableLset_message6FpnHoopDesc_2_v_;
text: .text%__1cOGenerateOopMapTret_jump_targets_do6MpnOBytecodeStream_pFp0ipi_vi4_v_;
-text: .text%__1cPconvI2D_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%Unsafe_SetMemory;
text: .text%__1cKstfSSFNodeErule6kM_I_: ad_sparc_misc.o;
text: .text%__1cZInterpreterMacroAssemblerOthrow_if_not_x6MnJAssemblerJCondition_pCpnMRegisterImpl__v_;
text: .text%__1cVMoveF2I_stack_regNodeLout_RegMask6kM_rknHRegMask__;
-text: .text%__1cHTypePtrKadd_offset6kMi_pk0_;
text: .text%__1cOcmovLI_regNodeHsize_of6kM_I_: ad_sparc_misc.o;
text: .text%__1cNloadConL0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cOcmovPI_regNodeEsize6kMpnNPhaseRegAlloc__I_;
@@ -3798,7 +3565,6 @@
text: .text%__1cQCompilerCounters2t6MpkcipnGThread__v_;
text: .text%__1cOGenerateOopMapRdo_multianewarray6Mii_v_;
text: .text%__1cNCompileBrokerUcompiler_thread_loop6F_v_;
-text: .text%__1cbFpartialSubtypeCheck_vs_zeroNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%jni_CallStaticObjectMethodV: jni.o;
text: .text%__1cNTemplateTableMfast_xaccess6FnITosState__v_;
text: .text%__1cJMemRegionFminus6kMk0_0_;
@@ -3836,12 +3602,10 @@
text: .text%__1cNTemplateTableHcall_VM6FpnMRegisterImpl_pC2_v_;
text: .text%JVM_RegisterSignal;
text: .text%JVM_FindSignal;
-text: .text%__1cTMaskFillerForNative2t6MnMmethodHandle_pIi_v_: oopMapCache.o;
text: .text%jio_vsnprintf;
text: .text%__1cQshrL_reg_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cZInterpreterMacroAssemblerTprofile_switch_case6MpnMRegisterImpl_222_v_;
text: .text%__1cOCompilerThread2t6MpnMCompileQdDueue_pnQCompilerCounters__v_;
-text: .text%__1cOPSVirtualSpace2t6MnNReservedSpace_I_v_;
text: .text%__1cVcompiler_thread_entry6FpnKJavaThread_pnGThread__v_: thread.o;
text: .text%__1cNIdealLoopTreeUmerge_many_backedges6MpnOPhaseIdealLoop__v_;
text: .text%__1cODeoptimizationLUnrollBlock2T6M_v_;
@@ -3857,17 +3621,13 @@
text: .text%__1cZInterpreterMacroAssemblerWprofile_switch_default6MpnMRegisterImpl__v_;
text: .text%__1cTAbstract_VM_VersionOvm_info_string6F_pkc_;
text: .text%__1cJStubQdDueue2t6MpnNStubInterface_ipnFMutex_pkc_v_;
-text: .text%__1cSconvF2I_helperNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cHThreadsbFdeoptimized_wrt_marked_nmethods6F_v_;
-text: .text%__1cbAconvL2D_reg_slow_fxtofNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cOstackSlotFOperEdisp6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperEbase6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
text: .text%__1cOstackSlotFOperFindex6kMpnNPhaseRegAlloc_pknENode_i_i_: ad_sparc.o;
-text: .text%__1cPconvF2I_regNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cNTemplateTableGlconst6Fi_v_;
text: .text%__1cLstoreC0NodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cMPeriodicTaskGenroll6M_v_;
-text: .text%__1cMPeriodicTask2t6MI_v_;
text: .text%__1cNTemplateTableHcastore6F_v_;
text: .text%Unsafe_CompareAndSwapObject;
text: .text%__1cLNamedThread2t6M_v_;
@@ -3913,7 +3673,6 @@
text: .text%__1cLOptoRuntimeIl2f_Type6F_pknITypeFunc__;
text: .text%__1cOMacroAssemblerUcalc_mem_param_words6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerLprofile_ret6MnITosState_pnMRegisterImpl_3_v_;
-text: .text%__1cZInterpreterMacroAssemblerUprofile_virtual_call6MpnMRegisterImpl_2_v_;
text: .text%__1cZInterpreterMacroAssemblerMprofile_call6MpnMRegisterImpl__v_;
text: .text%__1cLklassVtableQindex_of_miranda6MpnNsymbolOopDesc_2_i_;
text: .text%__1cZInterpreterMacroAssemblerSupdate_mdp_for_ret6MnITosState_pnMRegisterImpl__v_;
@@ -3922,7 +3681,6 @@
text: .text%__1cZInterpreterMacroAssemblerOthrow_if_not_26MpCpnMRegisterImpl_rnFLabel__v_;
text: .text%__1cZInterpreterMacroAssemblerQthrow_if_not_1_x6MnJAssemblerJCondition_rnFLabel__v_;
text: .text%__1cZInterpreterMacroAssemblerZget_4_byte_integer_at_bcp6MipnMRegisterImpl_2n0AKsetCCOrNot__v_;
-text: .text%__1cCosHrealloc6FpvI_1_;
text: .text%__1cODeoptimizationVdeoptimize_dependents6F_i_;
text: .text%__1cFStateO_sub_Op_CMoveL6MpknENode__v_;
text: .text%__1cZInterpreterMacroAssemblerRaccess_local_long6MpnMRegisterImpl_2_v_;
@@ -4001,19 +3759,15 @@
text: .text%__1cVMoveF2I_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cVMoveL2D_stack_regNodeEemit6kMrnKCodeBuffer_pnNPhaseRegAlloc__v_;
text: .text%__1cWinvocationCounter_init6F_v_;
-text: .text%__1cKTypeOopPtrEmake6FnHTypePtrDPTR_i_pk0_;
text: .text%__1cKTypeOopPtrFxdual6kM_pknEType__;
text: .text%__1cFParseMjump_if_join6MpnENode_2_2_;
text: .text%__1cSinstanceKlassKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cSinstanceKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: instanceKlassKlass.o;
-text: .text%__1cLconvP2BNodeGExpand6MpnFState_rnJNode_List__pnIMachNode__;
text: .text%__1cETypeRInitialize_shared6FpnHCompile__v_;
text: .text%__1cQinstanceRefKlassZupdate_nonstatic_oop_maps6FpnMklassOopDesc__v_;
text: .text%__1cVInterfaceSupport_init6F_v_;
-text: .text%__1cZInterpreterMacroAssemblerSsuper_call_VM_leaf6MpnMRegisterImpl_pC2_v_;
text: .text%__1cPGenerationSizerQinitialize_flags6M_v_: parallelScavengeHeap.o;
text: .text%__1cZInterpreterMacroAssemblerPdispatch_normal6MnITosState__v_;
-text: .text%__1cJTimeStampMmilliseconds6kM_x_;
text: .text%__1cDhpiZinitialize_socket_library6F_i_;
text: .text%__1cDhpiYinitialize_get_interface6FpnIvm_calls__v_;
text: .text%__1cWInlineCacheBuffer_init6F_v_;
@@ -4030,14 +3784,12 @@
text: .text%__1cMexit_globals6F_v_;
text: .text%__1cSset_init_completed6F_v_;
text: .text%__1cNinstanceKlassZrelease_C_heap_structures6M_v_;
-text: .text%__1cJTimeStampJupdate_to6Mx_v_;
text: .text%__1cUParallelScavengeHeapItop_addr6kM_ppnIHeapWord__: parallelScavengeHeap.o;
text: .text%__1cCosHSolarisXinstall_signal_handlers6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interp_masm_sparc.o;
text: .text%__1cQinterpreter_init6F_v_;
text: .text%__1cbCAbstractInterpreterGenerator2t6MpnJStubQdDueue__v_;
text: .text%__1cRlwp_priocntl_init6F_i_: os_solaris.o;
-text: .text%__1cNpriocntl_stub6FinGidtype_lipc_l_: os_solaris.o;
text: .text%__1cbCAbstractInterpreterGeneratorMgenerate_all6M_v_;
text: .text%__1cCosLsignal_wait6F_i_;
text: .text%__1cCosNsignal_notify6Fi_v_;
@@ -4050,7 +3802,6 @@
text: .text%__1cUParallelScavengeHeapNgc_threads_do6kMpnNThreadClosure__v_;
text: .text%__1cUParallelScavengeHeapYpermanent_object_iterate6MpnNObjectClosure__v_;
text: .text%__1cKcmpOpFOperNgreater_equal6kM_i_: ad_sparc_clone.o;
-text: .text%__1cUParallelScavengeHeapMmax_capacity6kM_I_;
text: .text%__1cUParallelScavengeHeapPpost_initialize6M_v_;
text: .text%__1cUParallelScavengeHeapKinitialize6M_i_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
@@ -4067,8 +3818,6 @@
text: .text%__1cNIdealLoopTreeQsplit_outer_loop6MpnOPhaseIdealLoop__v_;
text: .text%__1cRLowMemoryDetectorKinitialize6F_v_;
text: .text%__1cRLowMemoryDetectorbGlow_memory_detector_thread_entry6FpnKJavaThread_pnGThread__v_;
-text: .text%__1cNReservedSpaceUpage_align_size_down6FI_I_;
-text: .text%__1cNReservedSpaceYallocation_align_size_up6FI_I_;
text: .text%__1cTloadL_unalignedNodeEsize6kMpnNPhaseRegAlloc__I_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: machnode.o;
text: .text%__1cPmanagement_init6F_v_;
@@ -4076,7 +3825,6 @@
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vmStructs.o;
text: .text%__1cJvmSymbolsKinitialize6FpnGThread__v_;
text: .text%__1cKManagementKinitialize6FpnGThread__v_;
-text: .text%__1cKManagementWrecord_vm_startup_time6Fxx_v_;
text: .text%__1cIVMThreadGcreate6F_v_;
text: .text%__1cIVMThreadDrun6M_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: management.o;
@@ -4103,11 +3851,9 @@
text: .text%__1cQvtableStubs_init6F_v_;
text: .text%__1cKi0RegPOperKin_RegMask6kMi_pknHRegMask__;
text: .text%__1cKg1RegPOperKin_RegMask6kMi_pknHRegMask__;
-text: .text%__1cFVTuneEexit6F_v_;
text: .text%__1cLmethodKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: methodKlass.o;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: methodLiveness.o;
text: .text%__1cMMutableSpaceOobject_iterate6MpnNObjectClosure__v_;
-text: .text%__1cKvtune_init6F_v_;
text: .text%__1cKmutex_init6F_v_;
text: .text%__1cQaccessFlags_init6F_v_;
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpnMRegisterImpl_pC222_v_;
@@ -4136,7 +3882,6 @@
text: .text%__1cQJNI_FastGetFieldbBgenerate_fast_get_int_field6F_pC_;
text: .text%__1cQJNI_FastGetFieldbCgenerate_fast_get_long_field6F_pC_;
text: .text%__1cTtypeArrayKlassKlassSallocate_permanent6kMrnLKlassHandle_ipnGThread__pv_: typeArrayKlassKlass.o;
-text: .text%__1cIUniversePcheck_alignment6FIIpkc_v_;
text: .text%__1cIUniverseHgenesis6FpnGThread__v_;
text: .text%__1cVquicken_jni_functions6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
@@ -4222,7 +3967,6 @@
text: .text%__1cHCompileRpd_compiler2_init6F_v_;
text: .text%__1cKC2CompilerKinitialize6M_v_;
text: .text%__1cRCardTableModRefBS2t6MnJMemRegion_i_v_;
-text: .text%__1cRCardTableModRefBSbBct_max_alignment_constraint6F_I_;
text: .text%__1cMciArrayKlass2t6MpnIciSymbol_ipnHciKlass__v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: relocInfo.o;
text: .text%__1cMciKlassKlassEmake6F_p0_;
@@ -4267,13 +4011,9 @@
text: .text%__1cNTemplateTableSshouldnotreachhere6F_v_;
text: .text%__1cNTemplateTableLaconst_null6F_v_;
text: .text%__1cKPSYoungGenbCreset_survivors_after_shrink6M_v_;
-text: .text%__1cKPSYoungGenQlimit_gen_shrink6MI_I_;
-text: .text%__1cKPSYoungGenRavailable_to_live6M_I_;
text: .text%__1cSDeoptimizationBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_iiii_p0_;
text: .text%__1cLOptoRuntimeUmultianewarray2_Type6F_pknITypeFunc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: ad_sparc_pipeline.o;
-text: .text%__1cUAdjoiningGenerations2t6MnNReservedSpace_IIIIIII_v_;
-text: .text%__1cWAdjoiningVirtualSpaces2t6MnNReservedSpace_III_v_;
text: .text%__1cOchunkpool_init6F_v_;
text: .text%__1cFChunkbDstart_chunk_pool_cleaner_task6F_v_;
text: .text%__1cJArgumentsWinit_system_properties6F_v_;
@@ -4367,7 +4107,6 @@
text: .text%__1cNGCTaskManagerKthreads_do6MpnNThreadClosure__v_;
text: .text%__1cPPerfDataManagerHdestroy6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
-text: .text%__1cJGenRemSetYmax_alignment_constraint6Fn0AEName__I_;
text: .text%__1cWResolveOopMapConflictsUdo_potential_rewrite6MpnGThread__nMmethodHandle__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: generateOopMap.o;
text: .text%__1cOThreadCriticalKinitialize6F_v_;
@@ -4389,7 +4128,6 @@
text: .text%__1cFframeVinterpreter_frame_mdp6kM_pC_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: phase.o;
text: .text%__1cKPerfMemoryUdelete_memory_region6F_v_;
-text: .text%__1cKPerfMemoryUcreate_memory_region6FI_v_;
text: .text%__1cbBcleanup_sharedmem_resources6Fpkc_v_: perfMemory_solaris.o;
text: .text%__1cPperfMemory_exit6F_v_;
text: .text%__1cPperfMemory_init6F_v_;
@@ -4420,9 +4158,6 @@
text: .text%__1cNTemplateTableMfast_icaload6F_v_;
text: .text%__1cNTemplateTableGsaload6F_v_;
text: .text%__1cKPSYoungGenPinitialize_work6M_v_;
-text: .text%__1cKPSYoungGenKinitialize6MnNReservedSpace_I_v_;
-text: .text%__1cKPSYoungGenYinitialize_virtual_space6MnNReservedSpace_I_v_;
-text: .text%__1cKPSYoungGen2t6MIII_v_;
text: .text%__1cNTemplateTableHaload_06F_v_;
text: .text%__1cNTemplateTableGistore6F_v_;
text: .text%__1cNTemplateTableGlstore6F_v_;
@@ -4440,15 +4175,10 @@
text: .text%__1cNTemplateTableMlookupswitch6F_v_;
text: .text%__1cNTemplateTableRfast_linearswitch6F_v_;
text: .text%__1cNTemplateTableRfast_binaryswitch6F_v_;
-text: .text%__1cNCompileBrokerVinit_compiler_threads6Fi_v_;
-text: .text%__1cJPSPermGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cNCompileBrokerQset_should_block6F_v_;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: compileBroker.o;
text: .text%__1cNTemplateTableIgetfield6Fi_v_;
text: .text%__1cNTemplateTableJgetstatic6Fi_v_;
-text: .text%__1cIPSOldGenKinitialize6MnNReservedSpace_Ipkci_v_;
-text: .text%__1cIPSOldGen2t6MIIIpkci_v_;
-text: .text%__1cIPSOldGen2t6MnNReservedSpace_IIIIpkci_v_;
text: .text%__1cVcompiledICHolderKlassMcreate_klass6FpnGThread__pnMklassOopDesc__;
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: psMarkSweep.o;
text: .text%__1cNTemplateTableIputfield6Fi_v_;
--- a/hotspot/make/solaris/makefiles/sparcWorks.make Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/make/solaris/makefiles/sparcWorks.make Tue Nov 02 22:15:35 2010 -0700
@@ -51,9 +51,9 @@
VALIDATED_COMPILER_REVS := 5.8
VALIDATED_C_COMPILER_REVS := 5.8
else
- # Validated compilers for JDK7 are SS12 (5.9) or SS12 update 1 (5.10)
- VALIDATED_COMPILER_REVS := 5.9 5.10
- VALIDATED_C_COMPILER_REVS := 5.9 5.10
+ # Validated compiler for JDK7 is SS12 update 1 + patches (5.10)
+ VALIDATED_COMPILER_REVS := 5.10
+ VALIDATED_C_COMPILER_REVS := 5.10
endif
# Warning messages about not using the above validated versions
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -3094,11 +3094,10 @@
void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg,
Register temp_reg,
Label& wrong_method_type) {
- if (UseCompressedOops) unimplemented("coop"); // field accesses must decode
assert_different_registers(mtype_reg, mh_reg, temp_reg);
// compare method type against that of the receiver
RegisterOrConstant mhtype_offset = delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg);
- ld_ptr(mh_reg, mhtype_offset, temp_reg);
+ load_heap_oop(mh_reg, mhtype_offset, temp_reg);
cmp(temp_reg, mtype_reg);
br(Assembler::notEqual, false, Assembler::pn, wrong_method_type);
delayed()->nop();
@@ -3112,16 +3111,15 @@
void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg,
Register temp_reg) {
assert_different_registers(vmslots_reg, mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented("coop"); // field accesses must decode
// load mh.type.form.vmslots
if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) {
// hoist vmslots into every mh to avoid dependent load chain
- ld( Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
+ ld( Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
} else {
Register temp2_reg = vmslots_reg;
- ld_ptr(Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)), temp2_reg);
- ld_ptr(Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)), temp2_reg);
- ld( Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
+ load_heap_oop(Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)), temp2_reg);
+ load_heap_oop(Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)), temp2_reg);
+ ld( Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
}
}
@@ -3130,9 +3128,8 @@
assert(mh_reg == G3_method_handle, "caller must put MH object in G3");
assert_different_registers(mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented("coop"); // field accesses must decode
-
// pick out the interpreted side of the handler
+ // NOTE: vmentry is not an oop!
ld_ptr(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg), temp_reg);
// off we go...
@@ -4653,6 +4650,11 @@
}
}
+void MacroAssembler::load_heap_oop(Register s1, RegisterOrConstant s2, Register d) {
+ if (s2.is_constant()) load_heap_oop(s1, s2.as_constant(), d);
+ else load_heap_oop(s1, s2.as_register(), d);
+}
+
void MacroAssembler::store_heap_oop(Register d, Register s1, Register s2) {
if (UseCompressedOops) {
assert(s1 != d && s2 != d, "not enough registers");
--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -825,6 +825,12 @@
// test if -4096 <= x <= 4095
static bool is_simm13(int x) { return is_simm(x, 13); }
+ // test if label is in simm16 range in words (wdisp16).
+ bool is_in_wdisp16_range(Label& L) {
+ intptr_t d = intptr_t(pc()) - intptr_t(target(L));
+ return is_simm(d, 18);
+ }
+
enum ASIs { // page 72, v9
ASI_PRIMARY = 0x80,
ASI_PRIMARY_LITTLE = 0x88
@@ -2103,6 +2109,7 @@
void load_heap_oop(const Address& s, Register d);
void load_heap_oop(Register s1, Register s2, Register d);
void load_heap_oop(Register s1, int simm13a, Register d);
+ void load_heap_oop(Register s1, RegisterOrConstant s2, Register d);
void store_heap_oop(Register d, Register s1, Register s2);
void store_heap_oop(Register d, Register s1, int simm13a);
void store_heap_oop(Register d, const Address& a, int offset = 0);
@@ -2225,7 +2232,7 @@
void stop(const char* msg); // prints msg, dumps registers and stops execution
void warn(const char* msg); // prints msg, but don't stop
void untested(const char* what = "");
- void unimplemented(const char* what = "") { char* b = new char[1024]; sprintf(b, "unimplemented: %s", what); stop(b); }
+ void unimplemented(const char* what = "") { char* b = new char[1024]; jio_snprintf(b, 1024, "unimplemented: %s", what); stop(b); }
void should_not_reach_here() { stop("should not reach here"); }
void print_CPU_state();
--- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -32,6 +32,7 @@
: _throw_index_out_of_bounds_exception(throw_index_out_of_bounds_exception)
, _index(index)
{
+ assert(info != NULL, "must have info");
_info = new CodeEmitInfo(info);
}
@@ -424,8 +425,13 @@
Register pre_val_reg = pre_val()->as_register();
ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false);
- __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
- pre_val_reg, _continuation);
+ if (__ is_in_wdisp16_range(_continuation)) {
+ __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
+ pre_val_reg, _continuation);
+ } else {
+ __ cmp(pre_val_reg, G0);
+ __ brx(Assembler::equal, false, Assembler::pn, _continuation);
+ }
__ delayed()->nop();
__ call(Runtime1::entry_for(Runtime1::Runtime1::g1_pre_barrier_slow_id));
@@ -451,8 +457,13 @@
assert(new_val()->is_register(), "Precondition.");
Register addr_reg = addr()->as_pointer_register();
Register new_val_reg = new_val()->as_register();
- __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
- new_val_reg, _continuation);
+ if (__ is_in_wdisp16_range(_continuation)) {
+ __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
+ new_val_reg, _continuation);
+ } else {
+ __ cmp(new_val_reg, G0);
+ __ brx(Assembler::equal, false, Assembler::pn, _continuation);
+ }
__ delayed()->nop();
__ call(Runtime1::entry_for(Runtime1::Runtime1::g1_post_barrier_slow_id));
--- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -420,7 +420,8 @@
}
if (compilation()->env()->dtrace_method_probes()) {
- jobject2reg(method()->constant_encoding(), O0);
+ __ mov(G2_thread, O0);
+ jobject2reg(method()->constant_encoding(), O1);
__ call(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), relocInfo::runtime_call_type);
__ delayed()->nop();
}
--- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -311,7 +311,7 @@
void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
bool needs_range_check = true;
bool use_length = x->length() != NULL;
bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
@@ -386,7 +386,7 @@
void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.load_item();
@@ -398,7 +398,7 @@
CodeEmitInfo* info_for_exception = NULL;
if (x->needs_null_check()) {
- info_for_exception = state_for(x, x->lock_stack_before());
+ info_for_exception = state_for(x);
}
// this CodeEmitInfo must not have the xhandlers because here the
@@ -409,7 +409,7 @@
void LIRGenerator::do_MonitorExit(MonitorExit* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.dont_load_item();
@@ -664,7 +664,7 @@
// Use temps to avoid kills
LIR_Opr t1 = FrameMap::G1_opr;
LIR_Opr t2 = FrameMap::G3_opr;
- LIR_Opr addr = new_pointer_register();
+ LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
// get address of field
obj.load_item();
@@ -871,10 +871,11 @@
// This instruction can be deoptimized in the slow path : use
// O0 as result register.
const LIR_Opr reg = result_register_for(x->type());
-
+#ifndef PRODUCT
if (PrintNotLoaded && !x->klass()->is_loaded()) {
- tty->print_cr(" ###class not loaded at new bci %d", x->bci());
+ tty->print_cr(" ###class not loaded at new bci %d", x->printable_bci());
}
+#endif
CodeEmitInfo* info = state_for(x, x->state());
LIR_Opr tmp1 = FrameMap::G1_oop_opr;
LIR_Opr tmp2 = FrameMap::G3_oop_opr;
@@ -1018,7 +1019,7 @@
obj.load_item();
LIR_Opr out_reg = rlock_result(x);
CodeStub* stub;
- CodeEmitInfo* info_for_exception = state_for(x, x->state()->copy_locks());
+ CodeEmitInfo* info_for_exception = state_for(x);
if (x->is_incompatible_class_change_check()) {
assert(patching_info == NULL, "can't patch this");
--- a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -64,7 +64,7 @@
_first_reg = pd_first_callee_saved_reg;
_last_reg = pd_last_callee_saved_reg;
return true;
- } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT) {
+ } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT || cur->type() == T_ADDRESS) {
_first_reg = pd_first_cpu_reg;
_last_reg = pd_last_allocatable_cpu_reg;
return true;
--- a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -27,6 +27,14 @@
#define __ _masm->
+#ifdef PRODUCT
+#define BLOCK_COMMENT(str) /* nothing */
+#else
+#define BLOCK_COMMENT(str) __ block_comment(str)
+#endif
+
+#define BIND(label) bind(label); BLOCK_COMMENT(#label ":")
+
address MethodHandleEntry::start_compiled_entry(MacroAssembler* _masm,
address interpreted_entry) {
// Just before the actual machine code entry point, allocate space
@@ -90,8 +98,8 @@
}
// given the MethodType, find out where the MH argument is buried
- __ ld_ptr(Address(G5_method_type, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O0_argslot);
- __ ldsw( Address(O0_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O0_argslot);
+ __ load_heap_oop(Address(G5_method_type, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, O1_scratch)), O0_argslot);
+ __ ldsw( Address(O0_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O0_argslot);
__ ld_ptr(__ argument_address(O0_argslot), G3_method_handle);
__ check_method_handle_type(G5_method_type, G3_method_handle, O1_scratch, wrong_method_type);
@@ -105,6 +113,7 @@
static void verify_argslot(MacroAssembler* _masm, Register argslot_reg, Register temp_reg, const char* error_message) {
// Verify that argslot lies within (Gargs, FP].
Label L_ok, L_bad;
+ BLOCK_COMMENT("{ verify_argslot");
#ifdef _LP64
__ add(FP, STACK_BIAS, temp_reg);
__ cmp(argslot_reg, temp_reg);
@@ -119,6 +128,7 @@
__ bind(L_bad);
__ stop(error_message);
__ bind(L_ok);
+ BLOCK_COMMENT("} verify_argslot");
}
#endif
@@ -175,6 +185,7 @@
// for (temp = sp + size; temp < argslot; temp++)
// temp[-size] = temp[0]
// argslot -= size;
+ BLOCK_COMMENT("insert_arg_slots {");
RegisterOrConstant offset = __ regcon_sll_ptr(arg_slots, LogBytesPerWord, temp3_reg);
// Keep the stack pointer 2*wordSize aligned.
@@ -187,7 +198,7 @@
{
Label loop;
- __ bind(loop);
+ __ BIND(loop);
// pull one word down each time through the loop
__ ld_ptr(Address(temp_reg, 0), temp2_reg);
__ st_ptr(temp2_reg, Address(temp_reg, offset));
@@ -199,6 +210,7 @@
// Now move the argslot down, to point to the opened-up space.
__ add(argslot_reg, offset, argslot_reg);
+ BLOCK_COMMENT("} insert_arg_slots");
}
@@ -235,6 +247,7 @@
}
#endif // ASSERT
+ BLOCK_COMMENT("remove_arg_slots {");
// Pull up everything shallower than argslot.
// Then remove the excess space on the stack.
// The stacked return address gets pulled up with everything else.
@@ -246,7 +259,7 @@
__ sub(argslot_reg, wordSize, temp_reg); // source pointer for copy
{
Label loop;
- __ bind(loop);
+ __ BIND(loop);
// pull one word up each time through the loop
__ ld_ptr(Address(temp_reg, 0), temp2_reg);
__ st_ptr(temp2_reg, Address(temp_reg, offset));
@@ -265,29 +278,35 @@
const int TwoWordAlignmentMask = right_n_bits(LogBytesPerWord + 1);
RegisterOrConstant masked_offset = __ regcon_andn_ptr(offset, TwoWordAlignmentMask, temp_reg);
__ add(SP, masked_offset, SP);
+ BLOCK_COMMENT("} remove_arg_slots");
}
#ifndef PRODUCT
extern "C" void print_method_handle(oop mh);
void trace_method_handle_stub(const char* adaptername,
- oop mh) {
-#if 0
- intptr_t* entry_sp,
- intptr_t* saved_sp,
- intptr_t* saved_bp) {
- // called as a leaf from native code: do not block the JVM!
- intptr_t* last_sp = (intptr_t*) saved_bp[frame::interpreter_frame_last_sp_offset];
- intptr_t* base_sp = (intptr_t*) saved_bp[frame::interpreter_frame_monitor_block_top_offset];
- printf("MH %s mh="INTPTR_FORMAT" sp=("INTPTR_FORMAT"+"INTX_FORMAT") stack_size="INTX_FORMAT" bp="INTPTR_FORMAT"\n",
- adaptername, (intptr_t)mh, (intptr_t)entry_sp, (intptr_t)(saved_sp - entry_sp), (intptr_t)(base_sp - last_sp), (intptr_t)saved_bp);
- if (last_sp != saved_sp)
- printf("*** last_sp="INTPTR_FORMAT"\n", (intptr_t)last_sp);
-#endif
-
+ oopDesc* mh) {
printf("MH %s mh="INTPTR_FORMAT"\n", adaptername, (intptr_t) mh);
print_method_handle(mh);
}
+void MethodHandles::trace_method_handle(MacroAssembler* _masm, const char* adaptername) {
+ if (!TraceMethodHandles) return;
+ BLOCK_COMMENT("trace_method_handle {");
+ // save: Gargs, O5_savedSP
+ __ save_frame(16);
+ __ set((intptr_t) adaptername, O0);
+ __ mov(G3_method_handle, O1);
+ __ mov(G3_method_handle, L3);
+ __ mov(Gargs, L4);
+ __ mov(G5_method_type, L5);
+ __ call_VM_leaf(L7, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
+
+ __ mov(L3, G3_method_handle);
+ __ mov(L4, Gargs);
+ __ mov(L5, G5_method_type);
+ __ restore();
+ BLOCK_COMMENT("} trace_method_handle");
+}
#endif // PRODUCT
// which conversion op types are implemented here?
@@ -348,18 +367,8 @@
}
address interp_entry = __ pc();
- if (UseCompressedOops) __ unimplemented("UseCompressedOops");
-#ifndef PRODUCT
- if (TraceMethodHandles) {
- // save: Gargs, O5_savedSP
- __ save(SP, -16*wordSize, SP);
- __ set((intptr_t) entry_name(ek), O0);
- __ mov(G3_method_handle, O1);
- __ call_VM_leaf(Lscratch, CAST_FROM_FN_PTR(address, trace_method_handle_stub));
- __ restore(SP, 16*wordSize, SP);
- }
-#endif // PRODUCT
+ trace_method_handle(_masm, entry_name(ek));
switch ((int) ek) {
case _raise_exception:
@@ -413,7 +422,7 @@
case _invokestatic_mh:
case _invokespecial_mh:
{
- __ ld_ptr(G3_mh_vmtarget, G5_method); // target is a methodOop
+ __ load_heap_oop(G3_mh_vmtarget, G5_method); // target is a methodOop
__ verify_oop(G5_method);
// Same as TemplateTable::invokestatic or invokespecial,
// minus the CP setup and profiling:
@@ -468,7 +477,7 @@
// minus the CP setup and profiling:
__ load_method_handle_vmslots(O0_argslot, G3_method_handle, O1_scratch);
Register O1_intf = O1_scratch;
- __ ld_ptr(G3_mh_vmtarget, O1_intf);
+ __ load_heap_oop(G3_mh_vmtarget, O1_intf);
__ ldsw(G3_dmh_vmindex, G5_index);
__ ld_ptr(__ argument_address(O0_argslot, -1), G3_method_handle);
__ null_check(G3_method_handle, oopDesc::klass_offset_in_bytes());
@@ -523,7 +532,7 @@
insert_arg_slots(_masm, arg_slots * stack_move_unit(), arg_mask, O0_argslot, O1_scratch, O2_scratch, G5_index);
// Store bound argument into the new stack slot:
- __ ld_ptr(G3_bmh_argument, O1_scratch);
+ __ load_heap_oop(G3_bmh_argument, O1_scratch);
if (arg_type == T_OBJECT) {
__ st_ptr(O1_scratch, Address(O0_argslot, 0));
} else {
@@ -541,12 +550,12 @@
}
if (direct_to_method) {
- __ ld_ptr(G3_mh_vmtarget, G5_method); // target is a methodOop
+ __ load_heap_oop(G3_mh_vmtarget, G5_method); // target is a methodOop
__ verify_oop(G5_method);
__ jump_indirect_to(G5_method_fie, O1_scratch);
__ delayed()->nop();
} else {
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle); // target is a methodOop
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle); // target is a methodOop
__ verify_oop(G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
@@ -556,7 +565,7 @@
case _adapter_retype_only:
case _adapter_retype_raw:
// Immediately jump to the next MH layer:
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
// This is OK when all parameter types widen.
// It is also OK when a return type narrows.
@@ -572,8 +581,8 @@
Address vmarg = __ argument_address(O0_argslot);
// What class are we casting to?
- __ ld_ptr(G3_amh_argument, G5_klass); // This is a Class object!
- __ ld_ptr(Address(G5_klass, java_lang_Class::klass_offset_in_bytes()), G5_klass);
+ __ load_heap_oop(G3_amh_argument, G5_klass); // This is a Class object!
+ __ load_heap_oop(Address(G5_klass, java_lang_Class::klass_offset_in_bytes()), G5_klass);
Label done;
__ ld_ptr(vmarg, O1_scratch);
@@ -590,14 +599,14 @@
// If we get here, the type check failed!
__ ldsw(G3_amh_vmargslot, O0_argslot); // reload argslot field
- __ ld_ptr(G3_amh_argument, O3_scratch); // required class
+ __ load_heap_oop(G3_amh_argument, O3_scratch); // required class
__ ld_ptr(vmarg, O2_scratch); // bad object
__ jump_to(AddressLiteral(from_interpreted_entry(_raise_exception)), O0_argslot);
__ delayed()->mov(Bytecodes::_checkcast, O1_scratch); // who is complaining?
__ bind(done);
// Get the new MH:
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -676,7 +685,7 @@
__ st(O1_scratch, vmarg);
// Get the new MH:
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -721,7 +730,7 @@
ShouldNotReachHere();
}
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -851,7 +860,7 @@
}
}
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -895,7 +904,7 @@
__ brx(Assembler::less, false, Assembler::pt, loop);
__ delayed()->nop(); // FILLME
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
@@ -913,7 +922,7 @@
remove_arg_slots(_masm, G5_stack_move, O0_argslot, O1_scratch, O2_scratch, O3_scratch);
- __ ld_ptr(G3_mh_vmtarget, G3_method_handle);
+ __ load_heap_oop(G3_mh_vmtarget, G3_method_handle);
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
}
break;
--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -2586,6 +2586,8 @@
__ restore();
#endif
+ assert_clean_int(O2_count, G1); // Make sure 'count' is clean int.
+
#ifdef ASSERT
// caller guarantees that the arrays really are different
// otherwise, we would have to make conjoint checks
@@ -2600,8 +2602,6 @@
}
#endif //ASSERT
- assert_clean_int(O2_count, G1); // Make sure 'count' is clean int.
-
checkcast_copy_entry = __ pc();
// caller can pass a 64-bit byte count here (from generic stub)
BLOCK_COMMENT("Entry:");
--- a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -43,7 +43,7 @@
// MethodHandles adapters
enum method_handles_platform_dependent_constants {
- method_handles_adapters_code_size = 12000
+ method_handles_adapters_code_size = 15000
};
class Sparc {
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -3273,7 +3273,7 @@
__ sll(Rret, LogBytesPerWord, Rret);
__ ld_ptr(Rtemp, Rret, Rret); // get return address
- __ ld_ptr(G5_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
+ __ load_heap_oop(G5_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
__ null_check(G3_method_handle);
// Adjust Rret first so Llast_SP can be same as Rret
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -7709,9 +7709,14 @@
void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg,
Register temp_reg,
Label& wrong_method_type) {
- if (UseCompressedOops) unimplemented(); // field accesses must decode
+ Address type_addr(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg));
// compare method type against that of the receiver
- cmpptr(mtype_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
+ if (UseCompressedOops) {
+ load_heap_oop(temp_reg, type_addr);
+ cmpptr(mtype_reg, temp_reg);
+ } else {
+ cmpptr(mtype_reg, type_addr);
+ }
jcc(Assembler::notEqual, wrong_method_type);
}
@@ -7723,15 +7728,14 @@
void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg,
Register temp_reg) {
assert_different_registers(vmslots_reg, mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented(); // field accesses must decode
// load mh.type.form.vmslots
if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) {
// hoist vmslots into every mh to avoid dependent load chain
movl(vmslots_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)));
} else {
Register temp2_reg = vmslots_reg;
- movptr(temp2_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
- movptr(temp2_reg, Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)));
+ load_heap_oop(temp2_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
+ load_heap_oop(temp2_reg, Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)));
movl(vmslots_reg, Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)));
}
}
@@ -7745,9 +7749,8 @@
assert(mh_reg == rcx, "caller must put MH object in rcx");
assert_different_registers(mh_reg, temp_reg);
- if (UseCompressedOops) unimplemented(); // field accesses must decode
-
// pick out the interpreted side of the handler
+ // NOTE: vmentry is not an oop!
movptr(temp_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg)));
// off we go...
@@ -8238,6 +8241,40 @@
movptr(Address(dst, oopDesc::klass_offset_in_bytes()), src);
}
+void MacroAssembler::load_heap_oop(Register dst, Address src) {
+#ifdef _LP64
+ if (UseCompressedOops) {
+ movl(dst, src);
+ decode_heap_oop(dst);
+ } else
+#endif
+ movptr(dst, src);
+}
+
+void MacroAssembler::store_heap_oop(Address dst, Register src) {
+#ifdef _LP64
+ if (UseCompressedOops) {
+ assert(!dst.uses(src), "not enough registers");
+ encode_heap_oop(src);
+ movl(dst, src);
+ } else
+#endif
+ movptr(dst, src);
+}
+
+// Used for storing NULLs.
+void MacroAssembler::store_heap_oop_null(Address dst) {
+#ifdef _LP64
+ if (UseCompressedOops) {
+ movl(dst, (int32_t)NULL_WORD);
+ } else {
+ movslq(dst, (int32_t)NULL_WORD);
+ }
+#else
+ movl(dst, (int32_t)NULL_WORD);
+#endif
+}
+
#ifdef _LP64
void MacroAssembler::store_klass_gap(Register dst, Register src) {
if (UseCompressedOops) {
@@ -8246,34 +8283,6 @@
}
}
-void MacroAssembler::load_heap_oop(Register dst, Address src) {
- if (UseCompressedOops) {
- movl(dst, src);
- decode_heap_oop(dst);
- } else {
- movq(dst, src);
- }
-}
-
-void MacroAssembler::store_heap_oop(Address dst, Register src) {
- if (UseCompressedOops) {
- assert(!dst.uses(src), "not enough registers");
- encode_heap_oop(src);
- movl(dst, src);
- } else {
- movq(dst, src);
- }
-}
-
-// Used for storing NULLs.
-void MacroAssembler::store_heap_oop_null(Address dst) {
- if (UseCompressedOops) {
- movl(dst, (int32_t)NULL_WORD);
- } else {
- movslq(dst, (int32_t)NULL_WORD);
- }
-}
-
#ifdef ASSERT
void MacroAssembler::verify_heapbase(const char* msg) {
assert (UseCompressedOops, "should be compressed");
--- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1682,24 +1682,24 @@
void load_klass(Register dst, Register src);
void store_klass(Register dst, Register src);
+ void load_heap_oop(Register dst, Address src);
+ void store_heap_oop(Address dst, Register src);
+
+ // Used for storing NULL. All other oop constants should be
+ // stored using routines that take a jobject.
+ void store_heap_oop_null(Address dst);
+
void load_prototype_header(Register dst, Register src);
#ifdef _LP64
void store_klass_gap(Register dst, Register src);
- void load_heap_oop(Register dst, Address src);
- void store_heap_oop(Address dst, Register src);
-
// This dummy is to prevent a call to store_heap_oop from
// converting a zero (like NULL) into a Register by giving
// the compiler two choices it can't resolve
void store_heap_oop(Address dst, void* dummy);
- // Used for storing NULL. All other oop constants should be
- // stored using routines that take a jobject.
- void store_heap_oop_null(Address dst);
-
void encode_heap_oop(Register r);
void decode_heap_oop(Register r);
void encode_heap_oop_not_null(Register r);
@@ -1927,7 +1927,7 @@
void untested() { stop("untested"); }
- void unimplemented(const char* what = "") { char* b = new char[1024]; jio_snprintf(b, sizeof(b), "unimplemented: %s", what); stop(b); }
+ void unimplemented(const char* what = "") { char* b = new char[1024]; jio_snprintf(b, 1024, "unimplemented: %s", what); stop(b); }
void should_not_reach_here() { stop("should not reach here"); }
--- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -83,7 +83,8 @@
: _throw_index_out_of_bounds_exception(throw_index_out_of_bounds_exception)
, _index(index)
{
- _info = info == NULL ? NULL : new CodeEmitInfo(info);
+ assert(info != NULL, "must have info");
+ _info = new CodeEmitInfo(info);
}
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -488,7 +488,9 @@
}
if (compilation()->env()->dtrace_method_probes()) {
- __ movoop(Address(rsp, 0), method()->constant_encoding());
+ __ get_thread(rax);
+ __ movptr(Address(rsp, 0), rax);
+ __ movoop(Address(rsp, sizeof(void*)), method()->constant_encoding());
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit)));
}
@@ -1939,8 +1941,6 @@
__ cmpxchgptr(newval, Address(addr, 0));
} else if (op->code() == lir_cas_int) {
__ cmpxchgl(newval, Address(addr, 0));
- } else {
- LP64_ONLY(__ cmpxchgq(newval, Address(addr, 0)));
}
#ifdef _LP64
} else if (op->code() == lir_cas_long) {
--- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -107,7 +107,7 @@
return false;
}
Constant* c = v->as_Constant();
- if (c && c->state() == NULL) {
+ if (c && c->state_before() == NULL) {
// constants of any type can be stored directly, except for
// unloaded object constants.
return true;
@@ -250,7 +250,7 @@
void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
bool needs_range_check = true;
bool use_length = x->length() != NULL;
bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
@@ -325,7 +325,7 @@
void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.load_item();
@@ -341,7 +341,7 @@
CodeEmitInfo* info_for_exception = NULL;
if (x->needs_null_check()) {
- info_for_exception = state_for(x, x->lock_stack_before());
+ info_for_exception = state_for(x);
}
// this CodeEmitInfo must not have the xhandlers because here the
// object is already locked (xhandlers expect object to be unlocked)
@@ -352,7 +352,7 @@
void LIRGenerator::do_MonitorExit(MonitorExit* x) {
- assert(x->is_root(),"");
+ assert(x->is_pinned(),"");
LIRItem obj(x->obj(), this);
obj.dont_load_item();
@@ -765,7 +765,7 @@
ShouldNotReachHere();
}
- LIR_Opr addr = new_pointer_register();
+ LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
LIR_Address* a;
if(offset.result()->is_constant()) {
a = new LIR_Address(obj.result(),
@@ -984,9 +984,11 @@
void LIRGenerator::do_NewInstance(NewInstance* x) {
+#ifndef PRODUCT
if (PrintNotLoaded && !x->klass()->is_loaded()) {
- tty->print_cr(" ###class not loaded at new bci %d", x->bci());
+ tty->print_cr(" ###class not loaded at new bci %d", x->printable_bci());
}
+#endif
CodeEmitInfo* info = state_for(x, x->state());
LIR_Opr reg = result_register_for(x->type());
LIR_Opr klass_reg = new_register(objectType);
@@ -1127,7 +1129,7 @@
obj.load_item();
// info for exceptions
- CodeEmitInfo* info_for_exception = state_for(x, x->state()->copy_locks());
+ CodeEmitInfo* info_for_exception = state_for(x);
CodeStub* stub;
if (x->is_incompatible_class_change_check()) {
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -123,11 +123,9 @@
}
// given the MethodType, find out where the MH argument is buried
- __ movptr(rdx_temp, Address(rax_mtype,
- __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
+ __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
Register rdx_vmslots = rdx_temp;
- __ movl(rdx_vmslots, Address(rdx_temp,
- __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
+ __ movl(rdx_vmslots, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
__ movptr(rcx_recv, __ argument_address(rdx_vmslots));
trace_method_handle(_masm, "invokeExact");
@@ -154,20 +152,18 @@
rcx_argslot, rbx_temp, rdx_temp);
// load up an adapter from the calling type (Java weaves this)
- __ movptr(rdx_temp, Address(rax_mtype,
- __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
+ __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
Register rdx_adapter = rdx_temp;
- // movptr(rdx_adapter, Address(rdx_temp, java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes()));
+ // __ load_heap_oop(rdx_adapter, Address(rdx_temp, java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes()));
// deal with old JDK versions:
- __ lea(rdi_temp, Address(rdx_temp,
- __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
+ __ lea(rdi_temp, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
__ cmpptr(rdi_temp, rdx_temp);
Label sorry_no_invoke_generic;
- __ jccb(Assembler::below, sorry_no_invoke_generic);
+ __ jcc(Assembler::below, sorry_no_invoke_generic);
- __ movptr(rdx_adapter, Address(rdi_temp, 0));
+ __ load_heap_oop(rdx_adapter, Address(rdi_temp, 0));
__ testptr(rdx_adapter, rdx_adapter);
- __ jccb(Assembler::zero, sorry_no_invoke_generic);
+ __ jcc(Assembler::zero, sorry_no_invoke_generic);
__ movptr(Address(rcx_argslot, 1 * Interpreter::stackElementSize), rdx_adapter);
// As a trusted first argument, pass the type being called, so the adapter knows
// the actual types of the arguments and return values.
@@ -346,7 +342,7 @@
if (stack_dump_count > 64) stack_dump_count = 48;
for (i = 0; i < stack_dump_count; i += 4) {
printf(" dump at SP[%d] "INTPTR_FORMAT": "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT"\n",
- i, &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
+ i, (intptr_t) &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
}
print_method_handle(mh);
}
@@ -431,7 +427,6 @@
}
address interp_entry = __ pc();
- if (UseCompressedOops) __ unimplemented("UseCompressedOops");
trace_method_handle(_masm, entry_name(ek));
@@ -489,7 +484,7 @@
case _invokespecial_mh:
{
Register rbx_method = rbx_temp;
- __ movptr(rbx_method, rcx_mh_vmtarget); // target is a methodOop
+ __ load_heap_oop(rbx_method, rcx_mh_vmtarget); // target is a methodOop
__ verify_oop(rbx_method);
// same as TemplateTable::invokestatic or invokespecial,
// minus the CP setup and profiling:
@@ -546,8 +541,8 @@
__ load_method_handle_vmslots(rax_argslot, rcx_recv, rdx_temp);
Register rdx_intf = rdx_temp;
Register rbx_index = rbx_temp;
- __ movptr(rdx_intf, rcx_mh_vmtarget);
- __ movl(rbx_index, rcx_dmh_vmindex);
+ __ load_heap_oop(rdx_intf, rcx_mh_vmtarget);
+ __ movl(rbx_index, rcx_dmh_vmindex);
__ movptr(rcx_recv, __ argument_address(rax_argslot, -1));
__ null_check(rcx_recv, oopDesc::klass_offset_in_bytes());
@@ -602,7 +597,7 @@
rax_argslot, rbx_temp, rdx_temp);
// store bound argument into the new stack slot:
- __ movptr(rbx_temp, rcx_bmh_argument);
+ __ load_heap_oop(rbx_temp, rcx_bmh_argument);
Address prim_value_addr(rbx_temp, java_lang_boxing_object::value_offset_in_bytes(arg_type));
if (arg_type == T_OBJECT) {
__ movptr(Address(rax_argslot, 0), rbx_temp);
@@ -620,11 +615,11 @@
if (direct_to_method) {
Register rbx_method = rbx_temp;
- __ movptr(rbx_method, rcx_mh_vmtarget);
+ __ load_heap_oop(rbx_method, rcx_mh_vmtarget);
__ verify_oop(rbx_method);
__ jmp(rbx_method_fie);
} else {
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ verify_oop(rcx_recv);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
@@ -634,7 +629,7 @@
case _adapter_retype_only:
case _adapter_retype_raw:
// immediately jump to the next MH layer:
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ verify_oop(rcx_recv);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
// This is OK when all parameter types widen.
@@ -651,13 +646,13 @@
vmarg = __ argument_address(rax_argslot);
// What class are we casting to?
- __ movptr(rbx_klass, rcx_amh_argument); // this is a Class object!
- __ movptr(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
+ __ load_heap_oop(rbx_klass, rcx_amh_argument); // this is a Class object!
+ __ load_heap_oop(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
Label done;
__ movptr(rdx_temp, vmarg);
__ testptr(rdx_temp, rdx_temp);
- __ jccb(Assembler::zero, done); // no cast if null
+ __ jcc(Assembler::zero, done); // no cast if null
__ load_klass(rdx_temp, rdx_temp);
// live at this point:
@@ -672,14 +667,15 @@
__ movl(rax_argslot, rcx_amh_vmargslot); // reload argslot field
__ movptr(rdx_temp, vmarg);
- __ pushptr(rcx_amh_argument); // required class
- __ push(rdx_temp); // bad object
- __ push((int)Bytecodes::_checkcast); // who is complaining?
+ __ load_heap_oop(rbx_klass, rcx_amh_argument); // required class
+ __ push(rbx_klass);
+ __ push(rdx_temp); // bad object
+ __ push((int)Bytecodes::_checkcast); // who is complaining?
__ jump(ExternalAddress(from_interpreted_entry(_raise_exception)));
__ bind(done);
// get the new MH:
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -741,7 +737,7 @@
assert(CONV_VMINFO_SHIFT == 0, "preshifted");
// get the new MH:
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
// (now we are done with the old MH)
// original 32-bit vmdata word must be of this form:
@@ -816,7 +812,7 @@
ShouldNotReachHere();
}
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -858,7 +854,7 @@
rax_argslot, rbx_temp, rdx_temp);
}
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -969,7 +965,7 @@
}
}
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -1029,7 +1025,7 @@
__ pop(rdi); // restore temp
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -1052,7 +1048,7 @@
__ pop(rdi); // restore temp
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
}
break;
@@ -1103,8 +1099,8 @@
// Check the array type.
Register rbx_klass = rbx_temp;
- __ movptr(rbx_klass, rcx_amh_argument); // this is a Class object!
- __ movptr(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
+ __ load_heap_oop(rbx_klass, rcx_amh_argument); // this is a Class object!
+ __ load_heap_oop(rbx_klass, Address(rbx_klass, java_lang_Class::klass_offset_in_bytes()));
Label ok_array_klass, bad_array_klass, bad_array_length;
__ check_klass_subtype(rdx_array_klass, rbx_klass, rdi, ok_array_klass);
@@ -1186,7 +1182,7 @@
// Arguments are spread. Move to next method handle.
UNPUSH_RSI_RDI;
- __ movptr(rcx_recv, rcx_mh_vmtarget);
+ __ load_heap_oop(rcx_recv, rcx_mh_vmtarget);
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
__ bind(bad_array_klass);
--- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -35,7 +35,7 @@
// MethodHandles adapters
enum method_handles_platform_dependent_constants {
- method_handles_adapters_code_size = 26000
+ method_handles_adapters_code_size = 40000
};
class x86 {
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -3111,19 +3111,22 @@
// rax: CallSite object (f1)
// rbx: unused (f2)
+ // rcx: receiver address
// rdx: flags (unused)
+ Register rax_callsite = rax;
+ Register rcx_method_handle = rcx;
+
if (ProfileInterpreter) {
- Label L;
// %%% should make a type profile for any invokedynamic that takes a ref argument
// profile this call
__ profile_call(rsi);
}
- __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
- __ null_check(rcx);
+ __ movptr(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
+ __ null_check(rcx_method_handle);
__ prepare_to_jump_from_interpreted();
- __ jump_to_method_handle_entry(rcx, rdx);
+ __ jump_to_method_handle_entry(rcx_method_handle, rdx);
}
//----------------------------------------------------------------------------------------------------
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -3120,17 +3120,19 @@
// rcx: receiver address
// rdx: flags (unused)
+ Register rax_callsite = rax;
+ Register rcx_method_handle = rcx;
+
if (ProfileInterpreter) {
- Label L;
// %%% should make a type profile for any invokedynamic that takes a ref argument
// profile this call
__ profile_call(r13);
}
- __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
- __ null_check(rcx);
+ __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
+ __ null_check(rcx_method_handle);
__ prepare_to_jump_from_interpreted();
- __ jump_to_method_handle_entry(rcx, rdx);
+ __ jump_to_method_handle_entry(rcx_method_handle, rdx);
}
--- a/hotspot/src/cpu/x86/vm/x86_64.ad Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/x86/vm/x86_64.ad Tue Nov 02 22:15:35 2010 -0700
@@ -7349,43 +7349,6 @@
ins_pipe( ialu_reg );
%}
-instruct loadI_reversed(rRegI dst, memory src) %{
- match(Set dst (ReverseBytesI (LoadI src)));
-
- format %{ "bswap_movl $dst, $src" %}
- opcode(0x8B, 0x0F, 0xC8); /* Opcode 8B 0F C8 */
- ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src), REX_reg(dst), OpcS, opc3_reg(dst));
- ins_pipe( ialu_reg_mem );
-%}
-
-instruct loadL_reversed(rRegL dst, memory src) %{
- match(Set dst (ReverseBytesL (LoadL src)));
-
- format %{ "bswap_movq $dst, $src" %}
- opcode(0x8B, 0x0F, 0xC8); /* Opcode 8B 0F C8 */
- ins_encode(REX_reg_mem_wide(dst, src), OpcP, reg_mem(dst, src), REX_reg_wide(dst), OpcS, opc3_reg(dst));
- ins_pipe( ialu_reg_mem );
-%}
-
-instruct storeI_reversed(memory dst, rRegI src) %{
- match(Set dst (StoreI dst (ReverseBytesI src)));
-
- format %{ "movl_bswap $dst, $src" %}
- opcode(0x0F, 0xC8, 0x89); /* Opcode 0F C8 89 */
- ins_encode( REX_reg(src), OpcP, opc2_reg(src), REX_reg_mem(src, dst), OpcT, reg_mem(src, dst) );
- ins_pipe( ialu_mem_reg );
-%}
-
-instruct storeL_reversed(memory dst, rRegL src) %{
- match(Set dst (StoreL dst (ReverseBytesL src)));
-
- format %{ "movq_bswap $dst, $src" %}
- opcode(0x0F, 0xC8, 0x89); /* Opcode 0F C8 89 */
- ins_encode( REX_reg_wide(src), OpcP, opc2_reg(src), REX_reg_mem_wide(src, dst), OpcT, reg_mem(src, dst) );
- ins_pipe( ialu_mem_reg );
-%}
-
-
//---------- Zeros Count Instructions ------------------------------------------
instruct countLeadingZerosI(rRegI dst, rRegI src, rFlagsReg cr) %{
--- a/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -92,15 +92,15 @@
public:
SignatureHandlerGenerator(methodHandle method, CodeBuffer* buffer)
- : SignatureHandlerGeneratorBase(method, (ffi_cif *) buffer->code_end()),
+ : SignatureHandlerGeneratorBase(method, (ffi_cif *) buffer->insts_end()),
_cb(buffer) {
- _cb->set_code_end((address) (cif() + 1));
+ _cb->set_insts_end((address) (cif() + 1));
}
private:
void push(intptr_t value) {
- intptr_t *dst = (intptr_t *) _cb->code_end();
- _cb->set_code_end((address) (dst + 1));
+ intptr_t *dst = (intptr_t *) _cb->insts_end();
+ _cb->set_insts_end((address) (dst + 1));
*dst = value;
}
};
--- a/hotspot/src/share/vm/asm/codeBuffer.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/asm/codeBuffer.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -168,8 +168,8 @@
bool allocates(address pc) const { return pc >= _start && pc < _limit; }
bool allocates2(address pc) const { return pc >= _start && pc <= _limit; }
- void set_end(address pc) { assert(allocates2(pc),""); _end = pc; }
- void set_mark(address pc) { assert(contains2(pc),"not in codeBuffer");
+ void set_end(address pc) { assert(allocates2(pc), err_msg("not in CodeBuffer memory: " PTR_FORMAT " <= " PTR_FORMAT " <= " PTR_FORMAT, _start, pc, _limit)); _end = pc; }
+ void set_mark(address pc) { assert(contains2(pc), "not in codeBuffer");
_mark = pc; }
void set_mark_off(int offset) { assert(contains2(offset+_start),"not in codeBuffer");
_mark = offset + _start; }
--- a/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -174,31 +174,6 @@
int index;
Value value;
- if (state->stack_size() > 0) {
- print_begin("stack");
- print("size %d", state->stack_size());
-
- for_each_stack_value(state, index, value) {
- ip.print_phi(index, value, block);
- print_operand(value);
- output()->cr();
- }
-
- print_end("stack");
- }
-
- if (state->locks_size() > 0) {
- print_begin("locks");
- print("size %d", state->locks_size());
-
- for_each_lock_value(state, index, value) {
- ip.print_phi(index, value, block);
- print_operand(value);
- output()->cr();
- }
- print_end("locks");
- }
-
for_each_state(state) {
print_begin("locals");
print("size %d", state->locals_size());
@@ -210,6 +185,33 @@
output()->cr();
}
print_end("locals");
+
+ if (state->stack_size() > 0) {
+ print_begin("stack");
+ print("size %d", state->stack_size());
+ print("method \"%s\"", method_name(state->scope()->method()));
+
+ for_each_stack_value(state, index, value) {
+ ip.print_phi(index, value, block);
+ print_operand(value);
+ output()->cr();
+ }
+
+ print_end("stack");
+ }
+
+ if (state->locks_size() > 0) {
+ print_begin("locks");
+ print("size %d", state->locks_size());
+ print("method \"%s\"", method_name(state->scope()->method()));
+
+ for_each_lock_value(state, index, value) {
+ ip.print_phi(index, value, block);
+ print_operand(value);
+ output()->cr();
+ }
+ print_end("locks");
+ }
}
print_end("states");
@@ -230,7 +232,8 @@
if (instr->is_pinned()) {
output()->put('.');
}
- output()->print("%d %d ", instr->bci(), instr->use_count());
+
+ output()->print("%d %d ", instr->printable_bci(), instr->use_count());
print_operand(instr);
@@ -271,7 +274,7 @@
print("name \"B%d\"", block->block_id());
print("from_bci %d", block->bci());
- print("to_bci %d", (block->end() == NULL ? -1 : block->end()->bci()));
+ print("to_bci %d", (block->end() == NULL ? -1 : block->end()->printable_bci()));
output()->indent();
output()->print("predecessors ");
--- a/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -205,7 +205,7 @@
// limit this optimization to current block
if (value != NULL && in_current_block(conv)) {
set_canonical(new StoreField(x->obj(), x->offset(), x->field(), value, x->is_static(),
- x->lock_stack(), x->state_before(), x->is_loaded(), x->is_initialized()));
+ x->state_before(), x->is_loaded(), x->is_initialized()));
return;
}
}
@@ -256,7 +256,7 @@
// limit this optimization to current block
if (value != NULL && in_current_block(conv)) {
set_canonical(new StoreIndexed(x->array(), x->index(), x->length(),
- x->elt_type(), value, x->lock_stack()));
+ x->elt_type(), value, x->state_before()));
return;
}
}
@@ -667,7 +667,7 @@
}
}
set_canonical(canon);
- set_bci(cmp->bci());
+ set_bci(cmp->state_before()->bci());
}
}
} else if (l->as_InstanceOf() != NULL) {
@@ -685,7 +685,7 @@
set_canonical(new Goto(is_inst_sux, x->state_before(), x->is_safepoint()));
} else {
// successors differ => simplify to: IfInstanceOf
- set_canonical(new IfInstanceOf(inst->klass(), inst->obj(), true, inst->bci(), is_inst_sux, no_inst_sux));
+ set_canonical(new IfInstanceOf(inst->klass(), inst->obj(), true, inst->state_before()->bci(), is_inst_sux, no_inst_sux));
}
}
} else if (rt == objectNull && (l->as_NewInstance() || l->as_NewArray())) {
--- a/hotspot/src/share/vm/c1/c1_Compilation.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_Compilation.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -22,7 +22,6 @@
*
*/
-class BlockBegin;
class CompilationResourceObj;
class XHandlers;
class ExceptionInfo;
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -659,7 +659,6 @@
, _jsr_xhandlers(NULL)
, _caller_stack_size(-1)
, _continuation(NULL)
- , _continuation_state(NULL)
, _num_returns(0)
, _cleanup_block(NULL)
, _cleanup_return_prev(NULL)
@@ -795,14 +794,6 @@
if (i >= -1) worklist->at_put(i + 1, top);
}
-int GraphBuilder::ScopeData::caller_stack_size() const {
- ValueStack* state = scope()->caller_state();
- if (state == NULL) {
- return 0;
- }
- return state->stack_size();
-}
-
BlockBegin* GraphBuilder::ScopeData::remove_from_work_list() {
if (is_work_list_empty()) {
@@ -880,7 +871,7 @@
ciObject* obj = con.as_object();
if (!obj->is_loaded()
|| (PatchALot && obj->klass() != ciEnv::current()->String_klass())) {
- patch_state = state()->copy();
+ patch_state = copy_state_before();
t = new ObjectConstant(obj);
} else {
assert(!obj->is_klass(), "must be java_mirror of klass");
@@ -902,7 +893,8 @@
void GraphBuilder::load_local(ValueType* type, int index) {
- Value x = state()->load_local(index);
+ Value x = state()->local_at(index);
+ assert(x != NULL && !x->type()->is_illegal(), "access of illegal local variable");
push(type, x);
}
@@ -942,19 +934,21 @@
void GraphBuilder::load_indexed(BasicType type) {
+ ValueStack* state_before = copy_state_for_exception();
Value index = ipop();
Value array = apop();
Value length = NULL;
if (CSEArrayLength ||
(array->as_AccessField() && array->as_AccessField()->field()->is_constant()) ||
(array->as_NewArray() && array->as_NewArray()->length() && array->as_NewArray()->length()->type()->is_constant())) {
- length = append(new ArrayLength(array, lock_stack()));
+ length = append(new ArrayLength(array, state_before));
}
- push(as_ValueType(type), append(new LoadIndexed(array, index, length, type, lock_stack())));
+ push(as_ValueType(type), append(new LoadIndexed(array, index, length, type, state_before)));
}
void GraphBuilder::store_indexed(BasicType type) {
+ ValueStack* state_before = copy_state_for_exception();
Value value = pop(as_ValueType(type));
Value index = ipop();
Value array = apop();
@@ -962,9 +956,9 @@
if (CSEArrayLength ||
(array->as_AccessField() && array->as_AccessField()->field()->is_constant()) ||
(array->as_NewArray() && array->as_NewArray()->length() && array->as_NewArray()->length()->type()->is_constant())) {
- length = append(new ArrayLength(array, lock_stack()));
+ length = append(new ArrayLength(array, state_before));
}
- StoreIndexed* result = new StoreIndexed(array, index, length, type, value, lock_stack());
+ StoreIndexed* result = new StoreIndexed(array, index, length, type, value, state_before);
append(result);
_memory->store_value(value);
@@ -1063,12 +1057,12 @@
}
-void GraphBuilder::arithmetic_op(ValueType* type, Bytecodes::Code code, ValueStack* stack) {
+void GraphBuilder::arithmetic_op(ValueType* type, Bytecodes::Code code, ValueStack* state_before) {
Value y = pop(type);
Value x = pop(type);
// NOTE: strictfp can be queried from current method since we don't
// inline methods with differing strictfp bits
- Value res = new ArithmeticOp(code, x, y, method()->is_strict(), stack);
+ Value res = new ArithmeticOp(code, x, y, method()->is_strict(), state_before);
// Note: currently single-precision floating-point rounding on Intel is handled at the LIRGenerator level
res = append(res);
if (method()->is_strict()) {
@@ -1132,7 +1126,7 @@
void GraphBuilder::compare_op(ValueType* type, Bytecodes::Code code) {
- ValueStack* state_before = state()->copy();
+ ValueStack* state_before = copy_state_before();
Value y = pop(type);
Value x = pop(type);
ipush(append(new CompareOp(code, x, y, state_before)));
@@ -1217,7 +1211,7 @@
void GraphBuilder::if_zero(ValueType* type, If::Condition cond) {
Value y = append(new Constant(intZero));
- ValueStack* state_before = state()->copy();
+ ValueStack* state_before = copy_state_before();
Value x = ipop();
if_node(x, cond, y, state_before);
}
@@ -1225,14 +1219,14 @@
void GraphBuilder::if_null(ValueType* type, If::Condition cond) {
Value y = append(new Constant(objectNull));
- ValueStack* state_before = state()->copy();
+ ValueStack* state_before = copy_state_before();
Value x = apop();
if_node(x, cond, y, state_before);
}
void GraphBuilder::if_same(ValueType* type, If::Condition cond) {
- ValueStack* state_before = state()->copy();
+ ValueStack* state_before = copy_state_before();
Value y = pop(type);
Value x = pop(type);
if_node(x, cond, y, state_before);
@@ -1282,7 +1276,7 @@
BlockBegin* tsux = block_at(bci() + switch_->dest_offset_at(0));
BlockBegin* fsux = block_at(bci() + switch_->default_offset());
bool is_bb = tsux->bci() < bci() || fsux->bci() < bci();
- ValueStack* state_before = is_bb ? state() : NULL;
+ ValueStack* state_before = is_bb ? copy_state_before() : NULL;
append(new If(ipop(), If::eql, true, key, tsux, fsux, state_before, is_bb));
} else {
// collect successors
@@ -1295,7 +1289,7 @@
}
// add default successor
sux->at_put(i, block_at(bci() + switch_->default_offset()));
- ValueStack* state_before = has_bb ? state() : NULL;
+ ValueStack* state_before = has_bb ? copy_state_before() : NULL;
append(new TableSwitch(ipop(), sux, switch_->low_key(), state_before, has_bb));
}
}
@@ -1314,7 +1308,7 @@
BlockBegin* tsux = block_at(bci() + pair->offset());
BlockBegin* fsux = block_at(bci() + switch_->default_offset());
bool is_bb = tsux->bci() < bci() || fsux->bci() < bci();
- ValueStack* state_before = is_bb ? state() : NULL;
+ ValueStack* state_before = is_bb ? copy_state_before() : NULL;
append(new If(ipop(), If::eql, true, key, tsux, fsux, state_before, is_bb));
} else {
// collect successors & keys
@@ -1330,7 +1324,7 @@
}
// add default successor
sux->at_put(i, block_at(bci() + switch_->default_offset()));
- ValueStack* state_before = has_bb ? state() : NULL;
+ ValueStack* state_before = has_bb ? copy_state_before() : NULL;
append(new LookupSwitch(ipop(), sux, keys, state_before, has_bb));
}
}
@@ -1340,7 +1334,7 @@
// the registration on return.
// Gather some type information about the receiver
- Value receiver = state()->load_local(0);
+ Value receiver = state()->local_at(0);
assert(receiver != NULL, "must have a receiver");
ciType* declared_type = receiver->declared_type();
ciType* exact_type = receiver->exact_type();
@@ -1373,10 +1367,11 @@
if (needs_check) {
// Perform the registration of finalizable objects.
+ ValueStack* state_before = copy_state_for_exception();
load_local(objectType, 0);
append_split(new Intrinsic(voidType, vmIntrinsics::_Object_init,
state()->pop_arguments(1),
- true, lock_stack(), true));
+ true, state_before, true));
}
}
@@ -1395,12 +1390,14 @@
// If the inlined method is synchronized, the monitor must be
// released before we jump to the continuation block.
if (method()->is_synchronized()) {
- int i = state()->caller_state()->locks_size();
- assert(state()->locks_size() == i + 1, "receiver must be locked here");
- monitorexit(state()->lock_at(i), SynchronizationEntryBCI);
+ assert(state()->locks_size() == 1, "receiver must be locked here");
+ monitorexit(state()->lock_at(0), SynchronizationEntryBCI);
}
- state()->truncate_stack(caller_stack_size());
+ // State at end of inlined method is the state of the caller
+ // without the method parameters on stack, including the
+ // return value, if any, of the inlined method on operand stack.
+ set_state(state()->caller_state()->copy_for_parsing());
if (x != NULL) {
state()->push(x->type(), x);
}
@@ -1412,14 +1409,6 @@
set_inline_cleanup_info(_block, _last, state());
}
- // State at end of inlined method is the state of the caller
- // without the method parameters on stack, including the
- // return value, if any, of the inlined method on operand stack.
- set_state(scope_data()->continuation_state()->copy());
- if (x) {
- state()->push(x->type(), x);
- }
-
// The current bci() is in the wrong scope, so use the bci() of
// the continuation point.
append_with_bci(goto_callee, scope_data()->continuation()->bci());
@@ -1455,11 +1444,11 @@
field->will_link(method()->holder(), code);
const bool is_initialized = is_loaded && holder->is_initialized();
- ValueStack* state_copy = NULL;
+ ValueStack* state_before = NULL;
if (!is_initialized || PatchALot) {
// save state before instruction for debug info when
// deoptimization happens during patching
- state_copy = state()->copy();
+ state_before = copy_state_before();
}
Value obj = NULL;
@@ -1468,9 +1457,9 @@
// fully initialized and resolved in this constant pool. The will_link test
// above essentially checks if this class is resolved in this constant pool
// so, the is_initialized flag should be suffiect.
- if (state_copy != NULL) {
+ if (state_before != NULL) {
// build a patching constant
- obj = new Constant(new ClassConstant(holder), state_copy);
+ obj = new Constant(new ClassConstant(holder), state_before);
} else {
obj = new Constant(new ClassConstant(holder));
}
@@ -1499,25 +1488,32 @@
}
if (constant != NULL) {
push(type, append(constant));
- state_copy = NULL; // Not a potential deoptimization point (see set_state_before logic below)
} else {
+ if (state_before == NULL) {
+ state_before = copy_state_for_exception();
+ }
push(type, append(new LoadField(append(obj), offset, field, true,
- lock_stack(), state_copy, is_loaded, is_initialized)));
+ state_before, is_loaded, is_initialized)));
}
break;
}
case Bytecodes::_putstatic:
{ Value val = pop(type);
- append(new StoreField(append(obj), offset, field, val, true, lock_stack(), state_copy, is_loaded, is_initialized));
+ if (state_before == NULL) {
+ state_before = copy_state_for_exception();
+ }
+ append(new StoreField(append(obj), offset, field, val, true, state_before, is_loaded, is_initialized));
}
break;
case Bytecodes::_getfield :
{
- LoadField* load = new LoadField(apop(), offset, field, false, lock_stack(), state_copy, is_loaded, true);
+ if (state_before == NULL) {
+ state_before = copy_state_for_exception();
+ }
+ LoadField* load = new LoadField(apop(), offset, field, false, state_before, is_loaded, true);
Value replacement = is_loaded ? _memory->load(load) : load;
if (replacement != load) {
- assert(replacement->bci() != -99 || replacement->as_Phi() || replacement->as_Local(),
- "should already by linked");
+ assert(replacement->is_linked() || !replacement->can_be_linked(), "should already by linked");
push(type, replacement);
} else {
push(type, append(load));
@@ -1527,7 +1523,10 @@
case Bytecodes::_putfield :
{ Value val = pop(type);
- StoreField* store = new StoreField(apop(), offset, field, val, false, lock_stack(), state_copy, is_loaded, true);
+ if (state_before == NULL) {
+ state_before = copy_state_for_exception();
+ }
+ StoreField* store = new StoreField(apop(), offset, field, val, false, state_before, is_loaded, true);
if (is_loaded) store = _memory->store(store);
if (store != NULL) {
append(store);
@@ -1647,7 +1646,7 @@
actual_recv = target->holder();
// insert a check it's really the expected class.
- CheckCast* c = new CheckCast(klass, receiver, NULL);
+ CheckCast* c = new CheckCast(klass, receiver, copy_state_for_exception());
c->set_incompatible_class_change_check();
c->set_direct_compare(klass->is_final());
append_split(c);
@@ -1732,7 +1731,7 @@
// We require the debug info to be the "state before" because
// invokedynamics may deoptimize.
- ValueStack* state_before = is_invokedynamic ? state()->copy() : NULL;
+ ValueStack* state_before = is_invokedynamic ? copy_state_before() : copy_state_exhandling();
Values* args = state()->pop_arguments(target->arg_size_no_receiver());
Value recv = has_receiver ? apop() : NULL;
@@ -1795,24 +1794,26 @@
void GraphBuilder::new_instance(int klass_index) {
+ ValueStack* state_before = copy_state_exhandling();
bool will_link;
ciKlass* klass = stream()->get_klass(will_link);
assert(klass->is_instance_klass(), "must be an instance klass");
- NewInstance* new_instance = new NewInstance(klass->as_instance_klass());
+ NewInstance* new_instance = new NewInstance(klass->as_instance_klass(), state_before);
_memory->new_instance(new_instance);
apush(append_split(new_instance));
}
void GraphBuilder::new_type_array() {
- apush(append_split(new NewTypeArray(ipop(), (BasicType)stream()->get_index())));
+ ValueStack* state_before = copy_state_exhandling();
+ apush(append_split(new NewTypeArray(ipop(), (BasicType)stream()->get_index(), state_before)));
}
void GraphBuilder::new_object_array() {
bool will_link;
ciKlass* klass = stream()->get_klass(will_link);
- ValueStack* state_before = !klass->is_loaded() || PatchALot ? state()->copy() : NULL;
+ ValueStack* state_before = !klass->is_loaded() || PatchALot ? copy_state_before() : copy_state_exhandling();
NewArray* n = new NewObjectArray(klass, ipop(), state_before);
apush(append_split(n));
}
@@ -1838,7 +1839,7 @@
void GraphBuilder::check_cast(int klass_index) {
bool will_link;
ciKlass* klass = stream()->get_klass(will_link);
- ValueStack* state_before = !klass->is_loaded() || PatchALot ? state()->copy() : NULL;
+ ValueStack* state_before = !klass->is_loaded() || PatchALot ? copy_state_before() : copy_state_for_exception();
CheckCast* c = new CheckCast(klass, apop(), state_before);
apush(append_split(c));
c->set_direct_compare(direct_compare(klass));
@@ -1859,7 +1860,7 @@
void GraphBuilder::instance_of(int klass_index) {
bool will_link;
ciKlass* klass = stream()->get_klass(will_link);
- ValueStack* state_before = !klass->is_loaded() || PatchALot ? state()->copy() : NULL;
+ ValueStack* state_before = !klass->is_loaded() || PatchALot ? copy_state_before() : copy_state_exhandling();
InstanceOf* i = new InstanceOf(klass, apop(), state_before);
ipush(append_split(i));
i->set_direct_compare(direct_compare(klass));
@@ -1879,25 +1880,13 @@
void GraphBuilder::monitorenter(Value x, int bci) {
// save state before locking in case of deoptimization after a NullPointerException
- ValueStack* lock_stack_before = lock_stack();
- append_with_bci(new MonitorEnter(x, state()->lock(scope(), x), lock_stack_before), bci);
+ ValueStack* state_before = copy_state_for_exception_with_bci(bci);
+ append_with_bci(new MonitorEnter(x, state()->lock(x), state_before), bci);
kill_all();
}
void GraphBuilder::monitorexit(Value x, int bci) {
- // Note: the comment below is only relevant for the case where we do
- // not deoptimize due to asynchronous exceptions (!(DeoptC1 &&
- // DeoptOnAsyncException), which is not used anymore)
-
- // Note: Potentially, the monitor state in an exception handler
- // can be wrong due to wrong 'initialization' of the handler
- // via a wrong asynchronous exception path. This can happen,
- // if the exception handler range for asynchronous exceptions
- // is too long (see also java bug 4327029, and comment in
- // GraphBuilder::handle_exception()). This may cause 'under-
- // flow' of the monitor stack => bailout instead.
- if (state()->locks_size() < 1) BAILOUT("monitor stack underflow");
append_with_bci(new MonitorExit(x, state()->unlock()), bci);
kill_all();
}
@@ -1906,7 +1895,7 @@
void GraphBuilder::new_multi_array(int dimensions) {
bool will_link;
ciKlass* klass = stream()->get_klass(will_link);
- ValueStack* state_before = !klass->is_loaded() || PatchALot ? state()->copy() : NULL;
+ ValueStack* state_before = !klass->is_loaded() || PatchALot ? copy_state_before() : copy_state_exhandling();
Values* dims = new Values(dimensions, NULL);
// fill in all dimensions
@@ -1921,8 +1910,10 @@
void GraphBuilder::throw_op(int bci) {
// We require that the debug info for a Throw be the "state before"
// the Throw (i.e., exception oop is still on TOS)
- ValueStack* state_before = state()->copy();
+ ValueStack* state_before = copy_state_before_with_bci(bci);
Throw* t = new Throw(apop(), state_before);
+ // operand stack not needed after a throw
+ state()->truncate_stack(0);
append_with_bci(t, bci);
}
@@ -1947,60 +1938,62 @@
Instruction* GraphBuilder::append_with_bci(Instruction* instr, int bci) {
Canonicalizer canon(compilation(), instr, bci);
Instruction* i1 = canon.canonical();
- if (i1->bci() != -99) {
+ if (i1->is_linked() || !i1->can_be_linked()) {
// Canonicalizer returned an instruction which was already
// appended so simply return it.
return i1;
- } else if (UseLocalValueNumbering) {
+ }
+
+ if (UseLocalValueNumbering) {
// Lookup the instruction in the ValueMap and add it to the map if
// it's not found.
Instruction* i2 = vmap()->find_insert(i1);
if (i2 != i1) {
// found an entry in the value map, so just return it.
- assert(i2->bci() != -1, "should already be linked");
+ assert(i2->is_linked(), "should already be linked");
return i2;
}
ValueNumberingEffects vne(vmap());
i1->visit(&vne);
}
- if (i1->as_Phi() == NULL && i1->as_Local() == NULL) {
- // i1 was not eliminated => append it
- assert(i1->next() == NULL, "shouldn't already be linked");
- _last = _last->set_next(i1, canon.bci());
- if (++_instruction_count >= InstructionCountCutoff
- && !bailed_out()) {
- // set the bailout state but complete normal processing. We
- // might do a little more work before noticing the bailout so we
- // want processing to continue normally until it's noticed.
- bailout("Method and/or inlining is too large");
- }
+ // i1 was not eliminated => append it
+ assert(i1->next() == NULL, "shouldn't already be linked");
+ _last = _last->set_next(i1, canon.bci());
+
+ if (++_instruction_count >= InstructionCountCutoff && !bailed_out()) {
+ // set the bailout state but complete normal processing. We
+ // might do a little more work before noticing the bailout so we
+ // want processing to continue normally until it's noticed.
+ bailout("Method and/or inlining is too large");
+ }
#ifndef PRODUCT
- if (PrintIRDuringConstruction) {
- InstructionPrinter ip;
- ip.print_line(i1);
- if (Verbose) {
- state()->print();
+ if (PrintIRDuringConstruction) {
+ InstructionPrinter ip;
+ ip.print_line(i1);
+ if (Verbose) {
+ state()->print();
+ }
+ }
+#endif
+
+ // save state after modification of operand stack for StateSplit instructions
+ StateSplit* s = i1->as_StateSplit();
+ if (s != NULL) {
+ if (EliminateFieldAccess) {
+ Intrinsic* intrinsic = s->as_Intrinsic();
+ if (s->as_Invoke() != NULL || (intrinsic && !intrinsic->preserves_state())) {
+ _memory->kill();
}
}
-#endif
- assert(_last == i1, "adjust code below");
- StateSplit* s = i1->as_StateSplit();
- if (s != NULL && i1->as_BlockEnd() == NULL) {
- if (EliminateFieldAccess) {
- Intrinsic* intrinsic = s->as_Intrinsic();
- if (s->as_Invoke() != NULL || (intrinsic && !intrinsic->preserves_state())) {
- _memory->kill();
- }
- }
- s->set_state(state()->copy());
- }
- // set up exception handlers for this instruction if necessary
- if (i1->can_trap()) {
- assert(exception_state() != NULL || !has_handler(), "must have setup exception state");
- i1->set_exception_handlers(handle_exception(bci));
- }
+ s->set_state(state()->copy(ValueStack::StateAfter, canon.bci()));
+ }
+
+ // set up exception handlers for this instruction if necessary
+ if (i1->can_trap()) {
+ i1->set_exception_handlers(handle_exception(i1));
+ assert(i1->exception_state() != NULL || !i1->needs_exception_state() || bailed_out(), "handle_exception must set exception state");
}
return i1;
}
@@ -2032,26 +2025,30 @@
}
}
}
- append(new NullCheck(value, lock_stack()));
+ append(new NullCheck(value, copy_state_for_exception()));
}
-XHandlers* GraphBuilder::handle_exception(int cur_bci) {
- // fast path if it is guaranteed that no exception handlers are present
- if (!has_handler()) {
- // TODO: check if return NULL is possible (avoids empty lists)
+XHandlers* GraphBuilder::handle_exception(Instruction* instruction) {
+ if (!has_handler() && (!instruction->needs_exception_state() || instruction->exception_state() != NULL)) {
+ assert(instruction->exception_state() == NULL
+ || instruction->exception_state()->kind() == ValueStack::EmptyExceptionState
+ || (instruction->exception_state()->kind() == ValueStack::ExceptionState && _compilation->env()->jvmti_can_access_local_variables()),
+ "exception_state should be of exception kind");
return new XHandlers();
}
XHandlers* exception_handlers = new XHandlers();
ScopeData* cur_scope_data = scope_data();
- ValueStack* s = exception_state();
+ ValueStack* cur_state = instruction->state_before();
+ ValueStack* prev_state = NULL;
int scope_count = 0;
- assert(s != NULL, "exception state must be set");
+ assert(cur_state != NULL, "state_before must be set");
do {
- assert(cur_scope_data->scope() == s->scope(), "scopes do not match");
+ int cur_bci = cur_state->bci();
+ assert(cur_scope_data->scope() == cur_state->scope(), "scopes do not match");
assert(cur_bci == SynchronizationEntryBCI || cur_bci == cur_scope_data->stream()->cur_bci(), "invalid bci");
// join with all potential exception handlers
@@ -2075,10 +2072,15 @@
// previously this was a BAILOUT, but this is not necessary
// now because asynchronous exceptions are not handled this way.
- assert(entry->state() == NULL || s->locks_size() == entry->state()->locks_size(), "locks do not match");
+ assert(entry->state() == NULL || cur_state->total_locks_size() == entry->state()->total_locks_size(), "locks do not match");
// xhandler start with an empty expression stack
- s->truncate_stack(cur_scope_data->caller_stack_size());
+ if (cur_state->stack_size() != 0) {
+ cur_state = cur_state->copy(ValueStack::ExceptionState, cur_state->bci());
+ }
+ if (instruction->exception_state() == NULL) {
+ instruction->set_exception_state(cur_state);
+ }
// Note: Usually this join must work. However, very
// complicated jsr-ret structures where we don't ret from
@@ -2087,12 +2089,12 @@
// The only test case we've seen so far which exhibits this
// problem is caught by the infinite recursion test in
// GraphBuilder::jsr() if the join doesn't work.
- if (!entry->try_merge(s)) {
+ if (!entry->try_merge(cur_state)) {
BAILOUT_("error while joining with exception handler, prob. due to complicated jsr/rets", exception_handlers);
}
// add current state for correct handling of phi functions at begin of xhandler
- int phi_operand = entry->add_exception_state(s);
+ int phi_operand = entry->add_exception_state(cur_state);
// add entry to the list of xhandlers of this block
_block->add_exception_handler(entry);
@@ -2119,26 +2121,39 @@
}
}
+ if (exception_handlers->length() == 0) {
+ // This scope and all callees do not handle exceptions, so the local
+ // variables of this scope are not needed. However, the scope itself is
+ // required for a correct exception stack trace -> clear out the locals.
+ if (_compilation->env()->jvmti_can_access_local_variables()) {
+ cur_state = cur_state->copy(ValueStack::ExceptionState, cur_state->bci());
+ } else {
+ cur_state = cur_state->copy(ValueStack::EmptyExceptionState, cur_state->bci());
+ }
+ if (prev_state != NULL) {
+ prev_state->set_caller_state(cur_state);
+ }
+ if (instruction->exception_state() == NULL) {
+ instruction->set_exception_state(cur_state);
+ }
+ }
+
// Set up iteration for next time.
// If parsing a jsr, do not grab exception handlers from the
// parent scopes for this method (already got them, and they
// needed to be cloned)
- if (cur_scope_data->parsing_jsr()) {
- IRScope* tmp_scope = cur_scope_data->scope();
- while (cur_scope_data->parent() != NULL &&
- cur_scope_data->parent()->scope() == tmp_scope) {
- cur_scope_data = cur_scope_data->parent();
- }
+
+ while (cur_scope_data->parsing_jsr()) {
+ cur_scope_data = cur_scope_data->parent();
}
- if (cur_scope_data != NULL) {
- if (cur_scope_data->parent() != NULL) {
- // must use pop_scope instead of caller_state to preserve all monitors
- s = s->pop_scope();
- }
- cur_bci = cur_scope_data->scope()->caller_bci();
- cur_scope_data = cur_scope_data->parent();
- scope_count++;
- }
+
+ assert(cur_scope_data->scope() == cur_state->scope(), "scopes do not match");
+ assert(cur_state->locks_size() == 0 || cur_state->locks_size() == 1, "unlocking must be done in a catchall exception handler");
+
+ prev_state = cur_state;
+ cur_state = cur_state->caller_state();
+ cur_scope_data = cur_scope_data->parent();
+ scope_count++;
} while (cur_scope_data != NULL);
return exception_handlers;
@@ -2243,14 +2258,10 @@
);
ValueStack* state = b->state()->caller_state();
- int index;
- Value value;
- for_each_state(state) {
- for_each_local_value(state, index, value) {
- Phi* phi = value->as_Phi();
- assert(phi == NULL || phi->block() != b, "must not have phi function to simplify in caller state");
- }
- }
+ for_each_state_value(state, value,
+ Phi* phi = value->as_Phi();
+ assert(phi == NULL || phi->block() != b, "must not have phi function to simplify in caller state");
+ );
#endif
}
@@ -2265,7 +2276,7 @@
// setup iteration
kill_all();
_block = beg;
- _state = beg->state()->copy();
+ _state = beg->state()->copy_for_parsing();
_last = beg;
iterate_bytecodes_for_block(beg->bci());
}
@@ -2301,14 +2312,7 @@
while (!bailed_out() && last()->as_BlockEnd() == NULL &&
(code = stream()->next()) != ciBytecodeStream::EOBC() &&
(block_at(s.cur_bci()) == NULL || block_at(s.cur_bci()) == block())) {
-
- if (has_handler() && can_trap(method(), code)) {
- // copy the state because it is modified before handle_exception is called
- set_exception_state(state()->copy());
- } else {
- // handle_exception is not called for this bytecode
- set_exception_state(NULL);
- }
+ assert(state()->kind() == ValueStack::Parsing, "invalid state kind");
// Check for active jsr during OSR compilation
if (compilation()->is_osr_compile()
@@ -2433,12 +2437,12 @@
case Bytecodes::_lmul : arithmetic_op(longType , code); break;
case Bytecodes::_fmul : arithmetic_op(floatType , code); break;
case Bytecodes::_dmul : arithmetic_op(doubleType, code); break;
- case Bytecodes::_idiv : arithmetic_op(intType , code, lock_stack()); break;
- case Bytecodes::_ldiv : arithmetic_op(longType , code, lock_stack()); break;
+ case Bytecodes::_idiv : arithmetic_op(intType , code, copy_state_for_exception()); break;
+ case Bytecodes::_ldiv : arithmetic_op(longType , code, copy_state_for_exception()); break;
case Bytecodes::_fdiv : arithmetic_op(floatType , code); break;
case Bytecodes::_ddiv : arithmetic_op(doubleType, code); break;
- case Bytecodes::_irem : arithmetic_op(intType , code, lock_stack()); break;
- case Bytecodes::_lrem : arithmetic_op(longType , code, lock_stack()); break;
+ case Bytecodes::_irem : arithmetic_op(intType , code, copy_state_for_exception()); break;
+ case Bytecodes::_lrem : arithmetic_op(longType , code, copy_state_for_exception()); break;
case Bytecodes::_frem : arithmetic_op(floatType , code); break;
case Bytecodes::_drem : arithmetic_op(doubleType, code); break;
case Bytecodes::_ineg : negate_op(intType ); break;
@@ -2515,11 +2519,10 @@
case Bytecodes::_new : new_instance(s.get_index_u2()); break;
case Bytecodes::_newarray : new_type_array(); break;
case Bytecodes::_anewarray : new_object_array(); break;
- case Bytecodes::_arraylength : ipush(append(new ArrayLength(apop(), lock_stack()))); break;
+ case Bytecodes::_arraylength : { ValueStack* state_before = copy_state_for_exception(); ipush(append(new ArrayLength(apop(), state_before))); break; }
case Bytecodes::_athrow : throw_op(s.cur_bci()); break;
case Bytecodes::_checkcast : check_cast(s.get_index_u2()); break;
case Bytecodes::_instanceof : instance_of(s.get_index_u2()); break;
- // Note: we do not have special handling for the monitorenter bytecode if DeoptC1 && DeoptOnAsyncException
case Bytecodes::_monitorenter : monitorenter(apop(), s.cur_bci()); break;
case Bytecodes::_monitorexit : monitorexit (apop(), s.cur_bci()); break;
case Bytecodes::_wide : ShouldNotReachHere(); break;
@@ -2546,28 +2549,22 @@
if (end == NULL) {
// all blocks must end with a BlockEnd instruction => add a Goto
end = new Goto(block_at(s.cur_bci()), false);
- _last = _last->set_next(end, prev_bci);
+ append(end);
}
assert(end == last()->as_BlockEnd(), "inconsistency");
- // if the method terminates, we don't need the stack anymore
- if (end->as_Return() != NULL) {
- state()->clear_stack();
- } else if (end->as_Throw() != NULL) {
- // May have exception handler in caller scopes
- state()->truncate_stack(scope()->lock_stack_size());
- }
+ assert(end->state() != NULL, "state must already be present");
+ assert(end->as_Return() == NULL || end->as_Throw() == NULL || end->state()->stack_size() == 0, "stack not needed for return and throw");
// connect to begin & set state
// NOTE that inlining may have changed the block we are parsing
block()->set_end(end);
- end->set_state(state());
// propagate state
for (int i = end->number_of_sux() - 1; i >= 0; i--) {
BlockBegin* sux = end->sux_at(i);
assert(sux->is_predecessor(block()), "predecessor missing");
// be careful, bailout if bytecodes are strange
- if (!sux->try_merge(state())) BAILOUT_("block join failed", NULL);
+ if (!sux->try_merge(end->state())) BAILOUT_("block join failed", NULL);
scope_data()->add_to_work_list(end->sux_at(i));
}
@@ -2605,7 +2602,6 @@
bool GraphBuilder::_can_trap [Bytecodes::number_of_java_codes];
-bool GraphBuilder::_is_async[Bytecodes::number_of_java_codes];
void GraphBuilder::initialize() {
// the following bytecodes are assumed to potentially
@@ -2657,67 +2653,14 @@
, Bytecodes::_multianewarray
};
- // the following bytecodes are assumed to potentially
- // throw asynchronous exceptions in compiled code due
- // to safepoints (note: these entries could be merged
- // with the can_trap_list - however, we need to know
- // which ones are asynchronous for now - see also the
- // comment in GraphBuilder::handle_exception)
- Bytecodes::Code is_async_list[] =
- { Bytecodes::_ifeq
- , Bytecodes::_ifne
- , Bytecodes::_iflt
- , Bytecodes::_ifge
- , Bytecodes::_ifgt
- , Bytecodes::_ifle
- , Bytecodes::_if_icmpeq
- , Bytecodes::_if_icmpne
- , Bytecodes::_if_icmplt
- , Bytecodes::_if_icmpge
- , Bytecodes::_if_icmpgt
- , Bytecodes::_if_icmple
- , Bytecodes::_if_acmpeq
- , Bytecodes::_if_acmpne
- , Bytecodes::_goto
- , Bytecodes::_jsr
- , Bytecodes::_ret
- , Bytecodes::_tableswitch
- , Bytecodes::_lookupswitch
- , Bytecodes::_ireturn
- , Bytecodes::_lreturn
- , Bytecodes::_freturn
- , Bytecodes::_dreturn
- , Bytecodes::_areturn
- , Bytecodes::_return
- , Bytecodes::_ifnull
- , Bytecodes::_ifnonnull
- , Bytecodes::_goto_w
- , Bytecodes::_jsr_w
- };
-
// inititialize trap tables
for (int i = 0; i < Bytecodes::number_of_java_codes; i++) {
_can_trap[i] = false;
- _is_async[i] = false;
}
// set standard trap info
for (uint j = 0; j < ARRAY_SIZE(can_trap_list); j++) {
_can_trap[can_trap_list[j]] = true;
}
-
- // We now deoptimize if an asynchronous exception is thrown. This
- // considerably cleans up corner case issues related to javac's
- // incorrect exception handler ranges for async exceptions and
- // allows us to precisely analyze the types of exceptions from
- // certain bytecodes.
- if (!(DeoptC1 && DeoptOnAsyncException)) {
- // set asynchronous trap info
- for (uint k = 0; k < ARRAY_SIZE(is_async_list); k++) {
- assert(!_can_trap[is_async_list[k]], "can_trap_list and is_async_list should be disjoint");
- _can_trap[is_async_list[k]] = true;
- _is_async[is_async_list[k]] = true;
- }
- }
}
@@ -2733,7 +2676,7 @@
h->set_end(g);
h->set(f);
// setup header block end state
- ValueStack* s = state->copy(); // can use copy since stack is empty (=> no phis)
+ ValueStack* s = state->copy(ValueStack::StateAfter, entry->bci()); // can use copy since stack is empty (=> no phis)
assert(s->stack_is_empty(), "must have empty stack at entry point");
g->set_state(s);
return h;
@@ -2768,8 +2711,8 @@
start->set_next(base, 0);
start->set_end(base);
// create & setup state for start block
- start->set_state(state->copy());
- base->set_state(state->copy());
+ start->set_state(state->copy(ValueStack::StateAfter, std_entry->bci()));
+ base->set_state(state->copy(ValueStack::StateAfter, std_entry->bci()));
if (base->std_entry()->state() == NULL) {
// setup states for header blocks
@@ -2803,6 +2746,7 @@
kill_all();
_block = _osr_entry;
_state = _osr_entry->state()->copy();
+ assert(_state->bci() == osr_bci, "mismatch");
_last = _osr_entry;
Value e = append(new OsrEntry());
e->set_needs_null_check(false);
@@ -2852,7 +2796,6 @@
assert(state->caller_state() == NULL, "should be top scope");
state->clear_locals();
Goto* g = new Goto(target, false);
- g->set_state(_state->copy());
append(g);
_osr_entry->set_end(g);
target->merge(_osr_entry->end()->state());
@@ -2862,7 +2805,7 @@
ValueStack* GraphBuilder::state_at_entry() {
- ValueStack* state = new ValueStack(scope(), method()->max_locals(), method()->max_stack());
+ ValueStack* state = new ValueStack(scope(), NULL);
// Set up locals for receiver
int idx = 0;
@@ -2886,7 +2829,7 @@
// lock synchronized method
if (method()->is_synchronized()) {
- state->lock(scope(), NULL);
+ state->lock(NULL);
}
return state;
@@ -2895,7 +2838,6 @@
GraphBuilder::GraphBuilder(Compilation* compilation, IRScope* scope)
: _scope_data(NULL)
- , _exception_state(NULL)
, _instruction_count(0)
, _osr_entry(NULL)
, _memory(new MemoryBuffer())
@@ -2919,7 +2861,6 @@
// complete graph
_vmap = new ValueMap();
- scope->compute_lock_stack_size();
switch (scope->method()->intrinsic_id()) {
case vmIntrinsics::_dabs : // fall through
case vmIntrinsics::_dsqrt : // fall through
@@ -2945,7 +2886,7 @@
// setup the initial block state
_block = start_block;
- _state = start_block->state()->copy();
+ _state = start_block->state()->copy_for_parsing();
_last = start_block;
load_local(doubleType, 0);
@@ -2957,7 +2898,6 @@
// connect the begin and end blocks and we're all done.
BlockEnd* end = last()->as_BlockEnd();
block()->set_end(end);
- end->set_state(state());
break;
}
default:
@@ -2988,13 +2928,38 @@
}
-ValueStack* GraphBuilder::lock_stack() {
- // return a new ValueStack representing just the current lock stack
- // (for debug info at safepoints in exception throwing or handling)
- ValueStack* new_stack = state()->copy_locks();
- return new_stack;
+ValueStack* GraphBuilder::copy_state_before() {
+ return copy_state_before_with_bci(bci());
+}
+
+ValueStack* GraphBuilder::copy_state_exhandling() {
+ return copy_state_exhandling_with_bci(bci());
+}
+
+ValueStack* GraphBuilder::copy_state_for_exception() {
+ return copy_state_for_exception_with_bci(bci());
+}
+
+ValueStack* GraphBuilder::copy_state_before_with_bci(int bci) {
+ return state()->copy(ValueStack::StateBefore, bci);
}
+ValueStack* GraphBuilder::copy_state_exhandling_with_bci(int bci) {
+ if (!has_handler()) return NULL;
+ return state()->copy(ValueStack::StateBefore, bci);
+}
+
+ValueStack* GraphBuilder::copy_state_for_exception_with_bci(int bci) {
+ ValueStack* s = copy_state_exhandling_with_bci(bci);
+ if (s == NULL) {
+ if (_compilation->env()->jvmti_can_access_local_variables()) {
+ s = state()->copy(ValueStack::ExceptionState, bci);
+ } else {
+ s = state()->copy(ValueStack::EmptyExceptionState, bci);
+ }
+ }
+ return s;
+}
int GraphBuilder::recursive_inline_level(ciMethod* cur_callee) const {
int recur_level = 0;
@@ -3177,9 +3142,9 @@
// create intrinsic node
const bool has_receiver = !callee->is_static();
ValueType* result_type = as_ValueType(callee->return_type());
+ ValueStack* state_before = copy_state_for_exception();
Values* args = state()->pop_arguments(callee->arg_size());
- ValueStack* locks = lock_stack();
if (is_profiling()) {
// Don't profile in the special case where the root method
@@ -3198,7 +3163,7 @@
}
}
- Intrinsic* result = new Intrinsic(result_type, id, args, has_receiver, lock_stack(),
+ Intrinsic* result = new Intrinsic(result_type, id, args, has_receiver, state_before,
preserves_state, cantrap);
// append instruction & push result
Value value = append_split(result);
@@ -3236,10 +3201,9 @@
assert(jsr_start_block != NULL, "jsr start block must exist");
assert(!jsr_start_block->is_set(BlockBegin::was_visited_flag), "should not have visited jsr yet");
Goto* goto_sub = new Goto(jsr_start_block, false);
- goto_sub->set_state(state());
// Must copy state to avoid wrong sharing when parsing bytecodes
assert(jsr_start_block->state() == NULL, "should have fresh jsr starting block");
- jsr_start_block->set_state(state()->copy());
+ jsr_start_block->set_state(copy_state_before_with_bci(jsr_dest_bci));
append(goto_sub);
_block->set_end(goto_sub);
_last = _block = jsr_start_block;
@@ -3290,7 +3254,6 @@
void GraphBuilder::inline_sync_entry(Value lock, BlockBegin* sync_handler) {
assert(lock != NULL && sync_handler != NULL, "lock or handler missing");
- set_exception_state(state()->copy());
monitorenter(lock, SynchronizationEntryBCI);
assert(_last->as_MonitorEnter() != NULL, "monitor enter expected");
_last->set_needs_null_check(false);
@@ -3332,7 +3295,7 @@
int bci = SynchronizationEntryBCI;
if (lock) {
assert(state()->locks_size() > 0 && state()->lock_at(state()->locks_size() - 1) == lock, "lock is missing");
- if (lock->bci() == -99) {
+ if (!lock->is_linked()) {
lock = append_with_bci(lock, -1);
}
@@ -3342,21 +3305,17 @@
// exit the context of the synchronized method
if (!default_handler) {
pop_scope();
- _state = _state->copy();
- bci = _state->scope()->caller_bci();
- _state = _state->pop_scope()->copy();
+ bci = _state->caller_state()->bci();
+ _state = _state->caller_state()->copy_for_parsing();
}
}
// perform the throw as if at the the call site
apush(exception);
-
- set_exception_state(state()->copy());
throw_op(bci);
BlockEnd* end = last()->as_BlockEnd();
block()->set_end(end);
- end->set_state(state());
_block = orig_block;
_state = orig_state;
@@ -3446,7 +3405,7 @@
profile_call(recv, holder_known ? callee->holder() : NULL);
}
if (profile_inlined_calls()) {
- profile_invocation(callee, state(), 0);
+ profile_invocation(callee, copy_state_before());
}
}
@@ -3487,7 +3446,7 @@
// Pass parameters into callee state: add assignments
// note: this will also ensure that all arguments are computed before being passed
ValueStack* callee_state = state();
- ValueStack* caller_state = scope()->caller_state();
+ ValueStack* caller_state = state()->caller_state();
{ int i = args_base;
while (i < caller_state->stack_size()) {
const int par_no = i - args_base;
@@ -3502,16 +3461,7 @@
// Note that we preserve locals state in case we can use it later
// (see use of pop_scope() below)
caller_state->truncate_stack(args_base);
- callee_state->truncate_stack(args_base);
-
- // Setup state that is used at returns form the inlined method.
- // This is essentially the state of the continuation block,
- // but without the return value on stack, if any, this will
- // be pushed at the return instruction (see method_return).
- scope_data()->set_continuation_state(caller_state->copy());
-
- // Compute lock stack size for callee scope now that args have been passed
- scope()->compute_lock_stack_size();
+ assert(callee_state->stack_size() == 0, "callee stack must be empty");
Value lock;
BlockBegin* sync_handler;
@@ -3520,11 +3470,8 @@
if (callee->is_synchronized()) {
lock = callee->is_static() ? append(new Constant(new InstanceConstant(callee->holder()->java_mirror())))
: state()->local_at(0);
- sync_handler = new BlockBegin(-1);
+ sync_handler = new BlockBegin(SynchronizationEntryBCI);
inline_sync_entry(lock, sync_handler);
-
- // recompute the lock stack size
- scope()->compute_lock_stack_size();
}
@@ -3532,7 +3479,6 @@
if (callee_start_block != NULL) {
assert(callee_start_block->is_set(BlockBegin::parser_loop_header_flag), "must be loop header");
Goto* goto_callee = new Goto(callee_start_block, false);
- goto_callee->set_state(state());
// The state for this goto is in the scope of the callee, so use
// the entry bci for the callee instead of the call site bci.
append_with_bci(goto_callee, 0);
@@ -3579,7 +3525,7 @@
&& block() == orig_block
&& block() == inline_cleanup_block()) {
_last = inline_cleanup_return_prev();
- _state = inline_cleanup_state()->pop_scope();
+ _state = inline_cleanup_state();
} else if (continuation_preds == cont->number_of_preds()) {
// Inlining caused that the instructions after the invoke in the
// caller are not reachable any more. So skip filling this block
@@ -3645,8 +3591,7 @@
blb.bci2block()->at_put(0, NULL);
}
- callee_scope->set_caller_state(state());
- set_state(state()->push_scope(callee_scope));
+ set_state(new ValueStack(callee_scope, state()->copy(ValueStack::CallerState, bci())));
ScopeData* data = new ScopeData(scope_data());
data->set_scope(callee_scope);
@@ -3670,10 +3615,6 @@
data->set_scope(scope());
data->setup_jsr_xhandlers();
data->set_continuation(continuation());
- if (continuation() != NULL) {
- assert(continuation_state() != NULL, "");
- data->set_continuation_state(continuation_state()->copy());
- }
data->set_jsr_continuation(jsr_continuation);
_scope_data = data;
}
@@ -3768,6 +3709,7 @@
void GraphBuilder::append_unsafe_CAS(ciMethod* callee) {
+ ValueStack* state_before = copy_state_for_exception();
ValueType* result_type = as_ValueType(callee->return_type());
assert(result_type->is_int(), "int result");
Values* args = state()->pop_arguments(callee->arg_size());
@@ -3796,7 +3738,7 @@
// know which ones so mark the state as no preserved. This will
// cause CSE to invalidate memory across it.
bool preserves_state = false;
- Intrinsic* result = new Intrinsic(result_type, callee->intrinsic_id(), args, false, lock_stack(), preserves_state);
+ Intrinsic* result = new Intrinsic(result_type, callee->intrinsic_id(), args, false, state_before, preserves_state);
append_split(result);
push(result_type, result);
compilation()->set_has_unsafe_access(true);
@@ -3838,6 +3780,6 @@
append(new ProfileCall(method(), bci(), recv, known_holder));
}
-void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state, int bci) {
- append(new ProfileInvoke(callee, state, bci));
+void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state) {
+ append(new ProfileInvoke(callee, state));
}
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -58,9 +58,6 @@
// BlockEnds.
BlockBegin* _continuation;
- // Without return value of inlined method on stack
- ValueStack* _continuation_state;
-
// Was this ScopeData created only for the parsing and inlining of
// a jsr?
bool _parsing_jsr;
@@ -125,14 +122,10 @@
void set_stream(ciBytecodeStream* stream) { _stream = stream; }
intx max_inline_size() const { return _max_inline_size; }
- int caller_stack_size() const;
BlockBegin* continuation() const { return _continuation; }
void set_continuation(BlockBegin* cont) { _continuation = cont; }
- ValueStack* continuation_state() const { return _continuation_state; }
- void set_continuation_state(ValueStack* s) { _continuation_state = s; }
-
// Indicates whether this ScopeData was pushed only for the
// parsing and inlining of a jsr
bool parsing_jsr() const { return _parsing_jsr; }
@@ -163,7 +156,6 @@
// for all GraphBuilders
static bool _can_trap[Bytecodes::number_of_java_codes];
- static bool _is_async[Bytecodes::number_of_java_codes];
// for each instance of GraphBuilder
ScopeData* _scope_data; // Per-scope data; used for inlining
@@ -179,7 +171,6 @@
// for each call to connect_to_end; can also be set by inliner
BlockBegin* _block; // the current block
ValueStack* _state; // the current execution state
- ValueStack* _exception_state; // state that will be used by handle_exception
Instruction* _last; // the last instruction added
bool _skip_block; // skip processing of the rest of this block
@@ -194,8 +185,6 @@
ValueStack* state() const { return _state; }
void set_state(ValueStack* state) { _state = state; }
IRScope* scope() const { return scope_data()->scope(); }
- ValueStack* exception_state() const { return _exception_state; }
- void set_exception_state(ValueStack* s) { _exception_state = s; }
ciMethod* method() const { return scope()->method(); }
ciBytecodeStream* stream() const { return scope_data()->stream(); }
Instruction* last() const { return _last; }
@@ -230,7 +219,7 @@
void load_indexed (BasicType type);
void store_indexed(BasicType type);
void stack_op(Bytecodes::Code code);
- void arithmetic_op(ValueType* type, Bytecodes::Code code, ValueStack* lock_stack = NULL);
+ void arithmetic_op(ValueType* type, Bytecodes::Code code, ValueStack* state_before = NULL);
void negate_op(ValueType* type);
void shift_op(ValueType* type, Bytecodes::Code code);
void logic_op(ValueType* type, Bytecodes::Code code);
@@ -267,12 +256,8 @@
Instruction* append_split(StateSplit* instr);
// other helpers
- static bool is_async(Bytecodes::Code code) {
- assert(0 <= code && code < Bytecodes::number_of_java_codes, "illegal bytecode");
- return _is_async[code];
- }
BlockBegin* block_at(int bci) { return scope_data()->block_at(bci); }
- XHandlers* handle_exception(int bci);
+ XHandlers* handle_exception(Instruction* instruction);
void connect_to_end(BlockBegin* beg);
void null_check(Value value);
void eliminate_redundant_phis(BlockBegin* start);
@@ -283,7 +268,28 @@
void kill_all();
- ValueStack* lock_stack();
+ // use of state copy routines (try to minimize unnecessary state
+ // object allocations):
+
+ // - if the instruction unconditionally needs a full copy of the
+ // state (for patching for example), then use copy_state_before*
+
+ // - if the instruction needs a full copy of the state only for
+ // handler generation (Instruction::needs_exception_state() returns
+ // false) then use copy_state_exhandling*
+
+ // - if the instruction needs either a full copy of the state for
+ // handler generation and a least a minimal copy of the state (as
+ // returned by Instruction::exception_state()) for debug info
+ // generation (that is when Instruction::needs_exception_state()
+ // returns true) then use copy_state_for_exception*
+
+ ValueStack* copy_state_before_with_bci(int bci);
+ ValueStack* copy_state_before();
+ ValueStack* copy_state_exhandling_with_bci(int bci);
+ ValueStack* copy_state_exhandling();
+ ValueStack* copy_state_for_exception_with_bci(int bci);
+ ValueStack* copy_state_for_exception();
//
// Inlining support
@@ -292,9 +298,7 @@
// accessors
bool parsing_jsr() const { return scope_data()->parsing_jsr(); }
BlockBegin* continuation() const { return scope_data()->continuation(); }
- ValueStack* continuation_state() const { return scope_data()->continuation_state(); }
BlockBegin* jsr_continuation() const { return scope_data()->jsr_continuation(); }
- int caller_stack_size() const { return scope_data()->caller_stack_size(); }
void set_continuation(BlockBegin* continuation) { scope_data()->set_continuation(continuation); }
void set_inline_cleanup_info(BlockBegin* block,
Instruction* return_prev,
@@ -343,7 +347,7 @@
NOT_PRODUCT(void print_inline_result(ciMethod* callee, bool res);)
void profile_call(Value recv, ciKlass* predicted_holder);
- void profile_invocation(ciMethod* inlinee, ValueStack* state, int bci);
+ void profile_invocation(ciMethod* inlinee, ValueStack* state);
// Shortcuts to profiling control.
bool is_profiling() { return _compilation->is_profiling(); }
--- a/hotspot/src/share/vm/c1/c1_IR.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_IR.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -116,24 +116,6 @@
// Implementation of IRScope
-
-BlockBegin* IRScope::header_block(BlockBegin* entry, BlockBegin::Flag f, ValueStack* state) {
- if (entry == NULL) return NULL;
- assert(entry->is_set(f), "entry/flag mismatch");
- // create header block
- BlockBegin* h = new BlockBegin(entry->bci());
- BlockEnd* g = new Goto(entry, false);
- h->set_next(g, entry->bci());
- h->set_end(g);
- h->set(f);
- // setup header block end state
- ValueStack* s = state->copy(); // can use copy since stack is empty (=> no phis)
- assert(s->stack_is_empty(), "must have empty stack at entry point");
- g->set_state(s);
- return h;
-}
-
-
BlockBegin* IRScope::build_graph(Compilation* compilation, int osr_bci) {
GraphBuilder gm(compilation, this);
NOT_PRODUCT(if (PrintValueNumbering && Verbose) gm.print_stats());
@@ -145,12 +127,9 @@
IRScope::IRScope(Compilation* compilation, IRScope* caller, int caller_bci, ciMethod* method, int osr_bci, bool create_graph)
: _callees(2)
, _compilation(compilation)
-, _lock_stack_size(-1)
, _requires_phi_function(method->max_locals())
{
_caller = caller;
- _caller_bci = caller == NULL ? -1 : caller_bci;
- _caller_state = NULL; // Must be set later if needed
_level = caller == NULL ? 0 : caller->level() + 1;
_method = method;
_xhandlers = new XHandlers(method);
@@ -182,32 +161,6 @@
}
-void IRScope::compute_lock_stack_size() {
- if (!InlineMethodsWithExceptionHandlers) {
- _lock_stack_size = 0;
- return;
- }
-
- // Figure out whether we have to preserve expression stack elements
- // for parent scopes, and if so, how many
- IRScope* cur_scope = this;
- while (cur_scope != NULL && !cur_scope->xhandlers()->has_handlers()) {
- cur_scope = cur_scope->caller();
- }
- _lock_stack_size = (cur_scope == NULL ? 0 :
- (cur_scope->caller_state() == NULL ? 0 :
- cur_scope->caller_state()->stack_size()));
-}
-
-int IRScope::top_scope_bci() const {
- assert(!is_top_scope(), "no correct answer for top scope possible");
- const IRScope* scope = this;
- while (!scope->caller()->is_top_scope()) {
- scope = scope->caller();
- }
- return scope->caller_bci();
-}
-
bool IRScopeDebugInfo::should_reexecute() {
ciMethod* cur_method = scope()->method();
int cur_bci = bci();
@@ -222,37 +175,24 @@
// Implementation of CodeEmitInfo
// Stack must be NON-null
-CodeEmitInfo::CodeEmitInfo(int bci, ValueStack* stack, XHandlers* exception_handlers)
+CodeEmitInfo::CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers)
: _scope(stack->scope())
- , _bci(bci)
, _scope_debug_info(NULL)
, _oop_map(NULL)
, _stack(stack)
, _exception_handlers(exception_handlers)
- , _next(NULL)
- , _id(-1)
, _is_method_handle_invoke(false) {
assert(_stack != NULL, "must be non null");
- assert(_bci == SynchronizationEntryBCI || Bytecodes::is_defined(scope()->method()->java_code_at_bci(_bci)), "make sure bci points at a real bytecode");
}
-CodeEmitInfo::CodeEmitInfo(CodeEmitInfo* info, bool lock_stack_only)
+CodeEmitInfo::CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack)
: _scope(info->_scope)
, _exception_handlers(NULL)
- , _bci(info->_bci)
, _scope_debug_info(NULL)
, _oop_map(NULL)
+ , _stack(stack == NULL ? info->_stack : stack)
, _is_method_handle_invoke(info->_is_method_handle_invoke) {
- if (lock_stack_only) {
- if (info->_stack != NULL) {
- _stack = info->_stack->copy_locks();
- } else {
- _stack = NULL;
- }
- } else {
- _stack = info->_stack;
- }
// deep copy of exception handlers
if (info->_exception_handlers != NULL) {
@@ -273,8 +213,6 @@
assert(_oop_map != NULL, "oop map must already exist");
assert(opr->is_single_cpu(), "should not call otherwise");
- int frame_size = frame_map()->framesize();
- int arg_count = frame_map()->oop_map_arg_count();
VMReg name = frame_map()->regname(opr);
_oop_map->set_oop(name);
}
@@ -383,8 +321,7 @@
void visit(Value* n) {
// Local instructions and Phis for expression stack values at the
// start of basic blocks are not added to the instruction list
- if ((*n)->bci() == -99 && (*n)->as_Local() == NULL &&
- (*n)->as_Phi() == NULL) {
+ if (!(*n)->is_linked()&& (*n)->can_be_linked()) {
assert(false, "a node was not appended to the graph");
Compilation::current()->bailout("a node was not appended to the graph");
}
@@ -1338,7 +1275,7 @@
// need to remove this instruction from the instruction stream
if (n->subst() != n) {
assert(last != NULL, "must have last");
- last->set_next(n->next(), n->next()->bci());
+ last->set_next(n->next());
} else {
last = n;
}
--- a/hotspot/src/share/vm/c1/c1_IR.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_IR.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -132,8 +132,6 @@
// hierarchy
Compilation* _compilation; // the current compilation
IRScope* _caller; // the caller scope, or NULL
- int _caller_bci; // the caller bci of the corresponding (inlined) invoke, or < 0
- ValueStack* _caller_state; // the caller state, or NULL
int _level; // the inlining level
ciMethod* _method; // the corresponding method
IRScopeList _callees; // the inlined method scopes
@@ -144,15 +142,9 @@
bool _monitor_pairing_ok; // the monitor pairing info
BlockBegin* _start; // the start block, successsors are method entries
- // lock stack management
- int _lock_stack_size; // number of expression stack elements which, if present,
- // must be spilled to the stack because of exception
- // handling inside inlined methods
-
BitMap _requires_phi_function; // bit is set if phi functions at loop headers are necessary for a local variable
// helper functions
- BlockBegin* header_block(BlockBegin* entry, BlockBegin::Flag f, ValueStack* state);
BlockBegin* build_graph(Compilation* compilation, int osr_bci);
public:
@@ -162,33 +154,16 @@
// accessors
Compilation* compilation() const { return _compilation; }
IRScope* caller() const { return _caller; }
- int caller_bci() const { return _caller_bci; }
- ValueStack* caller_state() const { return _caller_state; }
int level() const { return _level; }
ciMethod* method() const { return _method; }
int max_stack() const; // NOTE: expensive
- int lock_stack_size() const {
- assert(_lock_stack_size != -1, "uninitialized");
- return _lock_stack_size;
- }
BitMap& requires_phi_function() { return _requires_phi_function; }
- // mutators
- // Needed because caller state is not ready at time of IRScope construction
- void set_caller_state(ValueStack* state) { _caller_state = state; }
- // Needed because caller state changes after IRScope construction.
- // Computes number of expression stack elements whose state must be
- // preserved in the case of an exception; these may be seen by
- // caller scopes. Zero when inlining of methods containing exception
- // handlers is disabled, otherwise a conservative approximation.
- void compute_lock_stack_size();
-
// hierarchy
bool is_top_scope() const { return _caller == NULL; }
void add_callee(IRScope* callee) { _callees.append(callee); }
int number_of_callees() const { return _callees.length(); }
IRScope* callee_no(int i) const { return _callees.at(i); }
- int top_scope_bci() const;
// accessors, graph
bool is_valid() const { return start() != NULL; }
@@ -266,9 +241,6 @@
XHandlers* _exception_handlers;
OopMap* _oop_map;
ValueStack* _stack; // used by deoptimization (contains also monitors
- int _bci;
- CodeEmitInfo* _next;
- int _id;
bool _is_method_handle_invoke; // true if the associated call site is a MethodHandle call site.
FrameMap* frame_map() const { return scope()->compilation()->frame_map(); }
@@ -277,23 +249,10 @@
public:
// use scope from ValueStack
- CodeEmitInfo(int bci, ValueStack* stack, XHandlers* exception_handlers);
-
- // used by natives
- CodeEmitInfo(IRScope* scope, int bci)
- : _scope(scope)
- , _bci(bci)
- , _oop_map(NULL)
- , _scope_debug_info(NULL)
- , _stack(NULL)
- , _exception_handlers(NULL)
- , _next(NULL)
- , _id(-1)
- , _is_method_handle_invoke(false) {
- }
+ CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers);
// make a copy
- CodeEmitInfo(CodeEmitInfo* info, bool lock_stack_only = false);
+ CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack = NULL);
// accessors
OopMap* oop_map() { return _oop_map; }
@@ -301,17 +260,10 @@
IRScope* scope() const { return _scope; }
XHandlers* exception_handlers() const { return _exception_handlers; }
ValueStack* stack() const { return _stack; }
- int bci() const { return _bci; }
void add_register_oop(LIR_Opr opr);
void record_debug_info(DebugInformationRecorder* recorder, int pc_offset);
- CodeEmitInfo* next() const { return _next; }
- void set_next(CodeEmitInfo* next) { _next = next; }
-
- int id() const { return _id; }
- void set_id(int id) { _id = id; }
-
bool is_method_handle_invoke() const { return _is_method_handle_invoke; }
void set_is_method_handle_invoke(bool x) { _is_method_handle_invoke = x; }
};
--- a/hotspot/src/share/vm/c1/c1_Instruction.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_Instruction.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -29,13 +29,6 @@
// Implementation of Instruction
-#ifdef ASSERT
-void Instruction::create_hi_word() {
- assert(type()->is_double_word() && _hi_word == NULL, "only double word has high word");
- _hi_word = new HiWord(this);
-}
-#endif
-
Instruction::Condition Instruction::mirror(Condition cond) {
switch (cond) {
case eql: return eql;
@@ -63,6 +56,15 @@
return eql;
}
+void Instruction::update_exception_state(ValueStack* state) {
+ if (state != NULL && (state->kind() == ValueStack::EmptyExceptionState || state->kind() == ValueStack::ExceptionState)) {
+ assert(state->kind() == ValueStack::EmptyExceptionState || Compilation::current()->env()->jvmti_can_access_local_variables(), "unexpected state kind");
+ _exception_state = state;
+ } else {
+ _exception_state = NULL;
+ }
+}
+
Instruction* Instruction::prev(BlockBegin* block) {
Instruction* p = NULL;
@@ -75,7 +77,24 @@
}
+void Instruction::state_values_do(ValueVisitor* f) {
+ if (state_before() != NULL) {
+ state_before()->values_do(f);
+ }
+ if (exception_state() != NULL){
+ exception_state()->values_do(f);
+ }
+}
+
+
#ifndef PRODUCT
+void Instruction::check_state(ValueStack* state) {
+ if (state != NULL) {
+ state->verify();
+ }
+}
+
+
void Instruction::print() {
InstructionPrinter ip;
print(ip);
@@ -190,35 +209,6 @@
return NULL;
}
-
-void ArithmeticOp::other_values_do(ValueVisitor* f) {
- if (lock_stack() != NULL) lock_stack()->values_do(f);
-}
-
-void NullCheck::other_values_do(ValueVisitor* f) {
- lock_stack()->values_do(f);
-}
-
-void AccessArray::other_values_do(ValueVisitor* f) {
- if (lock_stack() != NULL) lock_stack()->values_do(f);
-}
-
-
-// Implementation of AccessField
-
-void AccessField::other_values_do(ValueVisitor* f) {
- if (state_before() != NULL) state_before()->values_do(f);
- if (lock_stack() != NULL) lock_stack()->values_do(f);
-}
-
-
-// Implementation of StoreIndexed
-
-IRScope* StoreIndexed::scope() const {
- return lock_stack()->scope();
-}
-
-
// Implementation of ArithmeticOp
bool ArithmeticOp::is_commutative() const {
@@ -266,13 +256,6 @@
}
-// Implementation of CompareOp
-
-void CompareOp::other_values_do(ValueVisitor* f) {
- if (state_before() != NULL) state_before()->values_do(f);
-}
-
-
// Implementation of IfOp
bool IfOp::is_commutative() const {
@@ -301,6 +284,7 @@
void StateSplit::state_values_do(ValueVisitor* f) {
+ Instruction::state_values_do(f);
if (state() != NULL) state()->values_do(f);
}
@@ -316,30 +300,17 @@
}
-void MonitorEnter::state_values_do(ValueVisitor* f) {
- StateSplit::state_values_do(f);
- _lock_stack_before->values_do(f);
-}
-
-
-void Intrinsic::state_values_do(ValueVisitor* f) {
- StateSplit::state_values_do(f);
- if (lock_stack() != NULL) lock_stack()->values_do(f);
-}
-
-
// Implementation of Invoke
Invoke::Invoke(Bytecodes::Code code, ValueType* result_type, Value recv, Values* args,
int vtable_index, ciMethod* target, ValueStack* state_before)
- : StateSplit(result_type)
+ : StateSplit(result_type, state_before)
, _code(code)
, _recv(recv)
, _args(args)
, _vtable_index(vtable_index)
, _target(target)
- , _state_before(state_before)
{
set_flag(TargetIsLoadedFlag, target->is_loaded());
set_flag(TargetIsFinalFlag, target_is_loaded() && target->is_final_method());
@@ -376,7 +347,7 @@
// Implementation of Contant
intx Constant::hash() const {
- if (_state == NULL) {
+ if (state_before() == NULL) {
switch (type()->tag()) {
case intTag:
return HASH2(name(), type()->as_IntConstant()->value());
@@ -499,25 +470,6 @@
}
-void Constant::other_values_do(ValueVisitor* f) {
- if (state() != NULL) state()->values_do(f);
-}
-
-
-// Implementation of NewArray
-
-void NewArray::other_values_do(ValueVisitor* f) {
- if (state_before() != NULL) state_before()->values_do(f);
-}
-
-
-// Implementation of TypeCheck
-
-void TypeCheck::other_values_do(ValueVisitor* f) {
- if (state_before() != NULL) state_before()->values_do(f);
-}
-
-
// Implementation of BlockBegin
void BlockBegin::set_end(BlockEnd* end) {
@@ -604,23 +556,14 @@
// of the inserted block, without recomputing the values of the other blocks
// in the CFG. Therefore the value of "depth_first_number" in BlockBegin becomes meaningless.
BlockBegin* BlockBegin::insert_block_between(BlockBegin* sux) {
- // Try to make the bci close to a block with a single pred or sux,
- // since this make the block layout algorithm work better.
- int bci = -1;
- if (sux->number_of_preds() == 1) {
- bci = sux->bci();
- } else {
- bci = end()->bci();
- }
-
- BlockBegin* new_sux = new BlockBegin(bci);
+ BlockBegin* new_sux = new BlockBegin(-99);
// mark this block (special treatment when block order is computed)
new_sux->set(critical_edge_split_flag);
// This goto is not a safepoint.
Goto* e = new Goto(sux, false);
- new_sux->set_next(e, bci);
+ new_sux->set_next(e, end()->state()->bci());
new_sux->set_end(e);
// setup states
ValueStack* s = end()->state();
@@ -763,7 +706,7 @@
}
// copy state because it is altered
- new_state = new_state->copy();
+ new_state = new_state->copy(ValueStack::BlockBeginState, bci());
// Use method liveness to invalidate dead locals
MethodLivenessResult liveness = new_state->scope()->method()->liveness_at_bci(bci());
@@ -800,19 +743,9 @@
// initialize state of block
set_state(new_state);
- } else if (existing_state->is_same_across_scopes(new_state)) {
+ } else if (existing_state->is_same(new_state)) {
TRACE_PHI(tty->print_cr("exisiting state found"));
- // Inlining may cause the local state not to match up, so walk up
- // the new state until we get to the same scope as the
- // existing and then start processing from there.
- while (existing_state->scope() != new_state->scope()) {
- new_state = new_state->caller_state();
- assert(new_state != NULL, "could not match up scopes");
-
- assert(false, "check if this is necessary");
- }
-
assert(existing_state->scope() == new_state->scope(), "not matching");
assert(existing_state->locals_size() == new_state->locals_size(), "not matching");
assert(existing_state->stack_size() == new_state->stack_size(), "not matching");
@@ -969,11 +902,6 @@
}
-void BlockEnd::other_values_do(ValueVisitor* f) {
- if (state_before() != NULL) state_before()->values_do(f);
-}
-
-
// Implementation of Phi
// Normal phi functions take their operands from the last instruction of the
@@ -1006,11 +934,6 @@
}
-// Implementation of Throw
-
-void Throw::state_values_do(ValueVisitor* f) {
- BlockEnd::state_values_do(f);
-}
void ProfileInvoke::state_values_do(ValueVisitor* f) {
if (state() != NULL) state()->values_do(f);
--- a/hotspot/src/share/vm/c1/c1_Instruction.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_Instruction.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -38,7 +38,6 @@
// serve factoring.
class Instruction;
-class HiWord;
class Phi;
class Local;
class Constant;
@@ -149,7 +148,6 @@
class InstructionVisitor: public StackObj {
public:
- void do_HiWord (HiWord* x) { ShouldNotReachHere(); }
virtual void do_Phi (Phi* x) = 0;
virtual void do_Local (Local* x) = 0;
virtual void do_Constant (Constant* x) = 0;
@@ -272,7 +270,9 @@
class Instruction: public CompilationResourceObj {
private:
int _id; // the unique instruction id
- int _bci; // the instruction bci
+#ifndef PRODUCT
+ int _printable_bci; // the bci of the instruction for printing
+#endif
int _use_count; // the number of instructions refering to this value (w/o prev/next); only roots can have use count = 0 or > 1
int _pin_state; // set of PinReason describing the reason for pinning
ValueType* _type; // the instruction value type
@@ -281,17 +281,18 @@
LIR_Opr _operand; // LIR specific information
unsigned int _flags; // Flag bits
+ ValueStack* _state_before; // Copy of state with input operands still on stack (or NULL)
+ ValueStack* _exception_state; // Copy of state for exception handling
XHandlers* _exception_handlers; // Flat list of exception handlers covering this instruction
-#ifdef ASSERT
- HiWord* _hi_word;
-#endif
-
friend class UseCountComputer;
friend class BlockBegin;
+ void update_exception_state(ValueStack* state);
+
+ bool has_printable_bci() const { return NOT_PRODUCT(_printable_bci != -99) PRODUCT_ONLY(false); }
+
protected:
- void set_bci(int bci) { assert(bci == SynchronizationEntryBCI || bci >= 0, "illegal bci"); _bci = bci; }
void set_type(ValueType* type) {
assert(type != NULL, "type must exist");
_type = type;
@@ -325,6 +326,7 @@
NeedsPatchingFlag,
ThrowIncompatibleClassChangeErrorFlag,
ProfileMDOFlag,
+ IsLinkedInBlockFlag,
InstructionLastFlag
};
@@ -356,31 +358,31 @@
}
// creation
- Instruction(ValueType* type, bool type_is_constant = false, bool create_hi = true)
- : _bci(-99)
- , _use_count(0)
+ Instruction(ValueType* type, ValueStack* state_before = NULL, bool type_is_constant = false)
+ : _use_count(0)
+#ifndef PRODUCT
+ , _printable_bci(-99)
+#endif
, _pin_state(0)
, _type(type)
, _next(NULL)
, _subst(NULL)
, _flags(0)
, _operand(LIR_OprFact::illegalOpr)
+ , _state_before(state_before)
, _exception_handlers(NULL)
-#ifdef ASSERT
- , _hi_word(NULL)
-#endif
{
+ check_state(state_before);
assert(type != NULL && (!type->is_constant() || type_is_constant), "type must exist");
-#ifdef ASSERT
- if (create_hi && type->is_double_word()) {
- create_hi_word();
- }
-#endif
+ update_exception_state(_state_before);
}
// accessors
int id() const { return _id; }
- int bci() const { return _bci; }
+#ifndef PRODUCT
+ int printable_bci() const { assert(has_printable_bci(), "_printable_bci should have been set"); return _printable_bci; }
+ void set_printable_bci(int bci) { NOT_PRODUCT(_printable_bci = bci;) }
+#endif
int use_count() const { return _use_count; }
int pin_state() const { return _pin_state; }
bool is_pinned() const { return _pin_state != 0 || PinAllInstructions; }
@@ -393,9 +395,13 @@
void set_needs_null_check(bool f) { set_flag(NeedsNullCheckFlag, f); }
bool needs_null_check() const { return check_flag(NeedsNullCheckFlag); }
+ bool is_linked() const { return check_flag(IsLinkedInBlockFlag); }
+ bool can_be_linked() { return as_Local() == NULL && as_Phi() == NULL; }
bool has_uses() const { return use_count() > 0; }
- bool is_root() const { return is_pinned() || use_count() > 1; }
+ ValueStack* state_before() const { return _state_before; }
+ ValueStack* exception_state() const { return _exception_state; }
+ virtual bool needs_exception_state() const { return true; }
XHandlers* exception_handlers() const { return _exception_handlers; }
// manipulation
@@ -403,17 +409,23 @@
void pin() { _pin_state |= PinUnknown; }
// DANGEROUS: only used by EliminateStores
void unpin(PinReason reason) { assert((reason & PinUnknown) == 0, "can't unpin unknown state"); _pin_state &= ~reason; }
- virtual void set_lock_stack(ValueStack* l) { /* do nothing*/ }
- virtual ValueStack* lock_stack() const { return NULL; }
+
+ Instruction* set_next(Instruction* next) {
+ assert(next->has_printable_bci(), "_printable_bci should have been set");
+ assert(next != NULL, "must not be NULL");
+ assert(as_BlockEnd() == NULL, "BlockEnd instructions must have no next");
+ assert(next->can_be_linked(), "shouldn't link these instructions into list");
+
+ next->set_flag(Instruction::IsLinkedInBlockFlag, true);
+ _next = next;
+ return next;
+ }
Instruction* set_next(Instruction* next, int bci) {
- if (next != NULL) {
- assert(as_BlockEnd() == NULL, "BlockEnd instructions must have no next");
- assert(next->as_Phi() == NULL && next->as_Local() == NULL, "shouldn't link these instructions into list");
- next->set_bci(bci);
- }
- _next = next;
- return next;
+#ifndef PRODUCT
+ next->set_printable_bci(bci);
+#endif
+ return set_next(next);
}
void set_subst(Instruction* subst) {
@@ -423,14 +435,7 @@
_subst = subst;
}
void set_exception_handlers(XHandlers *xhandlers) { _exception_handlers = xhandlers; }
-
-#ifdef ASSERT
- // HiWord is used for debugging and is allocated early to avoid
- // allocation at inconvenient points
- HiWord* hi_word() { return _hi_word; }
- void create_hi_word();
-#endif
-
+ void set_exception_state(ValueStack* s) { check_state(s); _exception_state = s; }
// machine-specifics
void set_operand(LIR_Opr operand) { assert(operand != LIR_OprFact::illegalOpr, "operand must exist"); _operand = operand; }
@@ -438,7 +443,6 @@
// generic
virtual Instruction* as_Instruction() { return this; } // to satisfy HASHING1 macro
- virtual HiWord* as_HiWord() { return NULL; }
virtual Phi* as_Phi() { return NULL; }
virtual Local* as_Local() { return NULL; }
virtual Constant* as_Constant() { return NULL; }
@@ -493,7 +497,7 @@
virtual bool can_trap() const { return false; }
virtual void input_values_do(ValueVisitor* f) = 0;
- virtual void state_values_do(ValueVisitor* f) { /* usually no state - override on demand */ }
+ virtual void state_values_do(ValueVisitor* f);
virtual void other_values_do(ValueVisitor* f) { /* usually no other - override on demand */ }
void values_do(ValueVisitor* f) { input_values_do(f); state_values_do(f); other_values_do(f); }
@@ -505,6 +509,7 @@
HASHING1(Instruction, false, id()) // hashing disabled by default
// debugging
+ static void check_state(ValueStack* state) PRODUCT_RETURN;
void print() PRODUCT_RETURN;
void print_line() PRODUCT_RETURN;
void print(InstructionPrinter& ip) PRODUCT_RETURN;
@@ -541,40 +546,6 @@
#endif // ASSERT
-// A HiWord occupies the 'high word' of a 2-word
-// expression stack entry. Hi & lo words must be
-// paired on the expression stack (otherwise the
-// bytecode sequence is illegal). Note that 'hi'
-// refers to the IR expression stack format and
-// does *not* imply a machine word ordering. No
-// HiWords are used in optimized mode for speed,
-// but NULL pointers are used instead.
-
-LEAF(HiWord, Instruction)
- private:
- Value _lo_word;
-
- public:
- // creation
- HiWord(Value lo_word)
- : Instruction(illegalType, false, false),
- _lo_word(lo_word) {
- // hi-words are also allowed for illegal lo-words
- assert(lo_word->type()->is_double_word() || lo_word->type()->is_illegal(),
- "HiWord must be used for 2-word values only");
- }
-
- // accessors
- Value lo_word() const { return _lo_word->subst(); }
-
- // for invalidating of HiWords
- void make_illegal() { set_type(illegalType); }
-
- // generic
- virtual void input_values_do(ValueVisitor* f) { ShouldNotReachHere(); }
-};
-
-
// A Phi is a phi function in the sense of SSA form. It stands for
// the value of a local variable at the beginning of a join block.
// A Phi consists of n operands, one for every incoming branch.
@@ -656,31 +627,25 @@
LEAF(Constant, Instruction)
- ValueStack* _state;
-
public:
// creation
Constant(ValueType* type):
- Instruction(type, true)
- , _state(NULL) {
+ Instruction(type, NULL, true)
+ {
assert(type->is_constant(), "must be a constant");
}
- Constant(ValueType* type, ValueStack* state):
- Instruction(type, true)
- , _state(state) {
- assert(state != NULL, "only used for constants which need patching");
+ Constant(ValueType* type, ValueStack* state_before):
+ Instruction(type, state_before, true)
+ {
+ assert(state_before != NULL, "only used for constants which need patching");
assert(type->is_constant(), "must be a constant");
// since it's patching it needs to be pinned
pin();
}
- ValueStack* state() const { return _state; }
-
- // generic
- virtual bool can_trap() const { return state() != NULL; }
+ virtual bool can_trap() const { return state_before() != NULL; }
virtual void input_values_do(ValueVisitor* f) { /* no values */ }
- virtual void other_values_do(ValueVisitor* f);
virtual intx hash() const;
virtual bool is_equal(Value v) const;
@@ -695,20 +660,16 @@
Value _obj;
int _offset;
ciField* _field;
- ValueStack* _state_before; // state is set only for unloaded or uninitialized fields
- ValueStack* _lock_stack; // contains lock and scope information
NullCheck* _explicit_null_check; // For explicit null check elimination
public:
// creation
- AccessField(Value obj, int offset, ciField* field, bool is_static, ValueStack* lock_stack,
+ AccessField(Value obj, int offset, ciField* field, bool is_static,
ValueStack* state_before, bool is_loaded, bool is_initialized)
- : Instruction(as_ValueType(field->type()->basic_type()))
+ : Instruction(as_ValueType(field->type()->basic_type()), state_before)
, _obj(obj)
, _offset(offset)
, _field(field)
- , _lock_stack(lock_stack)
- , _state_before(state_before)
, _explicit_null_check(NULL)
{
set_needs_null_check(!is_static);
@@ -734,13 +695,11 @@
bool is_static() const { return check_flag(IsStaticFlag); }
bool is_loaded() const { return check_flag(IsLoadedFlag); }
bool is_initialized() const { return check_flag(IsInitializedFlag); }
- ValueStack* state_before() const { return _state_before; }
- ValueStack* lock_stack() const { return _lock_stack; }
NullCheck* explicit_null_check() const { return _explicit_null_check; }
bool needs_patching() const { return check_flag(NeedsPatchingFlag); }
// manipulation
- void set_lock_stack(ValueStack* l) { _lock_stack = l; }
+
// Under certain circumstances, if a previous NullCheck instruction
// proved the target object non-null, we can eliminate the explicit
// null check and do an implicit one, simply specifying the debug
@@ -751,16 +710,15 @@
// generic
virtual bool can_trap() const { return needs_null_check() || needs_patching(); }
virtual void input_values_do(ValueVisitor* f) { f->visit(&_obj); }
- virtual void other_values_do(ValueVisitor* f);
};
LEAF(LoadField, AccessField)
public:
// creation
- LoadField(Value obj, int offset, ciField* field, bool is_static, ValueStack* lock_stack,
+ LoadField(Value obj, int offset, ciField* field, bool is_static,
ValueStack* state_before, bool is_loaded, bool is_initialized)
- : AccessField(obj, offset, field, is_static, lock_stack, state_before, is_loaded, is_initialized)
+ : AccessField(obj, offset, field, is_static, state_before, is_loaded, is_initialized)
{}
ciType* declared_type() const;
@@ -777,9 +735,9 @@
public:
// creation
- StoreField(Value obj, int offset, ciField* field, Value value, bool is_static, ValueStack* lock_stack,
+ StoreField(Value obj, int offset, ciField* field, Value value, bool is_static,
ValueStack* state_before, bool is_loaded, bool is_initialized)
- : AccessField(obj, offset, field, is_static, lock_stack, state_before, is_loaded, is_initialized)
+ : AccessField(obj, offset, field, is_static, state_before, is_loaded, is_initialized)
, _value(value)
{
set_flag(NeedsWriteBarrierFlag, as_ValueType(field_type())->is_object());
@@ -799,29 +757,23 @@
BASE(AccessArray, Instruction)
private:
Value _array;
- ValueStack* _lock_stack;
public:
// creation
- AccessArray(ValueType* type, Value array, ValueStack* lock_stack)
- : Instruction(type)
+ AccessArray(ValueType* type, Value array, ValueStack* state_before)
+ : Instruction(type, state_before)
, _array(array)
- , _lock_stack(lock_stack) {
+ {
set_needs_null_check(true);
ASSERT_VALUES
pin(); // instruction with side effect (null exception or range check throwing)
}
Value array() const { return _array; }
- ValueStack* lock_stack() const { return _lock_stack; }
-
- // setters
- void set_lock_stack(ValueStack* l) { _lock_stack = l; }
// generic
virtual bool can_trap() const { return needs_null_check(); }
virtual void input_values_do(ValueVisitor* f) { f->visit(&_array); }
- virtual void other_values_do(ValueVisitor* f);
};
@@ -831,8 +783,8 @@
public:
// creation
- ArrayLength(Value array, ValueStack* lock_stack)
- : AccessArray(intType, array, lock_stack)
+ ArrayLength(Value array, ValueStack* state_before)
+ : AccessArray(intType, array, state_before)
, _explicit_null_check(NULL) {}
// accessors
@@ -855,8 +807,8 @@
public:
// creation
- AccessIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* lock_stack)
- : AccessArray(as_ValueType(elt_type), array, lock_stack)
+ AccessIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before)
+ : AccessArray(as_ValueType(elt_type), array, state_before)
, _index(index)
, _length(length)
, _elt_type(elt_type)
@@ -883,8 +835,8 @@
public:
// creation
- LoadIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* lock_stack)
- : AccessIndexed(array, index, length, elt_type, lock_stack)
+ LoadIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before)
+ : AccessIndexed(array, index, length, elt_type, state_before)
, _explicit_null_check(NULL) {}
// accessors
@@ -910,8 +862,8 @@
int _profiled_bci;
public:
// creation
- StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* lock_stack)
- : AccessIndexed(array, index, length, elt_type, lock_stack)
+ StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before)
+ : AccessIndexed(array, index, length, elt_type, state_before)
, _value(value), _profiled_method(NULL), _profiled_bci(0)
{
set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object()));
@@ -922,7 +874,6 @@
// accessors
Value value() const { return _value; }
- IRScope* scope() const; // the state's scope
bool needs_write_barrier() const { return check_flag(NeedsWriteBarrierFlag); }
bool needs_store_check() const { return check_flag(NeedsStoreCheckFlag); }
// Helpers for methodDataOop profiling
@@ -963,7 +914,12 @@
public:
// creation
- Op2(ValueType* type, Bytecodes::Code op, Value x, Value y) : Instruction(type), _op(op), _x(x), _y(y) {
+ Op2(ValueType* type, Bytecodes::Code op, Value x, Value y, ValueStack* state_before = NULL)
+ : Instruction(type, state_before)
+ , _op(op)
+ , _x(x)
+ , _y(y)
+ {
ASSERT_VALUES
}
@@ -985,28 +941,21 @@
LEAF(ArithmeticOp, Op2)
- private:
- ValueStack* _lock_stack; // used only for division operations
public:
// creation
- ArithmeticOp(Bytecodes::Code op, Value x, Value y, bool is_strictfp, ValueStack* lock_stack)
- : Op2(x->type()->meet(y->type()), op, x, y)
- , _lock_stack(lock_stack) {
+ ArithmeticOp(Bytecodes::Code op, Value x, Value y, bool is_strictfp, ValueStack* state_before)
+ : Op2(x->type()->meet(y->type()), op, x, y, state_before)
+ {
set_flag(IsStrictfpFlag, is_strictfp);
if (can_trap()) pin();
}
// accessors
- ValueStack* lock_stack() const { return _lock_stack; }
bool is_strictfp() const { return check_flag(IsStrictfpFlag); }
- // setters
- void set_lock_stack(ValueStack* l) { _lock_stack = l; }
-
// generic
virtual bool is_commutative() const;
virtual bool can_trap() const;
- virtual void other_values_do(ValueVisitor* f);
HASHING3(Op2, true, op(), x()->subst(), y()->subst())
};
@@ -1033,21 +982,14 @@
LEAF(CompareOp, Op2)
- private:
- ValueStack* _state_before; // for deoptimization, when canonicalizing
public:
// creation
CompareOp(Bytecodes::Code op, Value x, Value y, ValueStack* state_before)
- : Op2(intType, op, x, y)
- , _state_before(state_before)
+ : Op2(intType, op, x, y, state_before)
{}
- // accessors
- ValueStack* state_before() const { return _state_before; }
-
// generic
HASHING3(Op2, true, op(), x()->subst(), y()->subst())
- virtual void other_values_do(ValueVisitor* f);
};
@@ -1103,11 +1045,13 @@
LEAF(NullCheck, Instruction)
private:
Value _obj;
- ValueStack* _lock_stack;
public:
// creation
- NullCheck(Value obj, ValueStack* lock_stack) : Instruction(obj->type()->base()), _obj(obj), _lock_stack(lock_stack) {
+ NullCheck(Value obj, ValueStack* state_before)
+ : Instruction(obj->type()->base(), state_before)
+ , _obj(obj)
+ {
ASSERT_VALUES
set_can_trap(true);
assert(_obj->type()->is_object(), "null check must be applied to objects only");
@@ -1116,16 +1060,13 @@
// accessors
Value obj() const { return _obj; }
- ValueStack* lock_stack() const { return _lock_stack; }
// setters
- void set_lock_stack(ValueStack* l) { _lock_stack = l; }
void set_can_trap(bool can_trap) { set_flag(CanTrapFlag, can_trap); }
// generic
virtual bool can_trap() const { return check_flag(CanTrapFlag); /* null-check elimination sets to false */ }
virtual void input_values_do(ValueVisitor* f) { f->visit(&_obj); }
- virtual void other_values_do(ValueVisitor* f);
HASHING1(NullCheck, true, obj()->subst())
};
@@ -1139,7 +1080,10 @@
public:
// creation
- StateSplit(ValueType* type) : Instruction(type), _state(NULL) {
+ StateSplit(ValueType* type, ValueStack* state_before = NULL)
+ : Instruction(type, state_before)
+ , _state(NULL)
+ {
pin(PinStateSplitConstructor);
}
@@ -1148,7 +1092,7 @@
IRScope* scope() const; // the state's scope
// manipulation
- void set_state(ValueStack* state) { _state = state; }
+ void set_state(ValueStack* state) { assert(_state == NULL, "overwriting existing state"); check_state(state); _state = state; }
// generic
virtual void input_values_do(ValueVisitor* f) { /* no values */ }
@@ -1164,7 +1108,6 @@
BasicTypeList* _signature;
int _vtable_index;
ciMethod* _target;
- ValueStack* _state_before; // Required for deoptimization.
public:
// creation
@@ -1180,7 +1123,6 @@
int vtable_index() const { return _vtable_index; }
BasicTypeList* signature() const { return _signature; }
ciMethod* target() const { return _target; }
- ValueStack* state_before() const { return _state_before; }
// Returns false if target is not loaded
bool target_is_final() const { return check_flag(TargetIsFinalFlag); }
@@ -1191,6 +1133,8 @@
// JSR 292 support
bool is_invokedynamic() const { return code() == Bytecodes::_invokedynamic; }
+ virtual bool needs_exception_state() const { return false; }
+
// generic
virtual bool can_trap() const { return true; }
virtual void input_values_do(ValueVisitor* f) {
@@ -1208,11 +1152,16 @@
public:
// creation
- NewInstance(ciInstanceKlass* klass) : StateSplit(instanceType), _klass(klass) {}
+ NewInstance(ciInstanceKlass* klass, ValueStack* state_before)
+ : StateSplit(instanceType, state_before)
+ , _klass(klass)
+ {}
// accessors
ciInstanceKlass* klass() const { return _klass; }
+ virtual bool needs_exception_state() const { return false; }
+
// generic
virtual bool can_trap() const { return true; }
ciType* exact_type() const;
@@ -1222,22 +1171,24 @@
BASE(NewArray, StateSplit)
private:
Value _length;
- ValueStack* _state_before;
public:
// creation
- NewArray(Value length, ValueStack* state_before) : StateSplit(objectType), _length(length), _state_before(state_before) {
+ NewArray(Value length, ValueStack* state_before)
+ : StateSplit(objectType, state_before)
+ , _length(length)
+ {
// Do not ASSERT_VALUES since length is NULL for NewMultiArray
}
// accessors
- ValueStack* state_before() const { return _state_before; }
Value length() const { return _length; }
+ virtual bool needs_exception_state() const { return false; }
+
// generic
virtual bool can_trap() const { return true; }
virtual void input_values_do(ValueVisitor* f) { StateSplit::input_values_do(f); f->visit(&_length); }
- virtual void other_values_do(ValueVisitor* f);
};
@@ -1247,7 +1198,10 @@
public:
// creation
- NewTypeArray(Value length, BasicType elt_type) : NewArray(length, NULL), _elt_type(elt_type) {}
+ NewTypeArray(Value length, BasicType elt_type, ValueStack* state_before)
+ : NewArray(length, state_before)
+ , _elt_type(elt_type)
+ {}
// accessors
BasicType elt_type() const { return _elt_type; }
@@ -1303,7 +1257,6 @@
private:
ciKlass* _klass;
Value _obj;
- ValueStack* _state_before;
ciMethod* _profiled_method;
int _profiled_bci;
@@ -1311,14 +1264,13 @@
public:
// creation
TypeCheck(ciKlass* klass, Value obj, ValueType* type, ValueStack* state_before)
- : StateSplit(type), _klass(klass), _obj(obj), _state_before(state_before),
+ : StateSplit(type, state_before), _klass(klass), _obj(obj),
_profiled_method(NULL), _profiled_bci(0) {
ASSERT_VALUES
set_direct_compare(false);
}
// accessors
- ValueStack* state_before() const { return _state_before; }
ciKlass* klass() const { return _klass; }
Value obj() const { return _obj; }
bool is_loaded() const { return klass() != NULL; }
@@ -1330,7 +1282,6 @@
// generic
virtual bool can_trap() const { return true; }
virtual void input_values_do(ValueVisitor* f) { StateSplit::input_values_do(f); f->visit(&_obj); }
- virtual void other_values_do(ValueVisitor* f);
// Helpers for methodDataOop profiling
void set_should_profile(bool value) { set_flag(ProfileMDOFlag, value); }
@@ -1364,6 +1315,8 @@
public:
// creation
InstanceOf(ciKlass* klass, Value obj, ValueStack* state_before) : TypeCheck(klass, obj, intType, state_before) {}
+
+ virtual bool needs_exception_state() const { return false; }
};
@@ -1374,8 +1327,8 @@
public:
// creation
- AccessMonitor(Value obj, int monitor_no)
- : StateSplit(illegalType)
+ AccessMonitor(Value obj, int monitor_no, ValueStack* state_before = NULL)
+ : StateSplit(illegalType, state_before)
, _obj(obj)
, _monitor_no(monitor_no)
{
@@ -1393,22 +1346,14 @@
LEAF(MonitorEnter, AccessMonitor)
- private:
- ValueStack* _lock_stack_before;
-
public:
// creation
- MonitorEnter(Value obj, int monitor_no, ValueStack* lock_stack_before)
- : AccessMonitor(obj, monitor_no)
- , _lock_stack_before(lock_stack_before)
+ MonitorEnter(Value obj, int monitor_no, ValueStack* state_before)
+ : AccessMonitor(obj, monitor_no, state_before)
{
ASSERT_VALUES
}
- // accessors
- ValueStack* lock_stack_before() const { return _lock_stack_before; }
- virtual void state_values_do(ValueVisitor* f);
-
// generic
virtual bool can_trap() const { return true; }
};
@@ -1417,7 +1362,11 @@
LEAF(MonitorExit, AccessMonitor)
public:
// creation
- MonitorExit(Value obj, int monitor_no) : AccessMonitor(obj, monitor_no) {}
+ MonitorExit(Value obj, int monitor_no)
+ : AccessMonitor(obj, monitor_no, NULL)
+ {
+ ASSERT_VALUES
+ }
};
@@ -1425,7 +1374,6 @@
private:
vmIntrinsics::ID _id;
Values* _args;
- ValueStack* _lock_stack;
Value _recv;
public:
@@ -1440,13 +1388,12 @@
vmIntrinsics::ID id,
Values* args,
bool has_receiver,
- ValueStack* lock_stack,
+ ValueStack* state_before,
bool preserves_state,
bool cantrap = true)
- : StateSplit(type)
+ : StateSplit(type, state_before)
, _id(id)
, _args(args)
- , _lock_stack(lock_stack)
, _recv(NULL)
{
assert(args != NULL, "args must exist");
@@ -1468,7 +1415,6 @@
vmIntrinsics::ID id() const { return _id; }
int number_of_arguments() const { return _args->length(); }
Value argument_at(int i) const { return _args->at(i); }
- ValueStack* lock_stack() const { return _lock_stack; }
bool has_receiver() const { return (_recv != NULL); }
Value receiver() const { assert(has_receiver(), "must have receiver"); return _recv; }
@@ -1480,8 +1426,6 @@
StateSplit::input_values_do(f);
for (int i = 0; i < _args->length(); i++) f->visit(_args->adr_at(i));
}
- virtual void state_values_do(ValueVisitor* f);
-
};
@@ -1490,6 +1434,7 @@
LEAF(BlockBegin, StateSplit)
private:
int _block_id; // the unique block id
+ int _bci; // start-bci of block
int _depth_first_number; // number of this block in a depth-first ordering
int _linear_scan_number; // number of this block in linear-scan ordering
int _loop_depth; // the loop nesting level of this block
@@ -1546,6 +1491,7 @@
// creation
BlockBegin(int bci)
: StateSplit(illegalType)
+ , _bci(bci)
, _depth_first_number(-1)
, _linear_scan_number(-1)
, _loop_depth(0)
@@ -1570,11 +1516,14 @@
, _total_preds(0)
, _stores_to_locals()
{
- set_bci(bci);
+#ifndef PRODUCT
+ set_printable_bci(bci);
+#endif
}
// accessors
int block_id() const { return _block_id; }
+ int bci() const { return _bci; }
BlockList* successors() { return &_successors; }
BlockBegin* dominator() const { return _dominator; }
int loop_depth() const { return _loop_depth; }
@@ -1596,7 +1545,6 @@
BitMap& stores_to_locals() { return _stores_to_locals; }
// manipulation
- void set_bci(int bci) { Instruction::set_bci(bci); }
void set_dominator(BlockBegin* dom) { _dominator = dom; }
void set_loop_depth(int d) { _loop_depth = d; }
void set_depth_first_number(int dfn) { _depth_first_number = dfn; }
@@ -1694,7 +1642,6 @@
private:
BlockBegin* _begin;
BlockList* _sux;
- ValueStack* _state_before;
protected:
BlockList* sux() const { return _sux; }
@@ -1710,24 +1657,20 @@
public:
// creation
BlockEnd(ValueType* type, ValueStack* state_before, bool is_safepoint)
- : StateSplit(type)
+ : StateSplit(type, state_before)
, _begin(NULL)
, _sux(NULL)
- , _state_before(state_before) {
+ {
set_flag(IsSafepointFlag, is_safepoint);
}
// accessors
- ValueStack* state_before() const { return _state_before; }
bool is_safepoint() const { return check_flag(IsSafepointFlag); }
BlockBegin* begin() const { return _begin; }
// manipulation
void set_begin(BlockBegin* begin);
- // generic
- virtual void other_values_do(ValueVisitor* f);
-
// successors
int number_of_sux() const { return _sux != NULL ? _sux->length() : 0; }
BlockBegin* sux_at(int i) const { return _sux->at(i); }
@@ -1919,6 +1862,8 @@
Value tag() const { return _tag; }
int length() const { return number_of_sux() - 1; }
+ virtual bool needs_exception_state() const { return false; }
+
// generic
virtual void input_values_do(ValueVisitor* f) { BlockEnd::input_values_do(f); f->visit(&_tag); }
};
@@ -1996,7 +1941,6 @@
// generic
virtual bool can_trap() const { return true; }
virtual void input_values_do(ValueVisitor* f) { BlockEnd::input_values_do(f); f->visit(&_exception); }
- virtual void state_values_do(ValueVisitor* f);
};
@@ -2022,9 +1966,9 @@
public:
// creation
#ifdef _LP64
- OsrEntry() : Instruction(longType, false) { pin(); }
+ OsrEntry() : Instruction(longType) { pin(); }
#else
- OsrEntry() : Instruction(intType, false) { pin(); }
+ OsrEntry() : Instruction(intType) { pin(); }
#endif
// generic
@@ -2036,7 +1980,7 @@
LEAF(ExceptionObject, Instruction)
public:
// creation
- ExceptionObject() : Instruction(objectType, false) {
+ ExceptionObject() : Instruction(objectType) {
pin();
}
@@ -2091,7 +2035,6 @@
// generic
virtual void input_values_do(ValueVisitor* f) { }
- virtual void other_values_do(ValueVisitor* f) { }
};
@@ -2303,13 +2246,11 @@
private:
ciMethod* _inlinee;
ValueStack* _state;
- int _bci_of_invoke;
public:
- ProfileInvoke(ciMethod* inlinee, ValueStack* state, int bci)
+ ProfileInvoke(ciMethod* inlinee, ValueStack* state)
: Instruction(voidType)
, _inlinee(inlinee)
- , _bci_of_invoke(bci)
, _state(state)
{
// The ProfileInvoke has side-effects and must occur precisely where located QQQ???
@@ -2318,7 +2259,6 @@
ciMethod* inlinee() { return _inlinee; }
ValueStack* state() { return _state; }
- int bci_of_invoke() { return _bci_of_invoke; }
virtual void input_values_do(ValueVisitor*) {}
virtual void state_values_do(ValueVisitor*);
};
--- a/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -316,7 +316,7 @@
void InstructionPrinter::print_line(Instruction* instr) {
// print instruction data on one line
if (instr->is_pinned()) output()->put('.');
- fill_to(bci_pos ); output()->print("%d", instr->bci());
+ fill_to(bci_pos ); output()->print("%d", instr->printable_bci());
fill_to(use_pos ); output()->print("%d", instr->use_count());
fill_to(temp_pos ); print_temp(instr);
fill_to(instr_pos); print_instr(instr);
@@ -569,7 +569,7 @@
if (printed_flag) output()->print(") ");
// print block bci range
- output()->print("[%d, %d]", x->bci(), (end == NULL ? -1 : end->bci()));
+ output()->print("[%d, %d]", x->bci(), (end == NULL ? -1 : end->printable_bci()));
// print block successors
if (end != NULL && end->number_of_sux() > 0) {
--- a/hotspot/src/share/vm/c1/c1_LIR.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_LIR.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -211,6 +211,7 @@
case T_BYTE:
case T_SHORT:
case T_INT:
+ case T_ADDRESS:
case T_OBJECT:
case T_ARRAY:
assert((kind_field() == cpu_register || kind_field() == stack_value) &&
@@ -1519,7 +1520,7 @@
if (x->is_set(BlockBegin::linear_scan_loop_end_flag)) tty->print("le ");
// print block bci range
- tty->print("[%d, %d] ", x->bci(), (end == NULL ? -1 : end->bci()));
+ tty->print("[%d, %d] ", x->bci(), (end == NULL ? -1 : end->printable_bci()));
// print predecessors and successors
if (x->number_of_preds() > 0) {
@@ -1575,7 +1576,7 @@
}
out->print(name()); out->print(" ");
print_instr(out);
- if (info() != NULL) out->print(" [bci:%d]", info()->bci());
+ if (info() != NULL) out->print(" [bci:%d]", info()->stack()->bci());
#ifdef ASSERT
if (Verbose && _file != NULL) {
out->print(" (%s:%d)", _file, _line);
@@ -1780,7 +1781,7 @@
out->print("[");
stub()->print_name(out);
out->print(": 0x%x]", stub());
- if (stub()->info() != NULL) out->print(" [bci:%d]", stub()->info()->bci());
+ if (stub()->info() != NULL) out->print(" [bci:%d]", stub()->info()->stack()->bci());
} else {
out->print("[label:0x%x] ", label());
}
@@ -1895,7 +1896,7 @@
tmp2()->print(out); out->print(" ");
tmp3()->print(out); out->print(" ");
result_opr()->print(out); out->print(" ");
- if (info_for_exception() != NULL) out->print(" [bci:%d]", info_for_exception()->bci());
+ if (info_for_exception() != NULL) out->print(" [bci:%d]", info_for_exception()->stack()->bci());
}
--- a/hotspot/src/share/vm/c1/c1_LIR.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_LIR.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -280,7 +280,7 @@
, int_type = 1 << type_shift
, long_type = 2 << type_shift
, object_type = 3 << type_shift
- , pointer_type = 4 << type_shift
+ , address_type = 4 << type_shift
, float_type = 5 << type_shift
, double_type = 6 << type_shift
};
@@ -303,6 +303,7 @@
case T_BYTE:
case T_SHORT:
case T_INT:
+ case T_ADDRESS:
case T_OBJECT:
case T_ARRAY:
return single_size;
@@ -456,6 +457,7 @@
case T_DOUBLE: return LIR_OprDesc::double_type;
case T_OBJECT:
case T_ARRAY: return LIR_OprDesc::object_type;
+ case T_ADDRESS: return LIR_OprDesc::address_type;
case T_ILLEGAL: // fall through
default: ShouldNotReachHere(); return LIR_OprDesc::unknown_type;
}
@@ -468,6 +470,7 @@
case LIR_OprDesc::float_type: return T_FLOAT;
case LIR_OprDesc::double_type: return T_DOUBLE;
case LIR_OprDesc::object_type: return T_OBJECT;
+ case LIR_OprDesc::address_type: return T_ADDRESS;
case LIR_OprDesc::unknown_type: // fall through
default: ShouldNotReachHere(); return T_ILLEGAL;
}
@@ -550,8 +553,24 @@
static LIR_Opr illegalOpr;
- static LIR_Opr single_cpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::int_type | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); }
- static LIR_Opr single_cpu_oop(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::object_type | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); }
+ static LIR_Opr single_cpu(int reg) {
+ return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) |
+ LIR_OprDesc::int_type |
+ LIR_OprDesc::cpu_register |
+ LIR_OprDesc::single_size);
+ }
+ static LIR_Opr single_cpu_oop(int reg) {
+ return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) |
+ LIR_OprDesc::object_type |
+ LIR_OprDesc::cpu_register |
+ LIR_OprDesc::single_size);
+ }
+ static LIR_Opr single_cpu_address(int reg) {
+ return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) |
+ LIR_OprDesc::address_type |
+ LIR_OprDesc::cpu_register |
+ LIR_OprDesc::single_size);
+ }
static LIR_Opr double_cpu(int reg1, int reg2) {
LP64_ONLY(assert(reg1 == reg2, "must be identical"));
return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) |
@@ -633,6 +652,14 @@
LIR_OprDesc::virtual_mask);
break;
+ case T_ADDRESS:
+ res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
+ LIR_OprDesc::address_type |
+ LIR_OprDesc::cpu_register |
+ LIR_OprDesc::single_size |
+ LIR_OprDesc::virtual_mask);
+ break;
+
case T_LONG:
res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
LIR_OprDesc::long_type |
@@ -721,6 +748,13 @@
LIR_OprDesc::single_size);
break;
+ case T_ADDRESS:
+ res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
+ LIR_OprDesc::address_type |
+ LIR_OprDesc::stack_value |
+ LIR_OprDesc::single_size);
+ break;
+
case T_LONG:
res = (LIR_Opr)(intptr_t)((index << LIR_OprDesc::data_shift) |
LIR_OprDesc::long_type |
--- a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -35,7 +35,7 @@
append_patching_stub(patch);
#ifdef ASSERT
- Bytecodes::Code code = info->scope()->method()->java_code_at_bci(info->bci());
+ Bytecodes::Code code = info->scope()->method()->java_code_at_bci(info->stack()->bci());
if (patch->id() == PatchingStub::access_field_id) {
switch (code) {
case Bytecodes::_putstatic:
@@ -221,7 +221,7 @@
#ifndef PRODUCT
if (CommentedAssembly) {
stringStream st;
- st.print_cr(" block B%d [%d, %d]", block->block_id(), block->bci(), block->end()->bci());
+ st.print_cr(" block B%d [%d, %d]", block->block_id(), block->bci(), block->end()->printable_bci());
_masm->block_comment(st.as_string());
}
#endif
@@ -312,7 +312,7 @@
static ValueStack* debug_info(Instruction* ins) {
StateSplit* ss = ins->as_StateSplit();
if (ss != NULL) return ss->state();
- return ins->lock_stack();
+ return ins->state_before();
}
void LIR_Assembler::process_debug_info(LIR_Op* op) {
@@ -327,8 +327,7 @@
if (vstack == NULL) return;
if (_pending_non_safepoint != NULL) {
// Got some old debug info. Get rid of it.
- if (_pending_non_safepoint->bci() == src->bci() &&
- debug_info(_pending_non_safepoint) == vstack) {
+ if (debug_info(_pending_non_safepoint) == vstack) {
_pending_non_safepoint_offset = pc_offset;
return;
}
@@ -358,7 +357,7 @@
ValueStack* tc = t->caller_state();
if (tc == NULL) return s;
t = tc;
- bci_result = s->scope()->caller_bci();
+ bci_result = tc->bci();
s = s->caller_state();
}
}
@@ -366,7 +365,7 @@
void LIR_Assembler::record_non_safepoint_debug_info() {
int pc_offset = _pending_non_safepoint_offset;
ValueStack* vstack = debug_info(_pending_non_safepoint);
- int bci = _pending_non_safepoint->bci();
+ int bci = vstack->bci();
DebugInformationRecorder* debug_info = compilation()->debug_info_recorder();
assert(debug_info->recording_non_safepoints(), "sanity");
@@ -380,7 +379,7 @@
if (s == NULL) break;
IRScope* scope = s->scope();
//Always pass false for reexecute since these ScopeDescs are never used for deopt
- debug_info->describe_scope(pc_offset, scope->method(), s_bci, false/*reexecute*/);
+ debug_info->describe_scope(pc_offset, scope->method(), s->bci(), false/*reexecute*/);
}
debug_info->end_non_safepoint(pc_offset);
--- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -386,18 +386,26 @@
CodeEmitInfo* LIRGenerator::state_for(Instruction* x, ValueStack* state, bool ignore_xhandler) {
- int index;
- Value value;
- for_each_stack_value(state, index, value) {
- assert(value->subst() == value, "missed substition");
- if (!value->is_pinned() && value->as_Constant() == NULL && value->as_Local() == NULL) {
- walk(value);
- assert(value->operand()->is_valid(), "must be evaluated now");
+ assert(state != NULL, "state must be defined");
+
+ ValueStack* s = state;
+ for_each_state(s) {
+ if (s->kind() == ValueStack::EmptyExceptionState) {
+ assert(s->stack_size() == 0 && s->locals_size() == 0 && (s->locks_size() == 0 || s->locks_size() == 1), "state must be empty");
+ continue;
}
- }
- ValueStack* s = state;
- int bci = x->bci();
- for_each_state(s) {
+
+ int index;
+ Value value;
+ for_each_stack_value(s, index, value) {
+ assert(value->subst() == value, "missed substitution");
+ if (!value->is_pinned() && value->as_Constant() == NULL && value->as_Local() == NULL) {
+ walk(value);
+ assert(value->operand()->is_valid(), "must be evaluated now");
+ }
+ }
+
+ int bci = s->bci();
IRScope* scope = s->scope();
ciMethod* method = scope->method();
@@ -428,15 +436,14 @@
}
}
}
- bci = scope->caller_bci();
}
- return new CodeEmitInfo(x->bci(), state, ignore_xhandler ? NULL : x->exception_handlers());
+ return new CodeEmitInfo(state, ignore_xhandler ? NULL : x->exception_handlers());
}
CodeEmitInfo* LIRGenerator::state_for(Instruction* x) {
- return state_for(x, x->lock_stack());
+ return state_for(x, x->exception_state());
}
@@ -900,18 +907,14 @@
Value sux_value;
int index;
+ assert(cur_state->scope() == sux_state->scope(), "not matching");
+ assert(cur_state->locals_size() == sux_state->locals_size(), "not matching");
+ assert(cur_state->stack_size() == sux_state->stack_size(), "not matching");
+
for_each_stack_value(sux_state, index, sux_value) {
move_to_phi(&resolver, cur_state->stack_at(index), sux_value);
}
- // Inlining may cause the local state not to match up, so walk up
- // the caller state until we get to the same scope as the
- // successor and then start processing from there.
- while (cur_state->scope() != sux_state->scope()) {
- cur_state = cur_state->caller_state();
- assert(cur_state != NULL, "scopes don't match up");
- }
-
for_each_local_value(sux_state, index, sux_value) {
move_to_phi(&resolver, cur_state->local_at(index), sux_value);
}
@@ -936,7 +939,6 @@
}
}
_virtual_register_number += 1;
- if (type == T_ADDRESS) type = T_INT;
return LIR_OprFact::virtual_register(vreg, type);
}
@@ -1024,10 +1026,10 @@
// Code for a constant is generated lazily unless the constant is frequently used and can't be inlined.
void LIRGenerator::do_Constant(Constant* x) {
- if (x->state() != NULL) {
+ if (x->state_before() != NULL) {
// Any constant with a ValueStack requires patching so emit the patch here
LIR_Opr reg = rlock_result(x);
- CodeEmitInfo* info = state_for(x, x->state());
+ CodeEmitInfo* info = state_for(x, x->state_before());
__ oop2reg_patch(NULL, reg, info);
} else if (x->use_count() > 1 && !can_inline_as_constant(x)) {
if (!x->is_pinned()) {
@@ -1103,7 +1105,7 @@
// need to perform the null check on the rcvr
CodeEmitInfo* info = NULL;
if (x->needs_null_check()) {
- info = state_for(x, x->state()->copy_locks());
+ info = state_for(x);
}
__ move(new LIR_Address(rcvr.result(), oopDesc::klass_offset_in_bytes(), T_OBJECT), result, info);
__ move(new LIR_Address(result, Klass::java_mirror_offset_in_bytes() +
@@ -1348,6 +1350,7 @@
addr = ptr;
}
assert(addr->is_register(), "must be a register at this point");
+ assert(addr->type() == T_OBJECT, "addr should point to an object");
LIR_Opr xor_res = new_pointer_register();
LIR_Opr xor_shift_res = new_pointer_register();
@@ -1482,7 +1485,7 @@
} else if (x->needs_null_check()) {
NullCheck* nc = x->explicit_null_check();
if (nc == NULL) {
- info = state_for(x, x->lock_stack());
+ info = state_for(x);
} else {
info = state_for(nc);
}
@@ -1510,10 +1513,12 @@
set_no_result(x);
+#ifndef PRODUCT
if (PrintNotLoaded && needs_patching) {
tty->print_cr(" ###class not loaded at store_%s bci %d",
- x->is_static() ? "static" : "field", x->bci());
+ x->is_static() ? "static" : "field", x->printable_bci());
}
+#endif
if (x->needs_null_check() &&
(needs_patching ||
@@ -1576,7 +1581,7 @@
} else if (x->needs_null_check()) {
NullCheck* nc = x->explicit_null_check();
if (nc == NULL) {
- info = state_for(x, x->lock_stack());
+ info = state_for(x);
} else {
info = state_for(nc);
}
@@ -1586,10 +1591,12 @@
object.load_item();
+#ifndef PRODUCT
if (PrintNotLoaded && needs_patching) {
tty->print_cr(" ###class not loaded at load_%s bci %d",
- x->is_static() ? "static" : "field", x->bci());
+ x->is_static() ? "static" : "field", x->printable_bci());
}
+#endif
if (x->needs_null_check() &&
(needs_patching ||
@@ -1782,7 +1789,7 @@
if (GenerateCompilerNullChecks &&
(x->exception()->as_NewInstance() == NULL && x->exception()->as_ExceptionObject() == NULL)) {
// if the exception object wasn't created using new then it might be null.
- __ null_check(exception_opr, new CodeEmitInfo(info, true));
+ __ null_check(exception_opr, new CodeEmitInfo(info, x->state()->copy(ValueStack::ExceptionState, x->state()->bci())));
}
if (compilation()->env()->jvmti_can_post_on_exceptions()) {
@@ -2128,7 +2135,6 @@
int lo_key = x->lo_key();
int hi_key = x->hi_key();
int len = x->length();
- CodeEmitInfo* info = state_for(x, x->state());
LIR_Opr value = tag.result();
if (UseTableRanges) {
do_SwitchRanges(create_lookup_ranges(x), value, x->default_sux());
@@ -2187,7 +2193,7 @@
// increment backedge counter if needed
CodeEmitInfo* info = state_for(x, state);
- increment_backedge_counter(info, info->bci());
+ increment_backedge_counter(info, info->stack()->bci());
CodeEmitInfo* safepoint_info = state_for(x, state);
__ safepoint(safepoint_poll_register(), safepoint_info);
}
@@ -2294,7 +2300,7 @@
LIR_Opr lock = new_register(T_INT);
__ load_stack_address_monitor(0, lock);
- CodeEmitInfo* info = new CodeEmitInfo(SynchronizationEntryBCI, scope()->start()->state(), NULL);
+ CodeEmitInfo* info = new CodeEmitInfo(scope()->start()->state()->copy(ValueStack::StateBefore, SynchronizationEntryBCI), NULL);
CodeStub* slow_path = new MonitorEnterStub(obj, lock, info);
// receiver is guaranteed non-NULL so don't need CodeEmitInfo
@@ -2304,7 +2310,7 @@
// increment invocation counters if needed
if (!method()->is_accessor()) { // Accessors do not have MDOs, so no counting.
- CodeEmitInfo* info = new CodeEmitInfo(InvocationEntryBci, scope()->start()->state(), NULL);
+ CodeEmitInfo* info = new CodeEmitInfo(scope()->start()->state()->copy(ValueStack::StateBefore, SynchronizationEntryBCI), NULL);
increment_invocation_counter(info);
}
@@ -2464,7 +2470,7 @@
break;
case Bytecodes::_invokedynamic: {
ciBytecodeStream bcs(x->scope()->method());
- bcs.force_bci(x->bci());
+ bcs.force_bci(x->state()->bci());
assert(bcs.cur_bc() == Bytecodes::_invokedynamic, "wrong stream");
ciCPCache* cpcache = bcs.get_cpcache();
@@ -2829,4 +2835,3 @@
}
return result;
}
-
--- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -2018,6 +2018,12 @@
return LIR_OprFact::single_cpu_oop(assigned_reg);
}
+ case T_ADDRESS: {
+ assert(assigned_reg >= pd_first_cpu_reg && assigned_reg <= pd_last_cpu_reg, "no cpu register");
+ assert(interval->assigned_regHi() == any_reg, "must not have hi register");
+ return LIR_OprFact::single_cpu_address(assigned_reg);
+ }
+
#ifdef __SOFTFP__
case T_FLOAT: // fall through
#endif // __SOFTFP__
@@ -2268,8 +2274,8 @@
}
void check_stack_depth(CodeEmitInfo* info, int stack_end) {
- if (info->bci() != SynchronizationEntryBCI && !info->scope()->method()->is_native()) {
- Bytecodes::Code code = info->scope()->method()->java_code_at_bci(info->bci());
+ if (info->stack()->bci() != SynchronizationEntryBCI && !info->scope()->method()->is_native()) {
+ Bytecodes::Code code = info->scope()->method()->java_code_at_bci(info->stack()->bci());
switch (code) {
case Bytecodes::_ifnull : // fall through
case Bytecodes::_ifnonnull : // fall through
@@ -2373,7 +2379,7 @@
// add oops from lock stack
assert(info->stack() != NULL, "CodeEmitInfo must always have a stack");
- int locks_count = info->stack()->locks_size();
+ int locks_count = info->stack()->total_locks_size();
for (int i = 0; i < locks_count; i++) {
map->set_oop(frame_map()->monitor_object_regname(i));
}
@@ -2756,19 +2762,13 @@
}
-IRScopeDebugInfo* LinearScan::compute_debug_info_for_scope(int op_id, IRScope* cur_scope, ValueStack* cur_state, ValueStack* innermost_state, int cur_bci, int stack_end, int locks_end) {
+IRScopeDebugInfo* LinearScan::compute_debug_info_for_scope(int op_id, IRScope* cur_scope, ValueStack* cur_state, ValueStack* innermost_state) {
IRScopeDebugInfo* caller_debug_info = NULL;
- int stack_begin, locks_begin;
-
- ValueStack* caller_state = cur_scope->caller_state();
+
+ ValueStack* caller_state = cur_state->caller_state();
if (caller_state != NULL) {
// process recursively to compute outermost scope first
- stack_begin = caller_state->stack_size();
- locks_begin = caller_state->locks_size();
- caller_debug_info = compute_debug_info_for_scope(op_id, cur_scope->caller(), caller_state, innermost_state, cur_scope->caller_bci(), stack_begin, locks_begin);
- } else {
- stack_begin = 0;
- locks_begin = 0;
+ caller_debug_info = compute_debug_info_for_scope(op_id, cur_scope->caller(), caller_state, innermost_state);
}
// initialize these to null.
@@ -2779,7 +2779,7 @@
GrowableArray<MonitorValue*>* monitors = NULL;
// describe local variable values
- int nof_locals = cur_scope->method()->max_locals();
+ int nof_locals = cur_state->locals_size();
if (nof_locals > 0) {
locals = new GrowableArray<ScopeValue*>(nof_locals);
@@ -2794,45 +2794,41 @@
}
assert(locals->length() == cur_scope->method()->max_locals(), "wrong number of locals");
assert(locals->length() == cur_state->locals_size(), "wrong number of locals");
- }
-
+ } else if (cur_scope->method()->max_locals() > 0) {
+ assert(cur_state->kind() == ValueStack::EmptyExceptionState, "should be");
+ nof_locals = cur_scope->method()->max_locals();
+ locals = new GrowableArray<ScopeValue*>(nof_locals);
+ for(int i = 0; i < nof_locals; i++) {
+ locals->append(&_illegal_value);
+ }
+ }
// describe expression stack
- //
- // When we inline methods containing exception handlers, the
- // "lock_stacks" are changed to preserve expression stack values
- // in caller scopes when exception handlers are present. This
- // can cause callee stacks to be smaller than caller stacks.
- if (stack_end > innermost_state->stack_size()) {
- stack_end = innermost_state->stack_size();
- }
-
-
-
- int nof_stack = stack_end - stack_begin;
+ int nof_stack = cur_state->stack_size();
if (nof_stack > 0) {
expressions = new GrowableArray<ScopeValue*>(nof_stack);
- int pos = stack_begin;
- while (pos < stack_end) {
- Value expression = innermost_state->stack_at_inc(pos);
+ int pos = 0;
+ while (pos < nof_stack) {
+ Value expression = cur_state->stack_at_inc(pos);
append_scope_value(op_id, expression, expressions);
- assert(expressions->length() + stack_begin == pos, "must match");
- }
+ assert(expressions->length() == pos, "must match");
+ }
+ assert(expressions->length() == cur_state->stack_size(), "wrong number of stack entries");
}
// describe monitors
- assert(locks_begin <= locks_end, "error in scope iteration");
- int nof_locks = locks_end - locks_begin;
+ int nof_locks = cur_state->locks_size();
if (nof_locks > 0) {
+ int lock_offset = cur_state->caller_state() != NULL ? cur_state->caller_state()->total_locks_size() : 0;
monitors = new GrowableArray<MonitorValue*>(nof_locks);
- for (int i = locks_begin; i < locks_end; i++) {
- monitors->append(location_for_monitor_index(i));
- }
- }
-
- return new IRScopeDebugInfo(cur_scope, cur_bci, locals, expressions, monitors, caller_debug_info);
+ for (int i = 0; i < nof_locks; i++) {
+ monitors->append(location_for_monitor_index(lock_offset + i));
+ }
+ }
+
+ return new IRScopeDebugInfo(cur_scope, cur_state->bci(), locals, expressions, monitors, caller_debug_info);
}
@@ -2844,17 +2840,14 @@
assert(innermost_scope != NULL && innermost_state != NULL, "why is it missing?");
- int stack_end = innermost_state->stack_size();
- int locks_end = innermost_state->locks_size();
-
- DEBUG_ONLY(check_stack_depth(info, stack_end));
+ DEBUG_ONLY(check_stack_depth(info, innermost_state->stack_size()));
if (info->_scope_debug_info == NULL) {
// compute debug information
- info->_scope_debug_info = compute_debug_info_for_scope(op_id, innermost_scope, innermost_state, innermost_state, info->bci(), stack_end, locks_end);
+ info->_scope_debug_info = compute_debug_info_for_scope(op_id, innermost_scope, innermost_state, innermost_state);
} else {
// debug information already set. Check that it is correct from the current point of view
- DEBUG_ONLY(assert_equal(info->_scope_debug_info, compute_debug_info_for_scope(op_id, innermost_scope, innermost_state, innermost_state, info->bci(), stack_end, locks_end)));
+ DEBUG_ONLY(assert_equal(info->_scope_debug_info, compute_debug_info_for_scope(op_id, innermost_scope, innermost_state, innermost_state)));
}
}
--- a/hotspot/src/share/vm/c1/c1_LinearScan.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -346,7 +346,7 @@
int append_scope_value_for_operand(LIR_Opr opr, GrowableArray<ScopeValue*>* scope_values);
int append_scope_value(int op_id, Value value, GrowableArray<ScopeValue*>* scope_values);
- IRScopeDebugInfo* compute_debug_info_for_scope(int op_id, IRScope* cur_scope, ValueStack* cur_state, ValueStack* innermost_state, int cur_bci, int stack_end, int locks_end);
+ IRScopeDebugInfo* compute_debug_info_for_scope(int op_id, IRScope* cur_scope, ValueStack* cur_state, ValueStack* innermost_state);
void compute_debug_info(CodeEmitInfo* info, int op_id);
void assign_reg_num(LIR_OpList* instructions, IntervalWalker* iw);
--- a/hotspot/src/share/vm/c1/c1_Optimizer.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_Optimizer.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -140,25 +140,27 @@
// with an IfOp followed by a Goto
// cut if_ away and get node before
Instruction* cur_end = if_->prev(block);
- int bci = if_->bci();
// append constants of true- and false-block if necessary
// clone constants because original block must not be destroyed
assert((t_value != f_const && f_value != t_const) || t_const == f_const, "mismatch");
if (t_value == t_const) {
t_value = new Constant(t_const->type());
- cur_end = cur_end->set_next(t_value, bci);
+ NOT_PRODUCT(t_value->set_printable_bci(if_->printable_bci()));
+ cur_end = cur_end->set_next(t_value);
}
if (f_value == f_const) {
f_value = new Constant(f_const->type());
- cur_end = cur_end->set_next(f_value, bci);
+ NOT_PRODUCT(f_value->set_printable_bci(if_->printable_bci()));
+ cur_end = cur_end->set_next(f_value);
}
// it is very unlikely that the condition can be statically decided
// (this was checked previously by the Canonicalizer), so always
// append IfOp
Value result = new IfOp(if_->x(), if_->cond(), if_->y(), t_value, f_value);
- cur_end = cur_end->set_next(result, bci);
+ NOT_PRODUCT(result->set_printable_bci(if_->printable_bci()));
+ cur_end = cur_end->set_next(result);
// append Goto to successor
ValueStack* state_before = if_->is_safepoint() ? if_->state_before() : NULL;
@@ -167,16 +169,15 @@
// prepare state for Goto
ValueStack* goto_state = if_->state();
while (sux_state->scope() != goto_state->scope()) {
- goto_state = goto_state->pop_scope();
+ goto_state = goto_state->caller_state();
assert(goto_state != NULL, "states do not match up");
}
- goto_state = goto_state->copy();
+ goto_state = goto_state->copy(ValueStack::StateAfter, goto_state->bci());
goto_state->push(result->type(), result);
- assert(goto_state->is_same_across_scopes(sux_state), "states must match now");
+ assert(goto_state->is_same(sux_state), "states must match now");
goto_->set_state(goto_state);
- // Steal the bci for the goto from the sux
- cur_end = cur_end->set_next(goto_, sux->bci());
+ cur_end = cur_end->set_next(goto_, goto_state->bci());
// Adjust control flow graph
BlockBegin::disconnect_edge(block, t_block);
@@ -251,10 +252,8 @@
// no phi functions must be present at beginning of sux
ValueStack* sux_state = sux->state();
ValueStack* end_state = end->state();
- while (end_state->scope() != sux_state->scope()) {
- // match up inlining level
- end_state = end_state->pop_scope();
- }
+
+ assert(end_state->scope() == sux_state->scope(), "scopes must match");
assert(end_state->stack_size() == sux_state->stack_size(), "stack not equal");
assert(end_state->locals_size() == sux_state->locals_size(), "locals not equal");
@@ -273,7 +272,7 @@
Instruction* prev = end->prev(block);
Instruction* next = sux->next();
assert(prev->as_BlockEnd() == NULL, "must not be a BlockEnd");
- prev->set_next(next, next->bci());
+ prev->set_next(next);
sux->disconnect_from_graph();
block->set_end(sux->end());
// add exception handlers of deleted block, if any
@@ -337,7 +336,8 @@
newif->set_state(if_->state()->copy());
assert(prev->next() == if_, "must be guaranteed by above search");
- prev->set_next(newif, if_->bci());
+ NOT_PRODUCT(newif->set_printable_bci(if_->printable_bci()));
+ prev->set_next(newif);
block->set_end(newif);
_merge_count++;
@@ -705,7 +705,7 @@
// visiting instructions which are references in other blocks or
// visiting instructions more than once.
mark_visitable(instr);
- if (instr->is_root() || instr->can_trap() || (instr->as_NullCheck() != NULL)) {
+ if (instr->is_pinned() || instr->can_trap() || (instr->as_NullCheck() != NULL)) {
mark_visited(instr);
instr->input_values_do(this);
instr->visit(&_visitor);
--- a/hotspot/src/share/vm/c1/c1_ValueStack.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_ValueStack.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -28,55 +28,60 @@
// Implementation of ValueStack
-ValueStack::ValueStack(IRScope* scope, int locals_size, int max_stack_size)
+ValueStack::ValueStack(IRScope* scope, ValueStack* caller_state)
: _scope(scope)
-, _locals(locals_size, NULL)
-, _stack(max_stack_size)
-, _lock_stack(false)
-, _locks(1)
+, _caller_state(caller_state)
+, _bci(-99)
+, _kind(Parsing)
+, _locals(scope->method()->max_locals(), NULL)
+, _stack(scope->method()->max_stack())
+, _locks()
{
- assert(scope != NULL, "scope must exist");
-}
-
-ValueStack* ValueStack::copy() {
- ValueStack* s = new ValueStack(scope(), locals_size(), max_stack_size());
- s->_stack.appendAll(&_stack);
- s->_locks.appendAll(&_locks);
- s->replace_locals(this);
- return s;
+ verify();
}
-ValueStack* ValueStack::copy_locks() {
- int sz = scope()->lock_stack_size();
- if (stack_size() == 0) {
- sz = 0;
+ValueStack::ValueStack(ValueStack* copy_from, Kind kind, int bci)
+ : _scope(copy_from->scope())
+ , _caller_state(copy_from->caller_state())
+ , _bci(bci)
+ , _kind(kind)
+ , _locals()
+ , _stack()
+ , _locks(copy_from->locks_size())
+{
+ assert(kind != EmptyExceptionState || !Compilation::current()->env()->jvmti_can_access_local_variables(), "need locals");
+ if (kind != EmptyExceptionState) {
+ // only allocate space if we need to copy the locals-array
+ _locals = Values(copy_from->locals_size());
+ _locals.appendAll(©_from->_locals);
}
- ValueStack* s = new ValueStack(scope(), locals_size(), sz);
- s->_lock_stack = true;
- s->_locks.appendAll(&_locks);
- s->replace_locals(this);
- if (sz > 0) {
- assert(sz <= stack_size(), "lock stack underflow");
- for (int i = 0; i < sz; i++) {
- s->_stack.append(_stack[i]);
+
+ if (kind != ExceptionState && kind != EmptyExceptionState) {
+ if (kind == Parsing) {
+ // stack will be modified, so reserve enough space to avoid resizing
+ _stack = Values(scope()->method()->max_stack());
+ } else {
+ // stack will not be modified, so do not waste space
+ _stack = Values(copy_from->stack_size());
}
+ _stack.appendAll(©_from->_stack);
}
- return s;
-}
-bool ValueStack::is_same(ValueStack* s) {
- assert(s != NULL, "state must exist");
- assert(scope () == s->scope (), "scopes must correspond");
- assert(locals_size() == s->locals_size(), "locals sizes must correspond");
- return is_same_across_scopes(s);
+ _locks.appendAll(©_from->_locks);
+
+ verify();
}
-bool ValueStack::is_same_across_scopes(ValueStack* s) {
- assert(s != NULL, "state must exist");
- assert(stack_size () == s->stack_size (), "stack sizes must correspond");
- assert(locks_size () == s->locks_size (), "locks sizes must correspond");
+bool ValueStack::is_same(ValueStack* s) {
+ if (scope() != s->scope()) return false;
+ if (caller_state() != s->caller_state()) return false;
+
+ if (locals_size() != s->locals_size()) return false;
+ if (stack_size() != s->stack_size()) return false;
+ if (locks_size() != s->locks_size()) return false;
+
// compare each stack element with the corresponding stack element of s
int index;
Value value;
@@ -89,12 +94,6 @@
return true;
}
-
-ValueStack* ValueStack::caller_state() const {
- return scope()->caller_state();
-}
-
-
void ValueStack::clear_locals() {
for (int i = _locals.length() - 1; i >= 0; i--) {
_locals.at_put(i, NULL);
@@ -102,13 +101,6 @@
}
-void ValueStack::replace_locals(ValueStack* with) {
- assert(locals_size() == with->locals_size(), "number of locals must match");
- for (int i = locals_size() - 1; i >= 0; i--) {
- _locals.at_put(i, with->_locals.at(i));
- }
-}
-
void ValueStack::pin_stack_for_linear_scan() {
for_each_state_value(this, v,
if (v->as_Constant() == NULL && v->as_Local() == NULL) {
@@ -123,33 +115,25 @@
for (int i = 0; i < list.length(); i++) {
Value* va = list.adr_at(i);
Value v0 = *va;
- if (v0 != NULL) {
- if (!v0->type()->is_illegal()) {
- assert(v0->as_HiWord() == NULL, "should never see HiWord during traversal");
- f->visit(va);
+ if (v0 != NULL && !v0->type()->is_illegal()) {
+ f->visit(va);
#ifdef ASSERT
- Value v1 = *va;
- if (v0 != v1) {
- assert(v1->type()->is_illegal() || v0->type()->tag() == v1->type()->tag(), "types must match");
- if (v0->type()->is_double_word()) {
- list.at_put(i + 1, v0->hi_word());
- }
- }
+ Value v1 = *va;
+ assert(v1->type()->is_illegal() || v0->type()->tag() == v1->type()->tag(), "types must match");
+ assert(!v1->type()->is_double_word() || list.at(i + 1) == NULL, "hi-word of doubleword value must be NULL");
#endif
- if (v0->type()->is_double_word()) i++;
- }
+ if (v0->type()->is_double_word()) i++;
}
}
}
void ValueStack::values_do(ValueVisitor* f) {
- apply(_stack, f);
- apply(_locks, f);
-
ValueStack* state = this;
for_each_state(state) {
apply(state->_locals, f);
+ apply(state->_stack, f);
+ apply(state->_locks, f);
}
}
@@ -164,52 +148,26 @@
}
-int ValueStack::lock(IRScope* scope, Value obj) {
+int ValueStack::total_locks_size() const {
+ int num_locks = 0;
+ const ValueStack* state = this;
+ for_each_state(state) {
+ num_locks += state->locks_size();
+ }
+ return num_locks;
+}
+
+int ValueStack::lock(Value obj) {
_locks.push(obj);
- scope->set_min_number_of_locks(locks_size());
- return locks_size() - 1;
+ int num_locks = total_locks_size();
+ scope()->set_min_number_of_locks(num_locks);
+ return num_locks - 1;
}
int ValueStack::unlock() {
_locks.pop();
- return locks_size();
-}
-
-
-ValueStack* ValueStack::push_scope(IRScope* scope) {
- assert(scope->caller() == _scope, "scopes must have caller/callee relationship");
- ValueStack* res = new ValueStack(scope,
- scope->method()->max_locals(),
- max_stack_size() + scope->method()->max_stack());
- // Preserves stack and monitors.
- res->_stack.appendAll(&_stack);
- res->_locks.appendAll(&_locks);
- assert(res->_stack.size() <= res->max_stack_size(), "stack overflow");
- return res;
-}
-
-
-ValueStack* ValueStack::pop_scope() {
- assert(_scope->caller() != NULL, "scope must have caller");
- IRScope* scope = _scope->caller();
- int max_stack = max_stack_size() - _scope->method()->max_stack();
- assert(max_stack >= 0, "stack underflow");
- ValueStack* res = new ValueStack(scope,
- scope->method()->max_locals(),
- max_stack);
- // Preserves stack and monitors. Restores local and store state from caller scope.
- res->_stack.appendAll(&_stack);
- res->_locks.appendAll(&_locks);
- ValueStack* caller = caller_state();
- if (caller != NULL) {
- for (int i = 0; i < caller->_locals.length(); i++) {
- res->_locals.at_put(i, caller->_locals.at(i));
- }
- assert(res->_locals.length() == res->scope()->method()->max_locals(), "just checking");
- }
- assert(res->_stack.size() <= res->max_stack_size(), "stack overflow");
- return res;
+ return total_locks_size();
}
@@ -220,11 +178,7 @@
Value phi = new Phi(t, b, -index - 1);
_stack[index] = phi;
-#ifdef ASSERT
- if (t->is_double_word()) {
- _stack[index + 1] = phi->hi_word();
- }
-#endif
+ assert(!t->is_double_word() || _stack.at(index + 1) == NULL, "hi-word of doubleword value must be NULL");
}
void ValueStack::setup_phi_for_local(BlockBegin* b, int index) {
@@ -236,7 +190,9 @@
}
#ifndef PRODUCT
+
void ValueStack::print() {
+ scope()->method()->print_name();
if (stack_is_empty()) {
tty->print_cr("empty stack");
} else {
@@ -244,18 +200,20 @@
for (int i = 0; i < stack_size();) {
Value t = stack_at_inc(i);
tty->print("%2d ", i);
+ tty->print("%c%d ", t->type()->tchar(), t->id());
ip.print_instr(t);
tty->cr();
}
}
if (!no_active_locks()) {
InstructionPrinter ip;
- for (int i = 0; i < locks_size(); i--) {
+ for (int i = 0; i < locks_size(); i++) {
Value t = lock_at(i);
tty->print("lock %2d ", i);
if (t == NULL) {
tty->print("this");
} else {
+ tty->print("%c%d ", t->type()->tchar(), t->id());
ip.print_instr(t);
}
tty->cr();
@@ -270,16 +228,55 @@
tty->print("null");
i ++;
} else {
+ tty->print("%c%d ", l->type()->tchar(), l->id());
ip.print_instr(l);
if (l->type()->is_illegal() || l->type()->is_single_word()) i ++; else i += 2;
}
tty->cr();
}
}
+
+ if (caller_state() != NULL) {
+ caller_state()->print();
+ }
}
void ValueStack::verify() {
- Unimplemented();
+ assert(scope() != NULL, "scope must exist");
+ if (caller_state() != NULL) {
+ assert(caller_state()->scope() == scope()->caller(), "invalid caller scope");
+ caller_state()->verify();
+ }
+
+ if (kind() == Parsing) {
+ assert(bci() == -99, "bci not defined during parsing");
+ } else {
+ assert(bci() >= -1, "bci out of range");
+ assert(bci() < scope()->method()->code_size(), "bci out of range");
+ assert(bci() == SynchronizationEntryBCI || Bytecodes::is_defined(scope()->method()->java_code_at_bci(bci())), "make sure bci points at a real bytecode");
+ assert(scope()->method()->liveness_at_bci(bci()).is_valid(), "liveness at bci must be valid");
+ }
+
+ int i;
+ for (i = 0; i < stack_size(); i++) {
+ Value v = _stack.at(i);
+ if (v == NULL) {
+ assert(_stack.at(i - 1)->type()->is_double_word(), "only hi-words are NULL on stack");
+ } else if (v->type()->is_double_word()) {
+ assert(_stack.at(i + 1) == NULL, "hi-word must be NULL");
+ }
+ }
+
+ for (i = 0; i < locals_size(); i++) {
+ Value v = _locals.at(i);
+ if (v != NULL && v->type()->is_double_word()) {
+ assert(_locals.at(i + 1) == NULL, "hi-word must be NULL");
+ }
+ }
+
+ for_each_state_value(this, v,
+ assert(v != NULL, "just test if state-iteration succeeds");
+ );
}
#endif // PRODUCT
--- a/hotspot/src/share/vm/c1/c1_ValueStack.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_ValueStack.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -23,9 +23,23 @@
*/
class ValueStack: public CompilationResourceObj {
+ public:
+ enum Kind {
+ Parsing, // During abstract interpretation in GraphBuilder
+ CallerState, // Caller state when inlining
+ StateBefore, // Before before execution of instruction
+ StateAfter, // After execution of instruction
+ ExceptionState, // Exception handling of instruction
+ EmptyExceptionState, // Exception handling of instructions not covered by an xhandler
+ BlockBeginState // State of BlockBegin instruction with phi functions of this block
+ };
+
private:
IRScope* _scope; // the enclosing scope
- bool _lock_stack; // indicates that this ValueStack is for an exception site
+ ValueStack* _caller_state;
+ int _bci;
+ Kind _kind;
+
Values _locals; // the locals
Values _stack; // the expression stack
Values _locks; // the monitor stack (holding the locked values)
@@ -36,100 +50,84 @@
}
Value check(ValueTag tag, Value t, Value h) {
- assert(h->as_HiWord()->lo_word() == t, "incorrect stack pair");
+ assert(h == NULL, "hi-word of doubleword value must be NULL");
return check(tag, t);
}
// helper routine
static void apply(Values list, ValueVisitor* f);
+ // for simplified copying
+ ValueStack(ValueStack* copy_from, Kind kind, int bci);
+
public:
// creation
- ValueStack(IRScope* scope, int locals_size, int max_stack_size);
+ ValueStack(IRScope* scope, ValueStack* caller_state);
+
+ ValueStack* copy() { return new ValueStack(this, _kind, _bci); }
+ ValueStack* copy(Kind new_kind, int new_bci) { return new ValueStack(this, new_kind, new_bci); }
+ ValueStack* copy_for_parsing() { return new ValueStack(this, Parsing, -99); }
- // merging
- ValueStack* copy(); // returns a copy of this w/ cleared locals
- ValueStack* copy_locks(); // returns a copy of this w/ cleared locals and stack
- // Note that when inlining of methods with exception
- // handlers is enabled, this stack may have a
- // non-empty expression stack (size defined by
- // scope()->lock_stack_size())
+ void set_caller_state(ValueStack* s) {
+ assert(kind() == EmptyExceptionState ||
+ (Compilation::current()->env()->jvmti_can_access_local_variables() && kind() == ExceptionState),
+ "only EmptyExceptionStates can be modified");
+ _caller_state = s;
+ }
+
bool is_same(ValueStack* s); // returns true if this & s's types match (w/o checking locals)
- bool is_same_across_scopes(ValueStack* s); // same as is_same but returns true even if stacks are in different scopes (used for block merging w/inlining)
// accessors
IRScope* scope() const { return _scope; }
- bool is_lock_stack() const { return _lock_stack; }
+ ValueStack* caller_state() const { return _caller_state; }
+ int bci() const { return _bci; }
+ Kind kind() const { return _kind; }
+
int locals_size() const { return _locals.length(); }
int stack_size() const { return _stack.length(); }
int locks_size() const { return _locks.length(); }
- int max_stack_size() const { return _stack.capacity(); }
bool stack_is_empty() const { return _stack.is_empty(); }
bool no_active_locks() const { return _locks.is_empty(); }
- ValueStack* caller_state() const;
+ int total_locks_size() const;
// locals access
void clear_locals(); // sets all locals to NULL;
- // Kill local i. Also kill local i+1 if i was a long or double.
void invalidate_local(int i) {
- Value x = _locals.at(i);
- if (x != NULL && x->type()->is_double_word()) {
- assert(_locals.at(i + 1)->as_HiWord()->lo_word() == x, "locals inconsistent");
- _locals.at_put(i + 1, NULL);
- }
+ assert(_locals.at(i)->type()->is_single_word() ||
+ _locals.at(i + 1) == NULL, "hi-word of doubleword value must be NULL");
_locals.at_put(i, NULL);
}
-
- Value load_local(int i) const {
+ Value local_at(int i) const {
Value x = _locals.at(i);
- if (x != NULL && x->type()->is_illegal()) return NULL;
- assert(x == NULL || x->as_HiWord() == NULL, "index points to hi word");
- assert(x == NULL || x->type()->is_illegal() || x->type()->is_single_word() || x == _locals.at(i+1)->as_HiWord()->lo_word(), "locals inconsistent");
+ assert(x == NULL || x->type()->is_single_word() ||
+ _locals.at(i + 1) == NULL, "hi-word of doubleword value must be NULL");
return x;
}
- Value local_at(int i) const { return _locals.at(i); }
-
- // Store x into local i.
void store_local(int i, Value x) {
- // Kill the old value
- invalidate_local(i);
- _locals.at_put(i, x);
-
- // Writing a double word can kill other locals
- if (x != NULL && x->type()->is_double_word()) {
- // If x + i was the start of a double word local then kill i + 2.
- Value x2 = _locals.at(i + 1);
- if (x2 != NULL && x2->type()->is_double_word()) {
- _locals.at_put(i + 2, NULL);
- }
-
- // If x is a double word local, also update i + 1.
-#ifdef ASSERT
- _locals.at_put(i + 1, x->hi_word());
-#else
- _locals.at_put(i + 1, NULL);
-#endif
- }
- // If x - 1 was the start of a double word local then kill i - 1.
+ // When overwriting local i, check if i - 1 was the start of a
+ // double word local and kill it.
if (i > 0) {
Value prev = _locals.at(i - 1);
if (prev != NULL && prev->type()->is_double_word()) {
_locals.at_put(i - 1, NULL);
}
}
+
+ _locals.at_put(i, x);
+ if (x->type()->is_double_word()) {
+ // hi-word of doubleword value is always NULL
+ _locals.at_put(i + 1, NULL);
+ }
}
- void replace_locals(ValueStack* with);
-
// stack access
Value stack_at(int i) const {
Value x = _stack.at(i);
- assert(x->as_HiWord() == NULL, "index points to hi word");
assert(x->type()->is_single_word() ||
- x->subst() == _stack.at(i+1)->as_HiWord()->lo_word(), "stack inconsistent");
+ _stack.at(i + 1) == NULL, "hi-word of doubleword value must be NULL");
return x;
}
@@ -146,7 +144,6 @@
void values_do(ValueVisitor* f);
// untyped manipulation (for dup_x1, etc.)
- void clear_stack() { _stack.clear(); }
void truncate_stack(int size) { _stack.trunc_to(size); }
void raw_push(Value t) { _stack.push(t); }
Value raw_pop() { return _stack.pop(); }
@@ -156,15 +153,8 @@
void fpush(Value t) { _stack.push(check(floatTag , t)); }
void apush(Value t) { _stack.push(check(objectTag , t)); }
void rpush(Value t) { _stack.push(check(addressTag, t)); }
-#ifdef ASSERT
- // in debug mode, use HiWord for 2-word values
- void lpush(Value t) { _stack.push(check(longTag , t)); _stack.push(new HiWord(t)); }
- void dpush(Value t) { _stack.push(check(doubleTag , t)); _stack.push(new HiWord(t)); }
-#else
- // in optimized mode, use NULL for 2-word values
void lpush(Value t) { _stack.push(check(longTag , t)); _stack.push(NULL); }
void dpush(Value t) { _stack.push(check(doubleTag , t)); _stack.push(NULL); }
-#endif // ASSERT
void push(ValueType* type, Value t) {
switch (type->tag()) {
@@ -182,15 +172,8 @@
Value fpop() { return check(floatTag , _stack.pop()); }
Value apop() { return check(objectTag , _stack.pop()); }
Value rpop() { return check(addressTag, _stack.pop()); }
-#ifdef ASSERT
- // in debug mode, check for HiWord consistency
Value lpop() { Value h = _stack.pop(); return check(longTag , _stack.pop(), h); }
Value dpop() { Value h = _stack.pop(); return check(doubleTag, _stack.pop(), h); }
-#else
- // in optimized mode, ignore HiWord since it is NULL
- Value lpop() { _stack.pop(); return check(longTag , _stack.pop()); }
- Value dpop() { _stack.pop(); return check(doubleTag, _stack.pop()); }
-#endif // ASSERT
Value pop(ValueType* type) {
switch (type->tag()) {
@@ -208,16 +191,10 @@
Values* pop_arguments(int argument_size);
// locks access
- int lock (IRScope* scope, Value obj);
+ int lock (Value obj);
int unlock();
Value lock_at(int i) const { return _locks.at(i); }
- // Inlining support
- ValueStack* push_scope(IRScope* scope); // "Push" new scope, returning new resulting stack
- // Preserves stack and locks, destroys locals
- ValueStack* pop_scope(); // "Pop" topmost scope, returning new resulting stack
- // Preserves stack and locks, destroys locals
-
// SSA form IR support
void setup_phi_for_stack(BlockBegin* b, int index);
void setup_phi_for_local(BlockBegin* b, int index);
@@ -298,16 +275,18 @@
{ \
int cur_index; \
ValueStack* cur_state = v_state; \
- Value v_value; \
- { \
- for_each_stack_value(cur_state, cur_index, v_value) { \
- v_code; \
+ Value v_value; \
+ for_each_state(cur_state) { \
+ { \
+ for_each_local_value(cur_state, cur_index, v_value) { \
+ v_code; \
+ } \
} \
- } \
- for_each_state(cur_state) { \
- for_each_local_value(cur_state, cur_index, v_value) { \
- v_code; \
- } \
+ { \
+ for_each_stack_value(cur_state, cur_index, v_value) { \
+ v_code; \
+ } \
+ } \
} \
}
--- a/hotspot/src/share/vm/c1/c1_globals.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/c1/c1_globals.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -216,9 +216,6 @@
develop(bool, DeoptC1, true, \
"Use deoptimization in C1") \
\
- develop(bool, DeoptOnAsyncException, true, \
- "Deoptimize upon Thread.stop(); improves precision of IR") \
- \
develop(bool, PrintBailouts, false, \
"Print bailout and its reason") \
\
--- a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -471,7 +471,7 @@
ciField* field = fields->at(i);
int offset = field->offset_in_bytes();
int size = (field->_type == NULL) ? heapOopSize : field->size_in_bytes();
- assert(last_offset <= offset, "no field overlap");
+ assert(last_offset <= offset, err_msg("no field overlap: %d <= %d", last_offset, offset));
if (last_offset > (int)sizeof(oopDesc))
assert((offset - last_offset) < BytesPerLong, "no big holes");
// Note: Two consecutive T_BYTE fields will be separated by wordSize-1
--- a/hotspot/src/share/vm/ci/ciMethod.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -735,7 +735,11 @@
// Return true if the method is an instance of one of the two
// signature-polymorphic MethodHandle methods, invokeExact or invokeGeneric.
bool ciMethod::is_method_handle_invoke() const {
- if (!is_loaded()) return false;
+ if (!is_loaded()) {
+ bool flag = (holder()->name() == ciSymbol::java_dyn_MethodHandle() &&
+ methodOopDesc::is_method_handle_invoke_name(name()->sid()));
+ return flag;
+ }
VM_ENTRY_MARK;
return get_methodOop()->is_method_handle_invoke();
}
@@ -975,7 +979,7 @@
GUARDED_VM_ENTRY(
nmethod* code = get_methodOop()->code();
if (code != NULL && (comp_level == CompLevel_any || comp_level == code->comp_level())) {
- return code->code_end() - code->verified_entry_point();
+ return code->insts_end() - code->verified_entry_point();
}
return 0;
)
--- a/hotspot/src/share/vm/ci/ciTypeFlow.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1945,7 +1945,7 @@
_has_irreducible_entry = false;
_osr_bci = osr_bci;
_failure_reason = NULL;
- assert(start_bci() >= 0 && start_bci() < code_size() , "correct osr_bci argument");
+ assert(0 <= start_bci() && start_bci() < code_size() , err_msg("correct osr_bci argument: 0 <= %d < %d", start_bci(), code_size()));
_work_list = NULL;
_ciblock_count = _methodBlocks->num_blocks();
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -2702,13 +2702,15 @@
// Adjust the field type from byte to an unmanaged pointer.
assert(fac_ptr->nonstatic_byte_count > 0, "");
fac_ptr->nonstatic_byte_count -= 1;
- (*fields_ptr)->ushort_at_put(i + instanceKlass::signature_index_offset,
- word_sig_index);
- fac_ptr->nonstatic_word_count += 1;
+
+ (*fields_ptr)->ushort_at_put(i + instanceKlass::signature_index_offset, word_sig_index);
+ assert(wordSize == longSize || wordSize == jintSize, "ILP32 or LP64");
+ if (wordSize == longSize) fac_ptr->nonstatic_double_count += 1;
+ else fac_ptr->nonstatic_word_count += 1;
FieldAllocationType atype = (FieldAllocationType) (*fields_ptr)->ushort_at(i + instanceKlass::low_offset);
assert(atype == NONSTATIC_BYTE, "");
- FieldAllocationType new_atype = NONSTATIC_WORD;
+ FieldAllocationType new_atype = (wordSize == longSize) ? NONSTATIC_DOUBLE : NONSTATIC_WORD;
(*fields_ptr)->ushort_at_put(i + instanceKlass::low_offset, new_atype);
found_vmentry = true;
--- a/hotspot/src/share/vm/code/nmethod.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/code/nmethod.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1421,7 +1421,7 @@
}
#ifdef SHARK
- ((SharkCompiler *) compiler())->free_compiled_method(instructions_begin());
+ ((SharkCompiler *) compiler())->free_compiled_method(insts_begin());
#endif // SHARK
((CodeBlob*)(this))->flush();
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,7 @@
if (_generations == NULL)
vm_exit_during_initialization("Unable to allocate gen spec");
- if (UseParNewGC && ParallelGCThreads > 0) {
+ if (ParNewGeneration::in_use()) {
if (UseAdaptiveSizePolicy) {
_generations[0] = new GenerationSpec(Generation::ASParNew,
_initial_gen0_size, _max_gen0_size);
@@ -79,7 +79,7 @@
void ConcurrentMarkSweepPolicy::initialize_gc_policy_counters() {
// initialize the policy counters - 2 collectors, 3 generations
- if (UseParNewGC && ParallelGCThreads > 0) {
+ if (ParNewGeneration::in_use()) {
_gc_policy_counters = new GCPolicyCounters("ParNew:CMS", 2, 3);
}
else {
@@ -102,7 +102,7 @@
assert(size_policy() != NULL, "A size policy is required");
// initialize the policy counters - 2 collectors, 3 generations
- if (UseParNewGC && ParallelGCThreads > 0) {
+ if (ParNewGeneration::in_use()) {
_gc_policy_counters = new CMSGCAdaptivePolicyCounters("ParNew:CMS", 2, 3,
size_policy());
}
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,18 @@
}
}
+HeapWord* CMSPermGen::request_expand_and_allocate(Generation* gen,
+ size_t size,
+ GCCause::Cause prev_cause /* ignored */) {
+ HeapWord* obj = gen->expand_and_allocate(size, false);
+ if (gen->capacity() >= _capacity_expansion_limit) {
+ set_capacity_expansion_limit(gen->capacity() + MaxPermHeapExpansion);
+ assert(((ConcurrentMarkSweepGeneration*)gen)->should_concurrent_collect(),
+ "Should kick off a collection if one not in progress");
+ }
+ return obj;
+}
+
void CMSPermGen::compute_new_size() {
_gen->compute_new_size();
}
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -33,6 +33,10 @@
// The "generation" view.
ConcurrentMarkSweepGeneration* _gen;
+ // Override default implementation from PermGen
+ virtual HeapWord* request_expand_and_allocate(Generation* gen, size_t size,
+ GCCause::Cause prev_cause);
+
public:
CMSPermGen(ReservedSpace rs, size_t initial_byte_size,
CardTableRS* ct, FreeBlockDictionary::DictionaryChoice);
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -124,7 +124,8 @@
checkFreeListConsistency();
// Initialize locks for parallel case.
- if (ParallelGCThreads > 0) {
+
+ if (CollectedHeap::use_parallel_gc_threads()) {
for (size_t i = IndexSetStart; i < IndexSetSize; i += IndexSetStride) {
_indexedFreeListParLocks[i] = new Mutex(Mutex::leaf - 1, // == ExpandHeap_lock - 1
"a freelist par lock",
@@ -1071,7 +1072,8 @@
// at address below "p" in finding the object that contains "p"
// and those objects (if garbage) may have been modified to hold
// live range information.
- // assert(ParallelGCThreads > 0 || _bt.block_start(p) == p, "Should be a block boundary");
+ // assert(CollectedHeap::use_parallel_gc_threads() || _bt.block_start(p) == p,
+ // "Should be a block boundary");
if (FreeChunk::indicatesFreeChunk(p)) return false;
klassOop k = oop(p)->klass_or_null();
if (k != NULL) {
@@ -2932,7 +2934,9 @@
"n_tasks calculation incorrect");
SequentialSubTasksDone* pst = conc_par_seq_tasks();
assert(!pst->valid(), "Clobbering existing data?");
- pst->set_par_threads(n_threads);
+ // Sets the condition for completion of the subtask (how many threads
+ // need to finish in order to be done).
+ pst->set_n_threads(n_threads);
pst->set_n_tasks((int)n_tasks);
}
@@ -2972,6 +2976,8 @@
"n_tasks calculation incorrect");
SequentialSubTasksDone* pst = conc_par_seq_tasks();
assert(!pst->valid(), "Clobbering existing data?");
- pst->set_par_threads(n_threads);
+ // Sets the condition for completion of the subtask (how many threads
+ // need to finish in order to be done).
+ pst->set_n_threads(n_threads);
pst->set_n_tasks((int)n_tasks);
}
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -195,7 +195,7 @@
"Offset of FreeChunk::_prev within FreeChunk must match"
" that of OopDesc::_klass within OopDesc");
)
- if (ParallelGCThreads > 0) {
+ if (CollectedHeap::use_parallel_gc_threads()) {
typedef CMSParGCThreadState* CMSParGCThreadStatePtr;
_par_gc_thread_states =
NEW_C_HEAP_ARRAY(CMSParGCThreadStatePtr, ParallelGCThreads);
@@ -540,8 +540,6 @@
_is_alive_closure(_span, &_markBitMap),
_restart_addr(NULL),
_overflow_list(NULL),
- _preserved_oop_stack(NULL),
- _preserved_mark_stack(NULL),
_stats(cmsGen),
_eden_chunk_array(NULL), // may be set in ctor body
_eden_chunk_capacity(0), // -- ditto --
@@ -616,7 +614,7 @@
}
// Support for multi-threaded concurrent phases
- if (ParallelGCThreads > 0 && CMSConcurrentMTEnabled) {
+ if (CollectedHeap::use_parallel_gc_threads() && CMSConcurrentMTEnabled) {
if (FLAG_IS_DEFAULT(ConcGCThreads)) {
// just for now
FLAG_SET_DEFAULT(ConcGCThreads, (ParallelGCThreads + 3)/4);
@@ -628,6 +626,8 @@
warning("GC/CMS: _conc_workers allocation failure: "
"forcing -CMSConcurrentMTEnabled");
CMSConcurrentMTEnabled = false;
+ } else {
+ _conc_workers->initialize_workers();
}
} else {
CMSConcurrentMTEnabled = false;
@@ -936,7 +936,7 @@
// along with all the other pointers into the heap but
// compaction is expected to be a rare event with
// a heap using cms so don't do it without seeing the need.
- if (ParallelGCThreads > 0) {
+ if (CollectedHeap::use_parallel_gc_threads()) {
for (uint i = 0; i < ParallelGCThreads; i++) {
_par_gc_thread_states[i]->promo.reset();
}
@@ -2630,7 +2630,8 @@
// Should call gc_prologue_work() for all cms gens we are responsible for
bool registerClosure = _collectorState >= Marking
&& _collectorState < Sweeping;
- ModUnionClosure* muc = ParallelGCThreads > 0 ? &_modUnionClosurePar
+ ModUnionClosure* muc = CollectedHeap::use_parallel_gc_threads() ?
+ &_modUnionClosurePar
: &_modUnionClosure;
_cmsGen->gc_prologue_work(full, registerClosure, muc);
_permGen->gc_prologue_work(full, registerClosure, muc);
@@ -2731,7 +2732,7 @@
collector()->gc_epilogue(full);
// Also reset promotion tracking in par gc thread states.
- if (ParallelGCThreads > 0) {
+ if (CollectedHeap::use_parallel_gc_threads()) {
for (uint i = 0; i < ParallelGCThreads; i++) {
_par_gc_thread_states[i]->promo.stopTrackingPromotions(i);
}
@@ -3263,6 +3264,7 @@
ConcurrentMarkSweepGeneration::expand_and_allocate(size_t word_size,
bool tlab,
bool parallel) {
+ CMSSynchronousYieldRequest yr;
assert(!tlab, "Can't deal with TLAB allocation");
MutexLockerEx x(freelistLock(), Mutex::_no_safepoint_check_flag);
expand(word_size*HeapWordSize, MinHeapDeltaBytes,
@@ -3709,20 +3711,26 @@
class CMSConcMarkingTerminator: public ParallelTaskTerminator {
CMSCollector* _collector;
CMSConcMarkingTask* _task;
- bool _yield;
- protected:
+ public:
virtual void yield();
- public:
+
// "n_threads" is the number of threads to be terminated.
// "queue_set" is a set of work queues of other threads.
// "collector" is the CMS collector associated with this task terminator.
// "yield" indicates whether we need the gang as a whole to yield.
- CMSConcMarkingTerminator(int n_threads, TaskQueueSetSuper* queue_set,
- CMSCollector* collector, bool yield) :
+ CMSConcMarkingTerminator(int n_threads, TaskQueueSetSuper* queue_set, CMSCollector* collector) :
ParallelTaskTerminator(n_threads, queue_set),
- _collector(collector),
- _yield(yield) { }
-
+ _collector(collector) { }
+
+ void set_task(CMSConcMarkingTask* task) {
+ _task = task;
+ }
+};
+
+class CMSConcMarkingTerminatorTerminator: public TerminatorTerminator {
+ CMSConcMarkingTask* _task;
+ public:
+ bool should_exit_termination();
void set_task(CMSConcMarkingTask* task) {
_task = task;
}
@@ -3731,13 +3739,14 @@
// MT Concurrent Marking Task
class CMSConcMarkingTask: public YieldingFlexibleGangTask {
CMSCollector* _collector;
- YieldingFlexibleWorkGang* _workers; // the whole gang
int _n_workers; // requested/desired # workers
bool _asynch;
bool _result;
CompactibleFreeListSpace* _cms_space;
CompactibleFreeListSpace* _perm_space;
- HeapWord* _global_finger;
+ char _pad_front[64]; // padding to ...
+ HeapWord* _global_finger; // ... avoid sharing cache line
+ char _pad_back[64];
HeapWord* _restart_addr;
// Exposed here for yielding support
@@ -3745,28 +3754,30 @@
// The per thread work queues, available here for stealing
OopTaskQueueSet* _task_queues;
+
+ // Termination (and yielding) support
CMSConcMarkingTerminator _term;
+ CMSConcMarkingTerminatorTerminator _term_term;
public:
CMSConcMarkingTask(CMSCollector* collector,
CompactibleFreeListSpace* cms_space,
CompactibleFreeListSpace* perm_space,
- bool asynch, int n_workers,
+ bool asynch,
YieldingFlexibleWorkGang* workers,
OopTaskQueueSet* task_queues):
YieldingFlexibleGangTask("Concurrent marking done multi-threaded"),
_collector(collector),
_cms_space(cms_space),
_perm_space(perm_space),
- _asynch(asynch), _n_workers(n_workers), _result(true),
- _workers(workers), _task_queues(task_queues),
- _term(n_workers, task_queues, _collector, asynch),
+ _asynch(asynch), _n_workers(0), _result(true),
+ _task_queues(task_queues),
+ _term(_n_workers, task_queues, _collector),
_bit_map_lock(collector->bitMapLock())
{
- assert(n_workers <= workers->total_workers(),
- "Else termination won't work correctly today"); // XXX FIX ME!
- _requested_size = n_workers;
+ _requested_size = _n_workers;
_term.set_task(this);
+ _term_term.set_task(this);
assert(_cms_space->bottom() < _perm_space->bottom(),
"Finger incorrectly initialized below");
_restart_addr = _global_finger = _cms_space->bottom();
@@ -3781,7 +3792,16 @@
CMSConcMarkingTerminator* terminator() { return &_term; }
+ virtual void set_for_termination(int active_workers) {
+ terminator()->reset_for_reuse(active_workers);
+ }
+
void work(int i);
+ bool should_yield() {
+ return ConcurrentMarkSweepThread::should_yield()
+ && !_collector->foregroundGCIsActive()
+ && _asynch;
+ }
virtual void coordinator_yield(); // stuff done by coordinator
bool result() { return _result; }
@@ -3803,10 +3823,17 @@
void bump_global_finger(HeapWord* f);
};
+bool CMSConcMarkingTerminatorTerminator::should_exit_termination() {
+ assert(_task != NULL, "Error");
+ return _task->yielding();
+ // Note that we do not need the disjunct || _task->should_yield() above
+ // because we want terminating threads to yield only if the task
+ // is already in the midst of yielding, which happens only after at least one
+ // thread has yielded.
+}
+
void CMSConcMarkingTerminator::yield() {
- if (ConcurrentMarkSweepThread::should_yield() &&
- !_collector->foregroundGCIsActive() &&
- _yield) {
+ if (_task->should_yield()) {
_task->yield();
} else {
ParallelTaskTerminator::yield();
@@ -4031,6 +4058,7 @@
class Par_ConcMarkingClosure: public Par_KlassRememberingOopClosure {
private:
+ CMSConcMarkingTask* _task;
MemRegion _span;
CMSBitMap* _bit_map;
CMSMarkStack* _overflow_stack;
@@ -4038,11 +4066,12 @@
protected:
DO_OOP_WORK_DEFN
public:
- Par_ConcMarkingClosure(CMSCollector* collector, OopTaskQueue* work_queue,
+ Par_ConcMarkingClosure(CMSCollector* collector, CMSConcMarkingTask* task, OopTaskQueue* work_queue,
CMSBitMap* bit_map, CMSMarkStack* overflow_stack,
CMSMarkStack* revisit_stack):
Par_KlassRememberingOopClosure(collector, NULL, revisit_stack),
- _span(_collector->_span),
+ _task(task),
+ _span(collector->_span),
_work_queue(work_queue),
_bit_map(bit_map),
_overflow_stack(overflow_stack)
@@ -4051,6 +4080,11 @@
virtual void do_oop(narrowOop* p);
void trim_queue(size_t max);
void handle_stack_overflow(HeapWord* lost);
+ void do_yield_check() {
+ if (_task->should_yield()) {
+ _task->yield();
+ }
+ }
};
// Grey object scanning during work stealing phase --
@@ -4094,6 +4128,7 @@
handle_stack_overflow(addr);
}
} // Else, some other thread got there first
+ do_yield_check();
}
}
@@ -4109,6 +4144,7 @@
assert(_span.contains((HeapWord*)new_oop), "Not in span");
assert(new_oop->is_parsable(), "Should be parsable");
new_oop->oop_iterate(this); // do_oop() above
+ do_yield_check();
}
}
}
@@ -4136,7 +4172,7 @@
CMSMarkStack* ovflw = &(_collector->_markStack);
CMSMarkStack* revisit = &(_collector->_revisitStack);
int* seed = _collector->hash_seed(i);
- Par_ConcMarkingClosure cl(_collector, work_q, bm, ovflw, revisit);
+ Par_ConcMarkingClosure cl(_collector, this, work_q, bm, ovflw, revisit);
while (true) {
cl.trim_queue(0);
assert(work_q->size() == 0, "Should have been emptied above");
@@ -4149,9 +4185,11 @@
assert(obj_to_scan->is_oop(), "Should be an oop");
assert(bm->isMarked((HeapWord*)obj_to_scan), "Grey object");
obj_to_scan->oop_iterate(&cl);
- } else if (terminator()->offer_termination()) {
+ } else if (terminator()->offer_termination(&_term_term)) {
assert(work_q->size() == 0, "Impossible!");
break;
+ } else if (yielding() || should_yield()) {
+ yield();
}
}
}
@@ -4220,9 +4258,12 @@
CompactibleFreeListSpace* cms_space = _cmsGen->cmsSpace();
CompactibleFreeListSpace* perm_space = _permGen->cmsSpace();
- CMSConcMarkingTask tsk(this, cms_space, perm_space,
- asynch, num_workers /* number requested XXX */,
- conc_workers(), task_queues());
+ CMSConcMarkingTask tsk(this,
+ cms_space,
+ perm_space,
+ asynch,
+ conc_workers(),
+ task_queues());
// Since the actual number of workers we get may be different
// from the number we requested above, do we need to do anything different
@@ -4326,6 +4367,10 @@
verify_overflow_empty();
_abort_preclean = false;
if (CMSPrecleaningEnabled) {
+ // Precleaning is currently not MT but the reference processor
+ // may be set for MT. Disable it temporarily here.
+ ReferenceProcessor* rp = ref_processor();
+ ReferenceProcessorMTProcMutator z(rp, false);
_eden_chunk_index = 0;
size_t used = get_eden_used();
size_t capacity = get_eden_capacity();
@@ -4918,7 +4963,7 @@
// dirtied since the first checkpoint in this GC cycle and prior to
// the most recent young generation GC, minus those cleaned up by the
// concurrent precleaning.
- if (CMSParallelRemarkEnabled && ParallelGCThreads > 0) {
+ if (CMSParallelRemarkEnabled && CollectedHeap::use_parallel_gc_threads()) {
TraceTime t("Rescan (parallel) ", PrintGCDetails, false, gclog_or_tty);
do_remark_parallel();
} else {
@@ -5012,7 +5057,6 @@
// Parallel remark task
class CMSParRemarkTask: public AbstractGangTask {
CMSCollector* _collector;
- WorkGang* _workers;
int _n_workers;
CompactibleFreeListSpace* _cms_space;
CompactibleFreeListSpace* _perm_space;
@@ -5025,21 +5069,21 @@
CMSParRemarkTask(CMSCollector* collector,
CompactibleFreeListSpace* cms_space,
CompactibleFreeListSpace* perm_space,
- int n_workers, WorkGang* workers,
+ int n_workers, FlexibleWorkGang* workers,
OopTaskQueueSet* task_queues):
AbstractGangTask("Rescan roots and grey objects in parallel"),
_collector(collector),
_cms_space(cms_space), _perm_space(perm_space),
_n_workers(n_workers),
- _workers(workers),
_task_queues(task_queues),
- _term(workers->total_workers(), task_queues) { }
+ _term(n_workers, task_queues) { }
OopTaskQueueSet* task_queues() { return _task_queues; }
OopTaskQueue* work_queue(int i) { return task_queues()->queue(i); }
ParallelTaskTerminator* terminator() { return &_term; }
+ int n_workers() { return _n_workers; }
void work(int i);
@@ -5057,6 +5101,11 @@
void do_work_steal(int i, Par_MarkRefsIntoAndScanClosure* cl, int* seed);
};
+// work_queue(i) is passed to the closure
+// Par_MarkRefsIntoAndScanClosure. The "i" parameter
+// also is passed to do_dirty_card_rescan_tasks() and to
+// do_work_steal() to select the i-th task_queue.
+
void CMSParRemarkTask::work(int i) {
elapsedTimer _timer;
ResourceMark rm;
@@ -5128,6 +5177,7 @@
// Do the rescan tasks for each of the two spaces
// (cms_space and perm_space) in turn.
+ // "i" is passed to select the "i-th" task_queue
do_dirty_card_rescan_tasks(_cms_space, i, &par_mrias_cl);
do_dirty_card_rescan_tasks(_perm_space, i, &par_mrias_cl);
_timer.stop();
@@ -5150,6 +5200,7 @@
}
}
+// Note that parameter "i" is not used.
void
CMSParRemarkTask::do_young_space_rescan(int i,
Par_MarkRefsIntoAndScanClosure* cl, ContiguousSpace* space,
@@ -5309,8 +5360,13 @@
size_t num_from_overflow_list = MIN2((size_t)(work_q->max_elems() - work_q->size())/4,
(size_t)ParGCDesiredObjsFromOverflowList);
// Now check if there's any work in the overflow list
+ // Passing ParallelGCThreads as the third parameter, no_of_gc_threads,
+ // only affects the number of attempts made to get work from the
+ // overflow list and does not affect the number of workers. Just
+ // pass ParallelGCThreads so this behavior is unchanged.
if (_collector->par_take_from_overflow_list(num_from_overflow_list,
- work_q)) {
+ work_q,
+ ParallelGCThreads)) {
// found something in global overflow list;
// not yet ready to go stealing work from others.
// We'd like to assert(work_q->size() != 0, ...)
@@ -5367,11 +5423,12 @@
// Merge the per-thread plab arrays into the global survivor chunk
// array which will provide the partitioning of the survivor space
// for CMS rescan.
-void CMSCollector::merge_survivor_plab_arrays(ContiguousSpace* surv) {
+void CMSCollector::merge_survivor_plab_arrays(ContiguousSpace* surv,
+ int no_of_gc_threads) {
assert(_survivor_plab_array != NULL, "Error");
assert(_survivor_chunk_array != NULL, "Error");
assert(_collectorState == FinalMarking, "Error");
- for (uint j = 0; j < ParallelGCThreads; j++) {
+ for (int j = 0; j < no_of_gc_threads; j++) {
_cursor[j] = 0;
}
HeapWord* top = surv->top();
@@ -5379,7 +5436,7 @@
for (i = 0; i < _survivor_chunk_capacity; i++) { // all sca entries
HeapWord* min_val = top; // Higher than any PLAB address
uint min_tid = 0; // position of min_val this round
- for (uint j = 0; j < ParallelGCThreads; j++) {
+ for (int j = 0; j < no_of_gc_threads; j++) {
ChunkArray* cur_sca = &_survivor_plab_array[j];
if (_cursor[j] == cur_sca->end()) {
continue;
@@ -5413,7 +5470,7 @@
// Verify that we used up all the recorded entries
#ifdef ASSERT
size_t total = 0;
- for (uint j = 0; j < ParallelGCThreads; j++) {
+ for (int j = 0; j < no_of_gc_threads; j++) {
assert(_cursor[j] == _survivor_plab_array[j].end(), "Ctl pt invariant");
total += _cursor[j];
}
@@ -5448,13 +5505,15 @@
// Each valid entry in [0, _eden_chunk_index) represents a task.
size_t n_tasks = _eden_chunk_index + 1;
assert(n_tasks == 1 || _eden_chunk_array != NULL, "Error");
- pst->set_par_threads(n_threads);
+ // Sets the condition for completion of the subtask (how many threads
+ // need to finish in order to be done).
+ pst->set_n_threads(n_threads);
pst->set_n_tasks((int)n_tasks);
}
// Merge the survivor plab arrays into _survivor_chunk_array
if (_survivor_plab_array != NULL) {
- merge_survivor_plab_arrays(dng->from());
+ merge_survivor_plab_arrays(dng->from(), n_threads);
} else {
assert(_survivor_chunk_index == 0, "Error");
}
@@ -5463,7 +5522,9 @@
{
SequentialSubTasksDone* pst = dng->to()->par_seq_tasks();
assert(!pst->valid(), "Clobbering existing data?");
- pst->set_par_threads(n_threads);
+ // Sets the condition for completion of the subtask (how many threads
+ // need to finish in order to be done).
+ pst->set_n_threads(n_threads);
pst->set_n_tasks(1);
assert(pst->valid(), "Error");
}
@@ -5474,7 +5535,9 @@
assert(!pst->valid(), "Clobbering existing data?");
size_t n_tasks = _survivor_chunk_index + 1;
assert(n_tasks == 1 || _survivor_chunk_array != NULL, "Error");
- pst->set_par_threads(n_threads);
+ // Sets the condition for completion of the subtask (how many threads
+ // need to finish in order to be done).
+ pst->set_n_threads(n_threads);
pst->set_n_tasks((int)n_tasks);
assert(pst->valid(), "Error");
}
@@ -5483,7 +5546,7 @@
// Parallel version of remark
void CMSCollector::do_remark_parallel() {
GenCollectedHeap* gch = GenCollectedHeap::heap();
- WorkGang* workers = gch->workers();
+ FlexibleWorkGang* workers = gch->workers();
assert(workers != NULL, "Need parallel worker threads.");
int n_workers = workers->total_workers();
CompactibleFreeListSpace* cms_space = _cmsGen->cmsSpace();
@@ -5636,13 +5699,11 @@
////////////////////////////////////////////////////////
// Parallel Reference Processing Task Proxy Class
////////////////////////////////////////////////////////
-class CMSRefProcTaskProxy: public AbstractGangTask {
+class CMSRefProcTaskProxy: public AbstractGangTaskWOopQueues {
typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask;
CMSCollector* _collector;
CMSBitMap* _mark_bit_map;
const MemRegion _span;
- OopTaskQueueSet* _task_queues;
- ParallelTaskTerminator _term;
ProcessTask& _task;
public:
@@ -5650,24 +5711,21 @@
CMSCollector* collector,
const MemRegion& span,
CMSBitMap* mark_bit_map,
- int total_workers,
+ AbstractWorkGang* workers,
OopTaskQueueSet* task_queues):
- AbstractGangTask("Process referents by policy in parallel"),
+ AbstractGangTaskWOopQueues("Process referents by policy in parallel",
+ task_queues),
_task(task),
- _collector(collector), _span(span), _mark_bit_map(mark_bit_map),
- _task_queues(task_queues),
- _term(total_workers, task_queues)
+ _collector(collector), _span(span), _mark_bit_map(mark_bit_map)
{
assert(_collector->_span.equals(_span) && !_span.is_empty(),
"Inconsistency in _span");
}
- OopTaskQueueSet* task_queues() { return _task_queues; }
+ OopTaskQueueSet* task_queues() { return queues(); }
OopTaskQueue* work_queue(int i) { return task_queues()->queue(i); }
- ParallelTaskTerminator* terminator() { return &_term; }
-
void do_work_steal(int i,
CMSParDrainMarkingStackClosure* drain,
CMSParKeepAliveClosure* keep_alive,
@@ -5739,8 +5797,13 @@
size_t num_from_overflow_list = MIN2((size_t)(work_q->max_elems() - work_q->size())/4,
(size_t)ParGCDesiredObjsFromOverflowList);
// Now check if there's any work in the overflow list
+ // Passing ParallelGCThreads as the third parameter, no_of_gc_threads,
+ // only affects the number of attempts made to get work from the
+ // overflow list and does not affect the number of workers. Just
+ // pass ParallelGCThreads so this behavior is unchanged.
if (_collector->par_take_from_overflow_list(num_from_overflow_list,
- work_q)) {
+ work_q,
+ ParallelGCThreads)) {
// Found something in global overflow list;
// not yet ready to go stealing work from others.
// We'd like to assert(work_q->size() != 0, ...)
@@ -5773,13 +5836,12 @@
void CMSRefProcTaskExecutor::execute(ProcessTask& task)
{
GenCollectedHeap* gch = GenCollectedHeap::heap();
- WorkGang* workers = gch->workers();
+ FlexibleWorkGang* workers = gch->workers();
assert(workers != NULL, "Need parallel worker threads.");
- int n_workers = workers->total_workers();
CMSRefProcTaskProxy rp_task(task, &_collector,
_collector.ref_processor()->span(),
_collector.markBitMap(),
- n_workers, _collector.task_queues());
+ workers, _collector.task_queues());
workers->run_task(&rp_task);
}
@@ -5787,7 +5849,7 @@
{
GenCollectedHeap* gch = GenCollectedHeap::heap();
- WorkGang* workers = gch->workers();
+ FlexibleWorkGang* workers = gch->workers();
assert(workers != NULL, "Need parallel worker threads.");
CMSRefEnqueueTaskProxy enq_task(task);
workers->run_task(&enq_task);
@@ -5814,6 +5876,14 @@
{
TraceTime t("weak refs processing", PrintGCDetails, false, gclog_or_tty);
if (rp->processing_is_mt()) {
+ // Set the degree of MT here. If the discovery is done MT, there
+ // may have been a different number of threads doing the discovery
+ // and a different number of discovered lists may have Ref objects.
+ // That is OK as long as the Reference lists are balanced (see
+ // balance_all_queues() and balance_queues()).
+
+
+ rp->set_mt_degree(ParallelGCThreads);
CMSRefProcTaskExecutor task_executor(*this);
rp->process_discovered_references(&_is_alive_closure,
&cmsKeepAliveClosure,
@@ -5874,6 +5944,7 @@
rp->set_enqueuing_is_done(true);
if (rp->processing_is_mt()) {
+ rp->balance_all_queues();
CMSRefProcTaskExecutor task_executor(*this);
rp->enqueue_discovered_references(&task_executor);
} else {
@@ -8708,7 +8779,8 @@
// similar changes might be needed.
// CR 6797058 has been filed to consolidate the common code.
bool CMSCollector::par_take_from_overflow_list(size_t num,
- OopTaskQueue* work_q) {
+ OopTaskQueue* work_q,
+ int no_of_gc_threads) {
assert(work_q->size() == 0, "First empty local work queue");
assert(num < work_q->max_elems(), "Can't bite more than we can chew");
if (_overflow_list == NULL) {
@@ -8717,7 +8789,9 @@
// Grab the entire list; we'll put back a suffix
oop prefix = (oop)Atomic::xchg_ptr(BUSY, &_overflow_list);
Thread* tid = Thread::current();
- size_t CMSOverflowSpinCount = (size_t)ParallelGCThreads;
+ // Before "no_of_gc_threads" was introduced CMSOverflowSpinCount was
+ // set to ParallelGCThreads.
+ size_t CMSOverflowSpinCount = (size_t) no_of_gc_threads; // was ParallelGCThreads;
size_t sleep_time_millis = MAX2((size_t)1, num/100);
// If the list is busy, we spin for a short while,
// sleeping between attempts to get the list.
@@ -8867,23 +8941,10 @@
// failures where possible, thus, incrementally hardening the VM
// in such low resource situations.
void CMSCollector::preserve_mark_work(oop p, markOop m) {
- if (_preserved_oop_stack == NULL) {
- assert(_preserved_mark_stack == NULL,
- "bijection with preserved_oop_stack");
- // Allocate the stacks
- _preserved_oop_stack = new (ResourceObj::C_HEAP)
- GrowableArray<oop>(PreserveMarkStackSize, true);
- _preserved_mark_stack = new (ResourceObj::C_HEAP)
- GrowableArray<markOop>(PreserveMarkStackSize, true);
- if (_preserved_oop_stack == NULL || _preserved_mark_stack == NULL) {
- vm_exit_out_of_memory(2* PreserveMarkStackSize * sizeof(oop) /* punt */,
- "Preserved Mark/Oop Stack for CMS (C-heap)");
- }
- }
- _preserved_oop_stack->push(p);
- _preserved_mark_stack->push(m);
+ _preserved_oop_stack.push(p);
+ _preserved_mark_stack.push(m);
assert(m == p->mark(), "Mark word changed");
- assert(_preserved_oop_stack->length() == _preserved_mark_stack->length(),
+ assert(_preserved_oop_stack.size() == _preserved_mark_stack.size(),
"bijection");
}
@@ -8925,42 +8986,30 @@
// effect on performance so great that this will
// likely just be in the noise anyway.
void CMSCollector::restore_preserved_marks_if_any() {
- if (_preserved_oop_stack == NULL) {
- assert(_preserved_mark_stack == NULL,
- "bijection with preserved_oop_stack");
- return;
- }
-
assert(SafepointSynchronize::is_at_safepoint(),
"world should be stopped");
assert(Thread::current()->is_ConcurrentGC_thread() ||
Thread::current()->is_VM_thread(),
"should be single-threaded");
-
- int length = _preserved_oop_stack->length();
- assert(_preserved_mark_stack->length() == length, "bijection");
- for (int i = 0; i < length; i++) {
- oop p = _preserved_oop_stack->at(i);
+ assert(_preserved_oop_stack.size() == _preserved_mark_stack.size(),
+ "bijection");
+
+ while (!_preserved_oop_stack.is_empty()) {
+ oop p = _preserved_oop_stack.pop();
assert(p->is_oop(), "Should be an oop");
assert(_span.contains(p), "oop should be in _span");
assert(p->mark() == markOopDesc::prototype(),
"Set when taken from overflow list");
- markOop m = _preserved_mark_stack->at(i);
+ markOop m = _preserved_mark_stack.pop();
p->set_mark(m);
}
- _preserved_mark_stack->clear();
- _preserved_oop_stack->clear();
- assert(_preserved_mark_stack->is_empty() &&
- _preserved_oop_stack->is_empty(),
+ assert(_preserved_mark_stack.is_empty() && _preserved_oop_stack.is_empty(),
"stacks were cleared above");
}
#ifndef PRODUCT
bool CMSCollector::no_preserved_marks() const {
- return ( ( _preserved_mark_stack == NULL
- && _preserved_oop_stack == NULL)
- || ( _preserved_mark_stack->is_empty()
- && _preserved_oop_stack->is_empty()));
+ return _preserved_mark_stack.is_empty() && _preserved_oop_stack.is_empty();
}
#endif
@@ -9256,4 +9305,3 @@
true /* recordGCEndTime */,
true /* countCollection */ );
}
-
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -537,8 +537,8 @@
// The following array-pair keeps track of mark words
// displaced for accomodating overflow list above.
// This code will likely be revisited under RFE#4922830.
- GrowableArray<oop>* _preserved_oop_stack;
- GrowableArray<markOop>* _preserved_mark_stack;
+ Stack<oop> _preserved_oop_stack;
+ Stack<markOop> _preserved_mark_stack;
int* _hash_seed;
@@ -729,7 +729,9 @@
// Support for marking stack overflow handling
bool take_from_overflow_list(size_t num, CMSMarkStack* to_stack);
- bool par_take_from_overflow_list(size_t num, OopTaskQueue* to_work_q);
+ bool par_take_from_overflow_list(size_t num,
+ OopTaskQueue* to_work_q,
+ int no_of_gc_threads);
void push_on_overflow_list(oop p);
void par_push_on_overflow_list(oop p);
// the following is, obviously, not, in general, "MT-stable"
@@ -768,7 +770,7 @@
void abortable_preclean(); // Preclean while looking for possible abort
void initialize_sequential_subtasks_for_young_gen_rescan(int i);
// Helper function for above; merge-sorts the per-thread plab samples
- void merge_survivor_plab_arrays(ContiguousSpace* surv);
+ void merge_survivor_plab_arrays(ContiguousSpace* surv, int no_of_gc_threads);
// Resets (i.e. clears) the per-thread plab sample vectors
void reset_survivor_plab_arrays();
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -123,24 +123,44 @@
// or given timeout, whichever is earlier.
void wait_on_cms_lock(long t); // milliseconds
- // The CMS thread will yield during the work portion of it's cycle
+ // The CMS thread will yield during the work portion of its cycle
// only when requested to. Both synchronous and asychronous requests
- // are provided. A synchronous request is used for young gen
- // collections and direct allocations. The requesting thread increments
- // pending_yields at the beginning of an operation, and decrements it when
- // the operation is completed. The CMS thread yields when pending_yields
- // is positive. An asynchronous request is used by iCMS in the stop_icms()
- // operation. A single yield satisfies the outstanding asynch yield requests.
- // The requesting thread increments both pending_yields and pending_decrements.
- // After yielding, the CMS thread decrements both by the amount in
- // pending_decrements.
+ // are provided:
+ // (1) A synchronous request is used for young gen collections and
+ // for direct allocations. The requesting thread increments
+ // _pending_yields at the beginning of an operation, and decrements
+ // _pending_yields when that operation is completed.
+ // In turn, the CMS thread yields when _pending_yields is positive,
+ // and continues to yield until the value reverts to 0.
+ // (2) An asynchronous request, on the other hand, is used by iCMS
+ // for the stop_icms() operation. A single yield satisfies all of
+ // the outstanding asynch yield requests, of which there may
+ // occasionally be several in close succession. To accomplish
+ // this, an asynch-requesting thread atomically increments both
+ // _pending_yields and _pending_decrements. An asynchr requesting
+ // thread does not wait and "acknowledge" completion of an operation
+ // and deregister the request, like the synchronous version described
+ // above does. In turn, after yielding, the CMS thread decrements both
+ // _pending_yields and _pending_decrements by the value seen in
+ // _pending_decrements before the decrement.
+ // NOTE: The above scheme is isomorphic to having two request counters,
+ // one for async requests and one for sync requests, and for the CMS thread
+ // to check the sum of the two counters to decide whether it should yield
+ // and to clear only the async counter when it yields. However, it turns out
+ // to be more efficient for CMS code to just check a single counter
+ // _pending_yields that holds the sum (of both sync and async requests), and
+ // a second counter _pending_decrements that only holds the async requests,
+ // for greater efficiency, since in a typical CMS run, there are many more
+ // pontential (i.e. static) yield points than there are actual
+ // (i.e. dynamic) yields because of requests, which are few and far between.
+ //
// Note that, while "_pending_yields >= _pending_decrements" is an invariant,
// we cannot easily test that invariant, since the counters are manipulated via
// atomic instructions without explicit locking and we cannot read
// the two counters atomically together: one suggestion is to
// use (for example) 16-bit counters so as to be able to read the
// two counters atomically even on 32-bit platforms. Notice that
- // the second assert in acknowledge_yield_request() does indeed
+ // the second assert in acknowledge_yield_request() below does indeed
// check a form of the above invariant, albeit indirectly.
static void increment_pending_yields() {
@@ -152,6 +172,7 @@
assert(_pending_yields >= 0, "can't be negative");
}
static void asynchronous_yield_request() {
+ assert(CMSIncrementalMode, "Currently only used w/iCMS");
increment_pending_yields();
Atomic::inc(&_pending_decrements);
assert(_pending_decrements >= 0, "can't be negative");
@@ -159,6 +180,7 @@
static void acknowledge_yield_request() {
jint decrement = _pending_decrements;
if (decrement > 0) {
+ assert(CMSIncrementalMode, "Currently only used w/iCMS");
// Order important to preserve: _pending_yields >= _pending_decrements
Atomic::add(-decrement, &_pending_decrements);
Atomic::add(-decrement, &_pending_yields);
@@ -195,7 +217,7 @@
}
}
-// For scoped increment/decrement of yield requests
+// For scoped increment/decrement of (synchronous) yield requests
class CMSSynchronousYieldRequest: public StackObj {
public:
CMSSynchronousYieldRequest() {
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -278,15 +278,16 @@
if (_base != NULL) FREE_C_HEAP_ARRAY(oop, _base);
}
-void CMRegionStack::push(MemRegion mr) {
+void CMRegionStack::push_lock_free(MemRegion mr) {
assert(mr.word_size() > 0, "Precondition");
while (true) {
- if (isFull()) {
+ jint index = _index;
+
+ if (index >= _capacity) {
_overflow = true;
return;
}
// Otherwise...
- jint index = _index;
jint next_index = index+1;
jint res = Atomic::cmpxchg(next_index, &_index, index);
if (res == index) {
@@ -297,19 +298,17 @@
}
}
-// Currently we do not call this at all. Normally we would call it
-// during the concurrent marking / remark phases but we now call
-// the lock-based version instead. But we might want to resurrect this
-// code in the future. So, we'll leave it here commented out.
-#if 0
-MemRegion CMRegionStack::pop() {
+// Lock-free pop of the region stack. Called during the concurrent
+// marking / remark phases. Should only be called in tandem with
+// other lock-free pops.
+MemRegion CMRegionStack::pop_lock_free() {
while (true) {
- // Otherwise...
jint index = _index;
if (index == 0) {
return MemRegion();
}
+ // Otherwise...
jint next_index = index-1;
jint res = Atomic::cmpxchg(next_index, &_index, index);
if (res == index) {
@@ -326,7 +325,11 @@
// Otherwise, we need to try again.
}
}
-#endif // 0
+
+#if 0
+// The routines that manipulate the region stack with a lock are
+// not currently used. They should be retained, however, as a
+// diagnostic aid.
void CMRegionStack::push_with_lock(MemRegion mr) {
assert(mr.word_size() > 0, "Precondition");
@@ -361,6 +364,7 @@
}
}
}
+#endif
bool CMRegionStack::invalidate_entries_into_cset() {
bool result = false;
@@ -583,10 +587,13 @@
#endif
guarantee(parallel_marking_threads() > 0, "peace of mind");
- _parallel_workers = new WorkGang("G1 Parallel Marking Threads",
- (int) parallel_marking_threads(), false, true);
- if (_parallel_workers == NULL)
+ _parallel_workers = new FlexibleWorkGang("G1 Parallel Marking Threads",
+ (int) _parallel_marking_threads, false, true);
+ if (_parallel_workers == NULL) {
vm_exit_during_initialization("Failed necessary allocation.");
+ } else {
+ _parallel_workers->initialize_workers();
+ }
}
// so that the call below can read a sensible value
@@ -645,8 +652,9 @@
// We do reset all of them, since different phases will use
// different number of active threads. So, it's easiest to have all
// of them ready.
- for (int i = 0; i < (int) _max_task_num; ++i)
+ for (int i = 0; i < (int) _max_task_num; ++i) {
_tasks[i]->reset(_nextMarkBitMap);
+ }
// we need this to make sure that the flag is on during the evac
// pause with initial mark piggy-backed
@@ -985,7 +993,7 @@
"below the finger, pushing it",
mr.start(), mr.end());
- if (!region_stack_push(mr)) {
+ if (!region_stack_push_lock_free(mr)) {
if (verbose_low())
gclog_or_tty->print_cr("[global] region stack has overflown.");
}
@@ -1451,7 +1459,7 @@
_bm, _g1h->concurrent_mark(),
_region_bm, _card_bm);
calccl.no_yield();
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
_g1h->heap_region_par_iterate_chunked(&calccl, i,
HeapRegion::FinalCountClaimValue);
} else {
@@ -1531,7 +1539,7 @@
G1NoteEndOfConcMarkClosure g1_note_end(_g1h,
&_par_cleanup_thread_state[i]->list,
i);
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
_g1h->heap_region_par_iterate_chunked(&g1_note_end, i,
HeapRegion::NoteEndClaimValue);
} else {
@@ -1575,7 +1583,7 @@
{}
void work(int i) {
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
_g1rs->scrub_par(_region_bm, _card_bm, i,
HeapRegion::ScrubRemSetClaimValue);
} else {
@@ -1647,7 +1655,7 @@
// Do counting once more with the world stopped for good measure.
G1ParFinalCountTask g1_par_count_task(g1h, nextMarkBitMap(),
&_region_bm, &_card_bm);
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
assert(g1h->check_heap_region_claim_values(
HeapRegion::InitialClaimValue),
"sanity check");
@@ -1695,7 +1703,7 @@
// Note end of marking in all heap regions.
double note_end_start = os::elapsedTime();
G1ParNoteEndTask g1_par_note_end_task(g1h, _par_cleanup_thread_state);
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
int n_workers = g1h->workers()->total_workers();
g1h->set_par_threads(n_workers);
g1h->workers()->run_task(&g1_par_note_end_task);
@@ -1720,7 +1728,7 @@
if (G1ScrubRemSets) {
double rs_scrub_start = os::elapsedTime();
G1ParScrubRemSetTask g1_par_scrub_rs_task(g1h, &_region_bm, &_card_bm);
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
int n_workers = g1h->workers()->total_workers();
g1h->set_par_threads(n_workers);
g1h->workers()->run_task(&g1_par_scrub_rs_task);
@@ -1934,7 +1942,7 @@
g1h->ensure_parsability(false);
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
G1CollectedHeap::StrongRootsScope srs(g1h);
// this is remark, so we'll use up all available threads
int active_workers = ParallelGCThreads;
@@ -2330,6 +2338,39 @@
return NULL;
}
+bool ConcurrentMark::invalidate_aborted_regions_in_cset() {
+ bool result = false;
+ for (int i = 0; i < (int)_max_task_num; ++i) {
+ CMTask* the_task = _tasks[i];
+ MemRegion mr = the_task->aborted_region();
+ if (mr.start() != NULL) {
+ assert(mr.end() != NULL, "invariant");
+ assert(mr.word_size() > 0, "invariant");
+ HeapRegion* hr = _g1h->heap_region_containing(mr.start());
+ assert(hr != NULL, "invariant");
+ if (hr->in_collection_set()) {
+ // The region points into the collection set
+ the_task->set_aborted_region(MemRegion());
+ result = true;
+ }
+ }
+ }
+ return result;
+}
+
+bool ConcurrentMark::has_aborted_regions() {
+ for (int i = 0; i < (int)_max_task_num; ++i) {
+ CMTask* the_task = _tasks[i];
+ MemRegion mr = the_task->aborted_region();
+ if (mr.start() != NULL) {
+ assert(mr.end() != NULL, "invariant");
+ assert(mr.word_size() > 0, "invariant");
+ return true;
+ }
+ }
+ return false;
+}
+
void ConcurrentMark::oops_do(OopClosure* cl) {
if (_markStack.size() > 0 && verbose_low())
gclog_or_tty->print_cr("[global] scanning the global marking stack, "
@@ -2348,13 +2389,22 @@
queue->oops_do(cl);
}
- // finally, invalidate any entries that in the region stack that
+ // Invalidate any entries, that are in the region stack, that
// point into the collection set
if (_regionStack.invalidate_entries_into_cset()) {
// otherwise, any gray objects copied during the evacuation pause
// might not be visited.
assert(_should_gray_objects, "invariant");
}
+
+ // Invalidate any aborted regions, recorded in the individual CM
+ // tasks, that point into the collection set.
+ if (invalidate_aborted_regions_in_cset()) {
+ // otherwise, any gray objects copied during the evacuation pause
+ // might not be visited.
+ assert(_should_gray_objects, "invariant");
+ }
+
}
void ConcurrentMark::clear_marking_state() {
@@ -2635,7 +2685,7 @@
// irrespective whether all collection set regions are below the
// finger, if the region stack is not empty. This is expected to be
// a rare case, so I don't think it's necessary to be smarted about it.
- if (!region_stack_empty())
+ if (!region_stack_empty() || has_aborted_regions())
_should_gray_objects = true;
}
@@ -2654,8 +2704,10 @@
_nextMarkBitMap->clearAll();
// Empty mark stack
clear_marking_state();
- for (int i = 0; i < (int)_max_task_num; ++i)
+ for (int i = 0; i < (int)_max_task_num; ++i) {
_tasks[i]->clear_region_fields();
+ _tasks[i]->clear_aborted_region();
+ }
_has_aborted = true;
SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set();
@@ -2933,6 +2985,7 @@
_nextMarkBitMap = nextMarkBitMap;
clear_region_fields();
+ clear_aborted_region();
_calls = 0;
_elapsed_time_ms = 0.0;
@@ -3369,14 +3422,14 @@
CMObjectClosure oc(this);
SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set();
- if (ParallelGCThreads > 0)
+ if (G1CollectedHeap::use_parallel_gc_threads())
satb_mq_set.set_par_closure(_task_id, &oc);
else
satb_mq_set.set_closure(&oc);
// This keeps claiming and applying the closure to completed buffers
// until we run out of buffers or we need to abort.
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
while (!has_aborted() &&
satb_mq_set.par_apply_closure_to_completed_buffer(_task_id)) {
if (_cm->verbose_medium())
@@ -3396,7 +3449,7 @@
if (!concurrent() && !has_aborted()) {
// We should only do this during remark.
- if (ParallelGCThreads > 0)
+ if (G1CollectedHeap::use_parallel_gc_threads())
satb_mq_set.par_iterate_closure_all_threads(_task_id);
else
satb_mq_set.iterate_closure_all_threads();
@@ -3408,7 +3461,7 @@
concurrent() ||
satb_mq_set.completed_buffers_num() == 0, "invariant");
- if (ParallelGCThreads > 0)
+ if (G1CollectedHeap::use_parallel_gc_threads())
satb_mq_set.set_par_closure(_task_id, NULL);
else
satb_mq_set.set_closure(NULL);
@@ -3425,20 +3478,32 @@
assert(_region_finger == NULL,
"it should be NULL when we're not scanning a region");
- if (!_cm->region_stack_empty()) {
+ if (!_cm->region_stack_empty() || !_aborted_region.is_empty()) {
if (_cm->verbose_low())
gclog_or_tty->print_cr("[%d] draining region stack, size = %d",
_task_id, _cm->region_stack_size());
- MemRegion mr = _cm->region_stack_pop_with_lock();
- // it returns MemRegion() if the pop fails
- statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
+ MemRegion mr;
+
+ if (!_aborted_region.is_empty()) {
+ mr = _aborted_region;
+ _aborted_region = MemRegion();
+
+ if (_cm->verbose_low())
+ gclog_or_tty->print_cr("[%d] scanning aborted region [ " PTR_FORMAT ", " PTR_FORMAT " )",
+ _task_id, mr.start(), mr.end());
+ } else {
+ mr = _cm->region_stack_pop_lock_free();
+ // it returns MemRegion() if the pop fails
+ statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
+ }
while (mr.start() != NULL) {
if (_cm->verbose_medium())
gclog_or_tty->print_cr("[%d] we are scanning region "
"["PTR_FORMAT", "PTR_FORMAT")",
_task_id, mr.start(), mr.end());
+
assert(mr.end() <= _cm->finger(),
"otherwise the region shouldn't be on the stack");
assert(!mr.is_empty(), "Only non-empty regions live on the region stack");
@@ -3451,7 +3516,7 @@
if (has_aborted())
mr = MemRegion();
else {
- mr = _cm->region_stack_pop_with_lock();
+ mr = _cm->region_stack_pop_lock_free();
// it returns MemRegion() if the pop fails
statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
}
@@ -3465,6 +3530,10 @@
// have definitely set _region_finger to something non-null.
assert(_region_finger != NULL, "invariant");
+ // Make sure that any previously aborted region has been
+ // cleared.
+ assert(_aborted_region.is_empty(), "aborted region not cleared");
+
// The iteration was actually aborted. So now _region_finger
// points to the address of the object we last scanned. If we
// leave it there, when we restart this task, we will rescan
@@ -3477,14 +3546,14 @@
if (!newRegion.is_empty()) {
if (_cm->verbose_low()) {
- gclog_or_tty->print_cr("[%d] pushing unscanned region"
- "[" PTR_FORMAT "," PTR_FORMAT ") on region stack",
+ gclog_or_tty->print_cr("[%d] recording unscanned region"
+ "[" PTR_FORMAT "," PTR_FORMAT ") in CMTask",
_task_id,
newRegion.start(), newRegion.end());
}
- // Now push the part of the region we didn't scan on the
- // region stack to make sure a task scans it later.
- _cm->region_stack_push_with_lock(newRegion);
+ // Now record the part of the region we didn't scan to
+ // make sure this task scans it later.
+ _aborted_region = newRegion;
}
// break from while
mr = MemRegion();
@@ -3654,6 +3723,8 @@
assert(concurrent() || _cm->region_stack_empty(),
"the region stack should have been cleared before remark");
+ assert(concurrent() || !_cm->has_aborted_regions(),
+ "aborted regions should have been cleared before remark");
assert(_region_finger == NULL,
"this should be non-null only when a region is being scanned");
@@ -3943,6 +4014,7 @@
// that, if a condition is false, we can immediately find out
// which one.
guarantee(_cm->out_of_regions(), "only way to reach here");
+ guarantee(_aborted_region.is_empty(), "only way to reach here");
guarantee(_cm->region_stack_empty(), "only way to reach here");
guarantee(_cm->mark_stack_empty(), "only way to reach here");
guarantee(_task_queue->size() == 0, "only way to reach here");
@@ -4042,7 +4114,8 @@
_nextMarkBitMap(NULL), _hash_seed(17),
_task_queue(task_queue),
_task_queues(task_queues),
- _oop_closure(NULL) {
+ _oop_closure(NULL),
+ _aborted_region(MemRegion()) {
guarantee(task_queue != NULL, "invariant");
guarantee(task_queues != NULL, "invariant");
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -250,21 +250,23 @@
// This is lock-free; assumes that it will only be called in parallel
// with other "push" operations (no pops).
- void push(MemRegion mr);
-
-#if 0
- // This is currently not used. See the comment in the .cpp file.
+ void push_lock_free(MemRegion mr);
// Lock-free; assumes that it will only be called in parallel
// with other "pop" operations (no pushes).
- MemRegion pop();
-#endif // 0
+ MemRegion pop_lock_free();
+
+#if 0
+ // The routines that manipulate the region stack with a lock are
+ // not currently used. They should be retained, however, as a
+ // diagnostic aid.
// These two are the implementations that use a lock. They can be
// called concurrently with each other but they should not be called
// concurrently with the lock-free versions (push() / pop()).
void push_with_lock(MemRegion mr);
MemRegion pop_with_lock();
+#endif
bool isEmpty() { return _index == 0; }
bool isFull() { return _index == _capacity; }
@@ -398,6 +400,7 @@
volatile bool _concurrent;
// set at the end of a Full GC so that marking aborts
volatile bool _has_aborted;
+
// used when remark aborts due to an overflow to indicate that
// another concurrent marking phase should start
volatile bool _restart_for_overflow;
@@ -548,23 +551,30 @@
bool mark_stack_overflow() { return _markStack.overflow(); }
bool mark_stack_empty() { return _markStack.isEmpty(); }
- // Manipulation of the region stack
- bool region_stack_push(MemRegion mr) {
+ // (Lock-free) Manipulation of the region stack
+ bool region_stack_push_lock_free(MemRegion mr) {
// Currently we only call the lock-free version during evacuation
// pauses.
assert(SafepointSynchronize::is_at_safepoint(), "world should be stopped");
- _regionStack.push(mr);
+ _regionStack.push_lock_free(mr);
if (_regionStack.overflow()) {
set_has_overflown();
return false;
}
return true;
}
+
+ // Lock-free version of region-stack pop. Should only be
+ // called in tandem with other lock-free pops.
+ MemRegion region_stack_pop_lock_free() {
+ return _regionStack.pop_lock_free();
+ }
+
#if 0
- // Currently this is not used. See the comment in the .cpp file.
- MemRegion region_stack_pop() { return _regionStack.pop(); }
-#endif // 0
+ // The routines that manipulate the region stack with a lock are
+ // not currently used. They should be retained, however, as a
+ // diagnostic aid.
bool region_stack_push_with_lock(MemRegion mr) {
// Currently we only call the lock-based version during either
@@ -579,6 +589,7 @@
}
return true;
}
+
MemRegion region_stack_pop_with_lock() {
// Currently we only call the lock-based version during either
// concurrent marking or remark.
@@ -587,11 +598,21 @@
return _regionStack.pop_with_lock();
}
+#endif
int region_stack_size() { return _regionStack.size(); }
bool region_stack_overflow() { return _regionStack.overflow(); }
bool region_stack_empty() { return _regionStack.isEmpty(); }
+ // Iterate over any regions that were aborted while draining the
+ // region stack (any such regions are saved in the corresponding
+ // CMTask) and invalidate (i.e. assign to the empty MemRegion())
+ // any regions that point into the collection set.
+ bool invalidate_aborted_regions_in_cset();
+
+ // Returns true if there are any aborted memory regions.
+ bool has_aborted_regions();
+
bool concurrent_marking_in_progress() {
return _concurrent_marking_in_progress;
}
@@ -856,6 +877,15 @@
// stack.
HeapWord* _region_finger;
+ // If we abort while scanning a region we record the remaining
+ // unscanned portion and check this field when marking restarts.
+ // This avoids having to push on the region stack while other
+ // marking threads may still be popping regions.
+ // If we were to push the unscanned portion directly to the
+ // region stack then we would need to using locking versions
+ // of the push and pop operations.
+ MemRegion _aborted_region;
+
// the number of words this task has scanned
size_t _words_scanned;
// When _words_scanned reaches this limit, the regular clock is
@@ -1012,6 +1042,15 @@
void clear_has_aborted() { _has_aborted = false; }
bool claimed() { return _claimed; }
+ // Support routines for the partially scanned region that may be
+ // recorded as a result of aborting while draining the CMRegionStack
+ MemRegion aborted_region() { return _aborted_region; }
+ void set_aborted_region(MemRegion mr)
+ { _aborted_region = mr; }
+
+ // Clears any recorded partially scanned region
+ void clear_aborted_region() { set_aborted_region(MemRegion()); }
+
void set_oop_closure(OopClosure* oop_closure) {
_oop_closure = oop_closure;
}
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -303,9 +303,10 @@
}
void ConcurrentMarkThread::sleepBeforeNextCycle() {
- clear_in_progress();
// We join here because we don't want to do the "shouldConcurrentMark()"
// below while the world is otherwise stopped.
+ assert(!in_progress(), "should have been cleared");
+
MutexLockerEx x(CGC_lock, Mutex::_no_safepoint_check_flag);
while (!started()) {
CGC_lock->wait(Mutex::_no_safepoint_check_flag);
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -69,12 +69,12 @@
ConcurrentMark* cm() { return _cm; }
- void set_started() { _started = true; }
- void clear_started() { _started = false; }
+ void set_started() { assert(!_in_progress, "cycle in progress"); _started = true; }
+ void clear_started() { assert(_in_progress, "must be starting a cycle"); _started = false; }
bool started() { return _started; }
- void set_in_progress() { _in_progress = true; }
- void clear_in_progress() { _in_progress = false; }
+ void set_in_progress() { assert(_started, "must be starting a cycle"); _in_progress = true; }
+ void clear_in_progress() { assert(!_started, "must not be starting a new cycle"); _in_progress = false; }
bool in_progress() { return _in_progress; }
// This flag returns true from the moment a marking cycle is
--- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -37,11 +37,10 @@
class DirtyCardQueue: public PtrQueue {
public:
DirtyCardQueue(PtrQueueSet* qset_, bool perm = false) :
- PtrQueue(qset_, perm)
- {
- // Dirty card queues are always active.
- _active = true;
- }
+ // Dirty card queues are always active, so we create them with their
+ // active field set to true.
+ PtrQueue(qset_, perm, true /* active */) { }
+
// Apply the closure to all elements, and reset the index to make the
// buffer empty. If a closure application returns "false", return
// "false" immediately, halting the iteration. If "consume" is true,
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -961,7 +961,8 @@
}
// Rebuild remembered sets of all regions.
- if (ParallelGCThreads > 0) {
+
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
ParRebuildRSTask rebuild_rs_task(this);
assert(check_heap_region_claim_values(
HeapRegion::InitialClaimValue), "sanity check");
@@ -1784,6 +1785,14 @@
_full_collections_completed += 1;
+ // We need to clear the "in_progress" flag in the CM thread before
+ // we wake up any waiters (especially when ExplicitInvokesConcurrent
+ // is set) so that if a waiter requests another System.gc() it doesn't
+ // incorrectly see that a marking cyle is still in progress.
+ if (outer) {
+ _cmThread->clear_in_progress();
+ }
+
// This notify_all() will ensure that a thread that called
// System.gc() with (with ExplicitGCInvokesConcurrent set or not)
// and it's waiting for a full GC to finish will be woken up. It is
@@ -1960,7 +1969,7 @@
int worker,
jint claim_value) {
const size_t regions = n_regions();
- const size_t worker_num = (ParallelGCThreads > 0 ? ParallelGCThreads : 1);
+ const size_t worker_num = (G1CollectedHeap::use_parallel_gc_threads() ? ParallelGCThreads : 1);
// try to spread out the starting points of the workers
const size_t start_index = regions / worker_num * (size_t) worker;
@@ -2527,7 +2536,7 @@
}
void G1CollectedHeap::print_gc_threads_on(outputStream* st) const {
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
workers()->print_worker_threads_on(st);
}
@@ -2543,7 +2552,7 @@
}
void G1CollectedHeap::gc_threads_do(ThreadClosure* tc) const {
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
workers()->threads_do(tc);
}
tc->do_thread(_cmThread);
@@ -3083,7 +3092,7 @@
if (r != NULL) {
r_used = r->used();
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
// need to take the lock to guard against two threads calling
// get_gc_alloc_region concurrently (very unlikely but...)
MutexLockerEx x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag);
@@ -4182,6 +4191,8 @@
// *** Common G1 Evacuation Stuff
+// This method is run in a GC worker.
+
void
G1CollectedHeap::
g1_process_strong_roots(bool collecting_perm_gen,
@@ -4259,7 +4270,7 @@
};
void G1CollectedHeap::save_marks() {
- if (ParallelGCThreads == 0) {
+ if (!CollectedHeap::use_parallel_gc_threads()) {
SaveMarksClosure sm;
heap_region_iterate(&sm);
}
@@ -4284,7 +4295,7 @@
assert(dirty_card_queue_set().completed_buffers_num() == 0, "Should be empty");
double start_par = os::elapsedTime();
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
// The individual threads will set their evac-failure closures.
StrongRootsScope srs(this);
if (ParallelGCVerbose) G1ParScanThreadState::print_termination_stats_hdr();
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -656,6 +656,9 @@
bool _unclean_regions_coming;
public:
+
+ SubTasksDone* process_strong_tasks() { return _process_strong_tasks; }
+
void set_refine_cte_cl_concurrency(bool concurrent);
RefToScanQueue *task_queue(int i) const;
@@ -684,7 +687,7 @@
void set_par_threads(int t) {
SharedHeap::set_par_threads(t);
- _process_strong_tasks->set_par_threads(t);
+ _process_strong_tasks->set_n_threads(t);
}
virtual CollectedHeap::Name kind() const {
@@ -1688,8 +1691,8 @@
ref = new_ref;
}
- int refs_to_scan() { return refs()->size(); }
- int overflowed_refs_to_scan() { return refs()->overflow_stack()->length(); }
+ int refs_to_scan() { return (int)refs()->size(); }
+ int overflowed_refs_to_scan() { return (int)refs()->overflow_stack()->size(); }
template <class T> void update_rs(HeapRegion* from, T* p, int tid) {
if (G1DeferredRSUpdate) {
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -72,7 +72,10 @@
// </NEW PREDICTION>
G1CollectorPolicy::G1CollectorPolicy() :
- _parallel_gc_threads((ParallelGCThreads > 0) ? ParallelGCThreads : 1),
+ _parallel_gc_threads(G1CollectedHeap::use_parallel_gc_threads()
+ ? ParallelGCThreads : 1),
+
+
_n_pauses(0),
_recent_CH_strong_roots_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
_recent_G1_strong_roots_times_ms(new TruncatedSeq(NumPrevPausesForHeuristics)),
@@ -1073,7 +1076,7 @@
}
double G1CollectorPolicy::avg_value (double* data) {
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
double ret = 0.0;
for (uint i = 0; i < ParallelGCThreads; ++i)
ret += data[i];
@@ -1084,7 +1087,7 @@
}
double G1CollectorPolicy::max_value (double* data) {
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
double ret = data[0];
for (uint i = 1; i < ParallelGCThreads; ++i)
if (data[i] > ret)
@@ -1096,7 +1099,7 @@
}
double G1CollectorPolicy::sum_of_values (double* data) {
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
double sum = 0.0;
for (uint i = 0; i < ParallelGCThreads; i++)
sum += data[i];
@@ -1110,7 +1113,7 @@
double* data2) {
double ret = data1[0] + data2[0];
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
for (uint i = 1; i < ParallelGCThreads; ++i) {
double data = data1[i] + data2[i];
if (data > ret)
@@ -1126,7 +1129,7 @@
void G1CollectorPolicy::record_collection_pause_end() {
double end_time_sec = os::elapsedTime();
double elapsed_ms = _last_pause_time_ms;
- bool parallel = ParallelGCThreads > 0;
+ bool parallel = G1CollectedHeap::use_parallel_gc_threads();
double evac_ms = (end_time_sec - _cur_G1_strong_roots_end_sec) * 1000.0;
size_t rs_size =
_cur_collection_pause_used_regions_at_start - collection_set_size();
@@ -1941,7 +1944,7 @@
// Further, we're now always doing parallel collection. But I'm still
// leaving this here as a placeholder for a more precise assertion later.
// (DLD, 10/05.)
- assert((true || ParallelGCThreads > 0) ||
+ assert((true || G1CollectedHeap::use_parallel_gc_threads()) ||
_g1->evacuation_failed() ||
recent_survival_rate <= 1.0, "Or bad frac");
return recent_survival_rate;
@@ -1961,7 +1964,7 @@
// Further, we're now always doing parallel collection. But I'm still
// leaving this here as a placeholder for a more precise assertion later.
// (DLD, 10/05.)
- assert((true || ParallelGCThreads > 0) ||
+ assert((true || G1CollectedHeap::use_parallel_gc_threads()) ||
last_survival_rate <= 1.0, "Or bad frac");
return last_survival_rate;
} else {
@@ -2121,7 +2124,7 @@
}
void G1CollectorPolicy::print_summary(PauseSummary* summary) const {
- bool parallel = ParallelGCThreads > 0;
+ bool parallel = G1CollectedHeap::use_parallel_gc_threads();
MainBodySummary* body_summary = summary->main_body_summary();
if (summary->get_total_seq()->num() > 0) {
print_summary_sd(0, "Evacuation Pauses", summary->get_total_seq());
@@ -2559,7 +2562,7 @@
gclog_or_tty->print_cr(" clear marked regions + work1: %8.3f ms.",
(clear_marked_end - start)*1000.0);
}
- if (ParallelGCThreads > 0) {
+ if (G1CollectedHeap::use_parallel_gc_threads()) {
const size_t OverpartitionFactor = 4;
const size_t MinWorkUnit = 8;
const size_t WorkUnit =
--- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -101,22 +101,6 @@
GenMarkSweep::_preserved_count_max = 0;
GenMarkSweep::_preserved_marks = NULL;
GenMarkSweep::_preserved_count = 0;
- GenMarkSweep::_preserved_mark_stack = NULL;
- GenMarkSweep::_preserved_oop_stack = NULL;
-
- GenMarkSweep::_marking_stack =
- new (ResourceObj::C_HEAP) GrowableArray<oop>(4000, true);
- GenMarkSweep::_objarray_stack =
- new (ResourceObj::C_HEAP) GrowableArray<ObjArrayTask>(50, true);
-
- int size = SystemDictionary::number_of_classes() * 2;
- GenMarkSweep::_revisit_klass_stack =
- new (ResourceObj::C_HEAP) GrowableArray<Klass*>(size, true);
- // (#klass/k)^2 for k ~ 10 appears a better fit, but this will have to do
- // for now until we have a chance to work out a more optimal setting.
- GenMarkSweep::_revisit_mdo_stack =
- new (ResourceObj::C_HEAP) GrowableArray<DataLayout*>(size*2, true);
-
}
void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading,
@@ -145,7 +129,7 @@
// Follow system dictionary roots and unload classes
bool purged_class = SystemDictionary::do_unloading(&GenMarkSweep::is_alive);
- assert(GenMarkSweep::_marking_stack->is_empty(),
+ assert(GenMarkSweep::_marking_stack.is_empty(),
"stack should be empty by now");
// Follow code cache roots (has to be done after system dictionary,
@@ -157,19 +141,19 @@
// Update subklass/sibling/implementor links of live klasses
GenMarkSweep::follow_weak_klass_links();
- assert(GenMarkSweep::_marking_stack->is_empty(),
+ assert(GenMarkSweep::_marking_stack.is_empty(),
"stack should be empty by now");
// Visit memoized MDO's and clear any unmarked weak refs
GenMarkSweep::follow_mdo_weak_refs();
- assert(GenMarkSweep::_marking_stack->is_empty(), "just drained");
+ assert(GenMarkSweep::_marking_stack.is_empty(), "just drained");
// Visit symbol and interned string tables and delete unmarked oops
SymbolTable::unlink(&GenMarkSweep::is_alive);
StringTable::unlink(&GenMarkSweep::is_alive);
- assert(GenMarkSweep::_marking_stack->is_empty(),
+ assert(GenMarkSweep::_marking_stack.is_empty(),
"stack should be empty by now");
}
--- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -523,7 +523,7 @@
assert(!_traversal_in_progress, "Invariant between iterations.");
set_traversal(true);
if (ParallelGCThreads > 0) {
- _seq_task->set_par_threads((int)n_workers());
+ _seq_task->set_n_threads((int)n_workers());
}
guarantee( _cards_scanned == NULL, "invariant" );
_cards_scanned = NEW_C_HEAP_ARRAY(size_t, n_workers());
--- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -89,6 +89,10 @@
return _buf == NULL ? 0 : _sz - _index;
}
+ bool is_empty() {
+ return _buf == NULL || _sz == _index;
+ }
+
// Set the "active" property of the queue to "b". An enqueue to an
// inactive thread is a no-op. Setting a queue to inactive resets its
// log to the empty state.
--- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -29,7 +29,12 @@
class ObjPtrQueue: public PtrQueue {
public:
ObjPtrQueue(PtrQueueSet* qset_, bool perm = false) :
- PtrQueue(qset_, perm, qset_->is_active()) { }
+ // SATB queues are only active during marking cycles. We create
+ // them with their active field set to false. If a thread is
+ // created during a cycle and its SATB queue needs to be activated
+ // before the thread starts running, we'll need to set its active
+ // field to true. This is done in JavaThread::initialize_queues().
+ PtrQueue(qset_, perm, false /* active */) { }
// Apply the closure to all elements, and reset the index to make the
// buffer empty.
void apply_closure(ObjectClosure* cl);
--- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep Tue Nov 02 22:15:35 2010 -0700
@@ -171,6 +171,7 @@
concurrentMarkSweepGeneration.hpp generationCounters.hpp
concurrentMarkSweepGeneration.hpp memoryService.hpp
concurrentMarkSweepGeneration.hpp mutexLocker.hpp
+concurrentMarkSweepGeneration.hpp stack.inline.hpp
concurrentMarkSweepGeneration.hpp taskqueue.hpp
concurrentMarkSweepGeneration.hpp virtualspace.hpp
concurrentMarkSweepGeneration.hpp yieldingWorkgroup.hpp
--- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge Tue Nov 02 22:15:35 2010 -0700
@@ -187,9 +187,11 @@
psCompactionManager.cpp psParallelCompact.hpp
psCompactionManager.cpp psCompactionManager.hpp
psCompactionManager.cpp psOldGen.hpp
+psCompactionManager.cpp stack.inline.hpp
psCompactionManager.cpp systemDictionary.hpp
psCompactionManager.hpp allocation.hpp
+psCompactionManager.hpp stack.hpp
psCompactionManager.hpp taskqueue.hpp
psCompactionManager.inline.hpp psCompactionManager.hpp
@@ -233,12 +235,14 @@
psMarkSweep.cpp referenceProcessor.hpp
psMarkSweep.cpp safepoint.hpp
psMarkSweep.cpp spaceDecorator.hpp
+psMarkSweep.cpp stack.inline.hpp
psMarkSweep.cpp symbolTable.hpp
psMarkSweep.cpp systemDictionary.hpp
psMarkSweep.cpp vmThread.hpp
psMarkSweep.hpp markSweep.inline.hpp
psMarkSweep.hpp collectorCounters.hpp
+psMarkSweep.hpp stack.hpp
psMarkSweepDecorator.cpp liveRange.hpp
psMarkSweepDecorator.cpp markSweep.inline.hpp
@@ -280,6 +284,7 @@
psParallelCompact.cpp referencePolicy.hpp
psParallelCompact.cpp referenceProcessor.hpp
psParallelCompact.cpp safepoint.hpp
+psParallelCompact.cpp stack.inline.hpp
psParallelCompact.cpp symbolTable.hpp
psParallelCompact.cpp systemDictionary.hpp
psParallelCompact.cpp vmThread.hpp
@@ -367,6 +372,7 @@
psScavenge.cpp referenceProcessor.hpp
psScavenge.cpp resourceArea.hpp
psScavenge.cpp spaceDecorator.hpp
+psScavenge.cpp stack.inline.hpp
psScavenge.cpp threadCritical.hpp
psScavenge.cpp vmThread.hpp
psScavenge.cpp vm_operations.hpp
@@ -376,6 +382,7 @@
psScavenge.hpp collectorCounters.hpp
psScavenge.hpp oop.hpp
psScavenge.hpp psVirtualspace.hpp
+psScavenge.hpp stack.hpp
psScavenge.inline.hpp cardTableExtension.hpp
psScavenge.inline.hpp parallelScavengeHeap.hpp
--- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_serial Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_serial Tue Nov 02 22:15:35 2010 -0700
@@ -93,11 +93,13 @@
markSweep.hpp growableArray.hpp
markSweep.hpp markOop.hpp
markSweep.hpp oop.hpp
+markSweep.hpp stack.hpp
markSweep.hpp timer.hpp
markSweep.hpp universe.hpp
markSweep.inline.hpp collectedHeap.hpp
markSweep.inline.hpp markSweep.hpp
+markSweep.inline.hpp stack.inline.hpp
mutableSpace.hpp immutableSpace.hpp
mutableSpace.hpp memRegion.hpp
--- a/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@
int n_strides = n_threads * StridesPerThread;
SequentialSubTasksDone* pst = sp->par_seq_tasks();
- pst->set_par_threads(n_threads);
+ pst->set_n_threads(n_threads);
pst->set_n_tasks(n_strides);
int stride = 0;
--- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -34,12 +34,12 @@
Generation* old_gen_,
int thread_num_,
ObjToScanQueueSet* work_queue_set_,
- GrowableArray<oop>** overflow_stack_set_,
+ Stack<oop>* overflow_stacks_,
size_t desired_plab_sz_,
ParallelTaskTerminator& term_) :
_to_space(to_space_), _old_gen(old_gen_), _young_gen(gen_), _thread_num(thread_num_),
_work_queue(work_queue_set_->queue(thread_num_)), _to_space_full(false),
- _overflow_stack(overflow_stack_set_[thread_num_]),
+ _overflow_stack(overflow_stacks_ ? overflow_stacks_ + thread_num_ : NULL),
_ageTable(false), // false ==> not the global age table, no perf data.
_to_space_alloc_buffer(desired_plab_sz_),
_to_space_closure(gen_, this), _old_gen_closure(gen_, this),
@@ -159,11 +159,12 @@
assert(ParGCUseLocalOverflow, "Else should not call");
assert(young_gen()->overflow_list() == NULL, "Error");
ObjToScanQueue* queue = work_queue();
- GrowableArray<oop>* of_stack = overflow_stack();
- uint num_overflow_elems = of_stack->length();
- uint num_take_elems = MIN2(MIN2((queue->max_elems() - queue->size())/4,
- (juint)ParGCDesiredObjsFromOverflowList),
- num_overflow_elems);
+ Stack<oop>* const of_stack = overflow_stack();
+ const size_t num_overflow_elems = of_stack->size();
+ const size_t space_available = queue->max_elems() - queue->size();
+ const size_t num_take_elems = MIN3(space_available / 4,
+ ParGCDesiredObjsFromOverflowList,
+ num_overflow_elems);
// Transfer the most recent num_take_elems from the overflow
// stack to our work queue.
for (size_t i = 0; i != num_take_elems; i++) {
@@ -271,7 +272,7 @@
ParNewGeneration& gen,
Generation& old_gen,
ObjToScanQueueSet& queue_set,
- GrowableArray<oop>** overflow_stacks_,
+ Stack<oop>* overflow_stacks_,
size_t desired_plab_sz,
ParallelTaskTerminator& term);
@@ -302,17 +303,19 @@
ParScanThreadStateSet::ParScanThreadStateSet(
int num_threads, Space& to_space, ParNewGeneration& gen,
Generation& old_gen, ObjToScanQueueSet& queue_set,
- GrowableArray<oop>** overflow_stack_set_,
+ Stack<oop>* overflow_stacks,
size_t desired_plab_sz, ParallelTaskTerminator& term)
: ResourceArray(sizeof(ParScanThreadState), num_threads),
_gen(gen), _next_gen(old_gen), _term(term)
{
assert(num_threads > 0, "sanity check!");
+ assert(ParGCUseLocalOverflow == (overflow_stacks != NULL),
+ "overflow_stack allocation mismatch");
// Initialize states.
for (int i = 0; i < num_threads; ++i) {
new ((ParScanThreadState*)_data + i)
ParScanThreadState(&to_space, &gen, &old_gen, i, &queue_set,
- overflow_stack_set_, desired_plab_sz, term);
+ overflow_stacks, desired_plab_sz, term);
}
}
@@ -596,14 +599,11 @@
for (uint i2 = 0; i2 < ParallelGCThreads; i2++)
_task_queues->queue(i2)->initialize();
- _overflow_stacks = NEW_C_HEAP_ARRAY(GrowableArray<oop>*, ParallelGCThreads);
- guarantee(_overflow_stacks != NULL, "Overflow stack set allocation failure");
- for (uint i = 0; i < ParallelGCThreads; i++) {
- if (ParGCUseLocalOverflow) {
- _overflow_stacks[i] = new (ResourceObj::C_HEAP) GrowableArray<oop>(512, true);
- guarantee(_overflow_stacks[i] != NULL, "Overflow Stack allocation failure.");
- } else {
- _overflow_stacks[i] = NULL;
+ _overflow_stacks = NULL;
+ if (ParGCUseLocalOverflow) {
+ _overflow_stacks = NEW_C_HEAP_ARRAY(Stack<oop>, ParallelGCThreads);
+ for (size_t i = 0; i < ParallelGCThreads; ++i) {
+ new (_overflow_stacks + i) Stack<oop>();
}
}
@@ -937,12 +937,9 @@
} else {
assert(HandlePromotionFailure,
"Should only be here if promotion failure handling is on");
- if (_promo_failure_scan_stack != NULL) {
- // Can be non-null because of reference processing.
- // Free stack with its elements.
- delete _promo_failure_scan_stack;
- _promo_failure_scan_stack = NULL;
- }
+ assert(_promo_failure_scan_stack.is_empty(), "post condition");
+ _promo_failure_scan_stack.clear(true); // Clear cached segments.
+
remove_forwarding_pointers();
if (PrintGCDetails) {
gclog_or_tty->print(" (promotion failed)");
@@ -1397,8 +1394,8 @@
size_t objsFromOverflow = MIN2((size_t)(work_q->max_elems() - work_q->size())/4,
(size_t)ParGCDesiredObjsFromOverflowList);
+ assert(!UseCompressedOops, "Error");
assert(par_scan_state->overflow_stack() == NULL, "Error");
- assert(!UseCompressedOops, "Error");
if (_overflow_list == NULL) return false;
// Otherwise, there was something there; try claiming the list.
@@ -1533,3 +1530,7 @@
const char* ParNewGeneration::name() const {
return "par new generation";
}
+
+bool ParNewGeneration::in_use() {
+ return UseParNewGC && ParallelGCThreads > 0;
+}
--- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -52,7 +52,7 @@
friend class ParScanThreadStateSet;
private:
ObjToScanQueue *_work_queue;
- GrowableArray<oop>* _overflow_stack;
+ Stack<oop>* const _overflow_stack;
ParGCAllocBuffer _to_space_alloc_buffer;
@@ -120,7 +120,7 @@
ParScanThreadState(Space* to_space_, ParNewGeneration* gen_,
Generation* old_gen_, int thread_num_,
ObjToScanQueueSet* work_queue_set_,
- GrowableArray<oop>** overflow_stack_set_,
+ Stack<oop>* overflow_stacks_,
size_t desired_plab_sz_,
ParallelTaskTerminator& term_);
@@ -144,7 +144,7 @@
void trim_queues(int max_size);
// Private overflow stack usage
- GrowableArray<oop>* overflow_stack() { return _overflow_stack; }
+ Stack<oop>* overflow_stack() { return _overflow_stack; }
bool take_from_overflow_stack();
void push_on_overflow_stack(oop p);
@@ -301,7 +301,7 @@
ObjToScanQueueSet* _task_queues;
// Per-worker-thread local overflow stacks
- GrowableArray<oop>** _overflow_stacks;
+ Stack<oop>* _overflow_stacks;
// Desired size of survivor space plab's
PLABStats _plab_stats;
@@ -350,6 +350,8 @@
delete _task_queues;
}
+ static bool in_use();
+
virtual void ref_processor_init();
virtual Generation::Name kind() { return Generation::ParNew; }
virtual const char* name() const;
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -59,8 +59,6 @@
PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
ParCompactionManager* cm =
ParCompactionManager::gc_thread_compaction_manager(which);
- assert(cm->stacks_have_been_allocated(),
- "Stack space has not been allocated");
PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
switch (_root_type) {
@@ -119,7 +117,6 @@
// Do the real work
cm->follow_marking_stacks();
- // cm->deallocate_stacks();
}
@@ -135,8 +132,6 @@
PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
ParCompactionManager* cm =
ParCompactionManager::gc_thread_compaction_manager(which);
- assert(cm->stacks_have_been_allocated(),
- "Stack space has not been allocated");
PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
PSParallelCompact::FollowStackClosure follow_stack_closure(cm);
_rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(),
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -242,7 +242,11 @@
//
class DrainStacksCompactionTask : public GCTask {
+ uint _stack_index;
+ uint stack_index() { return _stack_index; }
public:
+ DrainStacksCompactionTask(uint stack_index) : GCTask(),
+ _stack_index(stack_index) {};
char* name() { return (char *)"drain-region-task"; }
virtual void do_it(GCTaskManager* manager, uint which);
};
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -46,23 +46,6 @@
marking_stack()->initialize();
_objarray_stack.initialize();
region_stack()->initialize();
-
- // Note that _revisit_klass_stack is allocated out of the
- // C heap (as opposed to out of ResourceArena).
- int size =
- (SystemDictionary::number_of_classes() * 2) * 2 / ParallelGCThreads;
- _revisit_klass_stack = new (ResourceObj::C_HEAP) GrowableArray<Klass*>(size, true);
- // From some experiments (#klass/k)^2 for k = 10 seems a better fit, but this will
- // have to do for now until we are able to investigate a more optimal setting.
- _revisit_mdo_stack = new (ResourceObj::C_HEAP) GrowableArray<DataLayout*>(size*2, true);
-}
-
-ParCompactionManager::~ParCompactionManager() {
- delete _revisit_klass_stack;
- delete _revisit_mdo_stack;
- // _manager_array and _stack_array are statics
- // shared with all instances of ParCompactionManager
- // should not be deallocated.
}
void ParCompactionManager::initialize(ParMarkBitMap* mbm) {
@@ -134,9 +117,9 @@
}
void ParCompactionManager::reset() {
- for(uint i=0; i<ParallelGCThreads+1; i++) {
- manager_array(i)->revisit_klass_stack()->clear();
- manager_array(i)->revisit_mdo_stack()->clear();
+ for(uint i = 0; i < ParallelGCThreads + 1; i++) {
+ assert(manager_array(i)->revisit_klass_stack()->is_empty(), "sanity");
+ assert(manager_array(i)->revisit_mdo_stack()->is_empty(), "sanity");
}
}
@@ -178,10 +161,3 @@
}
} while (!region_stack()->is_empty());
}
-
-#ifdef ASSERT
-bool ParCompactionManager::stacks_have_been_allocated() {
- return (revisit_klass_stack()->data_addr() != NULL &&
- revisit_mdo_stack()->data_addr() != NULL);
-}
-#endif
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -80,10 +80,9 @@
// type of TaskQueue.
RegionTaskQueue _region_stack;
-#if 1 // does this happen enough to need a per thread stack?
- GrowableArray<Klass*>* _revisit_klass_stack;
- GrowableArray<DataLayout*>* _revisit_mdo_stack;
-#endif
+ Stack<Klass*> _revisit_klass_stack;
+ Stack<DataLayout*> _revisit_mdo_stack;
+
static ParMarkBitMap* _mark_bitmap;
Action _action;
@@ -113,10 +112,7 @@
inline static ParCompactionManager* manager_array(int index);
ParCompactionManager();
- ~ParCompactionManager();
- void allocate_stacks();
- void deallocate_stacks();
ParMarkBitMap* mark_bitmap() { return _mark_bitmap; }
// Take actions in preparation for a compaction.
@@ -129,11 +125,8 @@
bool should_verify_only();
bool should_reset_only();
-#if 1
- // Probably stays as a growable array
- GrowableArray<Klass*>* revisit_klass_stack() { return _revisit_klass_stack; }
- GrowableArray<DataLayout*>* revisit_mdo_stack() { return _revisit_mdo_stack; }
-#endif
+ Stack<Klass*>* revisit_klass_stack() { return &_revisit_klass_stack; }
+ Stack<DataLayout*>* revisit_mdo_stack() { return &_revisit_mdo_stack; }
// Save for later processing. Must not fail.
inline void push(oop obj) { _marking_stack.push(obj); }
@@ -162,10 +155,6 @@
// Process tasks remaining on any stack
void drain_region_stacks();
- // Debugging support
-#ifdef ASSERT
- bool stacks_have_been_allocated();
-#endif
};
inline ParCompactionManager* ParCompactionManager::manager_array(int index) {
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -466,33 +466,16 @@
_preserved_count_max = pointer_delta(to_space->end(), to_space->top(), sizeof(jbyte));
// Now divide by the size of a PreservedMark
_preserved_count_max /= sizeof(PreservedMark);
-
- _preserved_mark_stack = NULL;
- _preserved_oop_stack = NULL;
-
- _marking_stack = new (ResourceObj::C_HEAP) GrowableArray<oop>(4000, true);
- _objarray_stack = new (ResourceObj::C_HEAP) GrowableArray<ObjArrayTask>(50, true);
-
- int size = SystemDictionary::number_of_classes() * 2;
- _revisit_klass_stack = new (ResourceObj::C_HEAP) GrowableArray<Klass*>(size, true);
- // (#klass/k)^2, for k ~ 10 appears a better setting, but this will have to do for
- // now until we investigate a more optimal setting.
- _revisit_mdo_stack = new (ResourceObj::C_HEAP) GrowableArray<DataLayout*>(size*2, true);
}
void PSMarkSweep::deallocate_stacks() {
- if (_preserved_oop_stack) {
- delete _preserved_mark_stack;
- _preserved_mark_stack = NULL;
- delete _preserved_oop_stack;
- _preserved_oop_stack = NULL;
- }
-
- delete _marking_stack;
- delete _objarray_stack;
- delete _revisit_klass_stack;
- delete _revisit_mdo_stack;
+ _preserved_mark_stack.clear(true);
+ _preserved_oop_stack.clear(true);
+ _marking_stack.clear();
+ _objarray_stack.clear(true);
+ _revisit_klass_stack.clear(true);
+ _revisit_mdo_stack.clear(true);
}
void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) {
@@ -542,17 +525,17 @@
// Update subklass/sibling/implementor links of live klasses
follow_weak_klass_links();
- assert(_marking_stack->is_empty(), "just drained");
+ assert(_marking_stack.is_empty(), "just drained");
// Visit memoized mdo's and clear unmarked weak refs
follow_mdo_weak_refs();
- assert(_marking_stack->is_empty(), "just drained");
+ assert(_marking_stack.is_empty(), "just drained");
// Visit symbol and interned string tables and delete unmarked oops
SymbolTable::unlink(is_alive_closure());
StringTable::unlink(is_alive_closure());
- assert(_marking_stack->is_empty(), "stack should be empty by now");
+ assert(_marking_stack.is_empty(), "stack should be empty by now");
}
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -2170,6 +2170,16 @@
heap->update_counters();
}
+#ifdef ASSERT
+ for (size_t i = 0; i < ParallelGCThreads + 1; ++i) {
+ ParCompactionManager* const cm =
+ ParCompactionManager::manager_array(int(i));
+ assert(cm->marking_stack()->is_empty(), "should be empty");
+ assert(cm->region_stack()->is_empty(), "should be empty");
+ assert(cm->revisit_klass_stack()->is_empty(), "should be empty");
+ }
+#endif // ASSERT
+
if (VerifyAfterGC && heap->total_collections() >= VerifyGCStartAt) {
HandleMark hm; // Discard invalid handles created during verification
gclog_or_tty->print(" VerifyAfterGC:");
@@ -2449,7 +2459,7 @@
const unsigned int task_count = MAX2(parallel_gc_threads, 1U);
for (unsigned int j = 0; j < task_count; j++) {
- q->enqueue(new DrainStacksCompactionTask());
+ q->enqueue(new DrainStacksCompactionTask(j));
}
// Find all regions that are available (can be filled immediately) and
@@ -2711,21 +2721,22 @@
// All klasses on the revisit stack are marked at this point.
// Update and follow all subklass, sibling and implementor links.
if (PrintRevisitStats) {
- gclog_or_tty->print_cr("#classes in system dictionary = %d", SystemDictionary::number_of_classes());
+ gclog_or_tty->print_cr("#classes in system dictionary = %d",
+ SystemDictionary::number_of_classes());
}
for (uint i = 0; i < ParallelGCThreads + 1; i++) {
ParCompactionManager* cm = ParCompactionManager::manager_array(i);
KeepAliveClosure keep_alive_closure(cm);
- int length = cm->revisit_klass_stack()->length();
+ Stack<Klass*>* const rks = cm->revisit_klass_stack();
if (PrintRevisitStats) {
- gclog_or_tty->print_cr("Revisit klass stack[%d] length = %d", i, length);
+ gclog_or_tty->print_cr("Revisit klass stack[%u] length = " SIZE_FORMAT,
+ i, rks->size());
}
- for (int j = 0; j < length; j++) {
- cm->revisit_klass_stack()->at(j)->follow_weak_klass_links(
- is_alive_closure(),
- &keep_alive_closure);
+ while (!rks->is_empty()) {
+ Klass* const k = rks->pop();
+ k->follow_weak_klass_links(is_alive_closure(), &keep_alive_closure);
}
- // revisit_klass_stack is cleared in reset()
+
cm->follow_marking_stacks();
}
}
@@ -2744,19 +2755,20 @@
// we can visit and clear any weak references from MDO's which
// we memoized during the strong marking phase.
if (PrintRevisitStats) {
- gclog_or_tty->print_cr("#classes in system dictionary = %d", SystemDictionary::number_of_classes());
+ gclog_or_tty->print_cr("#classes in system dictionary = %d",
+ SystemDictionary::number_of_classes());
}
for (uint i = 0; i < ParallelGCThreads + 1; i++) {
ParCompactionManager* cm = ParCompactionManager::manager_array(i);
- GrowableArray<DataLayout*>* rms = cm->revisit_mdo_stack();
- int length = rms->length();
+ Stack<DataLayout*>* rms = cm->revisit_mdo_stack();
if (PrintRevisitStats) {
- gclog_or_tty->print_cr("Revisit MDO stack[%d] length = %d", i, length);
+ gclog_or_tty->print_cr("Revisit MDO stack[%u] size = " SIZE_FORMAT,
+ i, rms->size());
}
- for (int j = 0; j < length; j++) {
- rms->at(j)->follow_weak_refs(is_alive_closure());
+ while (!rms->is_empty()) {
+ rms->pop()->follow_weak_refs(is_alive_closure());
}
- // revisit_mdo_stack is cleared in reset()
+
cm->follow_marking_stacks();
}
}
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -185,7 +185,6 @@
void PSPromotionManager::drain_stacks_depth(bool totally_drain) {
- assert(claimed_stack_depth()->overflow_stack() != NULL, "invariant");
totally_drain = totally_drain || _totally_drain;
#ifdef ASSERT
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -34,9 +34,10 @@
int PSScavenge::_tenuring_threshold = 0;
HeapWord* PSScavenge::_young_generation_boundary = NULL;
elapsedTimer PSScavenge::_accumulated_time;
-GrowableArray<markOop>* PSScavenge::_preserved_mark_stack = NULL;
-GrowableArray<oop>* PSScavenge::_preserved_oop_stack = NULL;
+Stack<markOop> PSScavenge::_preserved_mark_stack;
+Stack<oop> PSScavenge::_preserved_oop_stack;
CollectorCounters* PSScavenge::_counters = NULL;
+bool PSScavenge::_promotion_failed = false;
// Define before use
class PSIsAliveClosure: public BoolObjectClosure {
@@ -223,6 +224,9 @@
assert(SafepointSynchronize::is_at_safepoint(), "should be at safepoint");
assert(Thread::current() == (Thread*)VMThread::vm_thread(), "should be in vm thread");
+ assert(_preserved_mark_stack.is_empty(), "should be empty");
+ assert(_preserved_oop_stack.is_empty(), "should be empty");
+
TimeStamp scavenge_entry;
TimeStamp scavenge_midpoint;
TimeStamp scavenge_exit;
@@ -636,24 +640,20 @@
young_gen->object_iterate(&unforward_closure);
if (PrintGC && Verbose) {
- gclog_or_tty->print_cr("Restoring %d marks",
- _preserved_oop_stack->length());
+ gclog_or_tty->print_cr("Restoring %d marks", _preserved_oop_stack.size());
}
// Restore any saved marks.
- for (int i=0; i < _preserved_oop_stack->length(); i++) {
- oop obj = _preserved_oop_stack->at(i);
- markOop mark = _preserved_mark_stack->at(i);
+ while (!_preserved_oop_stack.is_empty()) {
+ oop obj = _preserved_oop_stack.pop();
+ markOop mark = _preserved_mark_stack.pop();
obj->set_mark(mark);
}
- // Deallocate the preserved mark and oop stacks.
- // The stacks were allocated as CHeap objects, so
- // we must call delete to prevent mem leaks.
- delete _preserved_mark_stack;
- _preserved_mark_stack = NULL;
- delete _preserved_oop_stack;
- _preserved_oop_stack = NULL;
+ // Clear the preserved mark and oop stack caches.
+ _preserved_mark_stack.clear(true);
+ _preserved_oop_stack.clear(true);
+ _promotion_failed = false;
}
// Reset the PromotionFailureALot counters.
@@ -661,27 +661,16 @@
}
// This method is called whenever an attempt to promote an object
-// fails. Some markOops will need preserving, some will not. Note
+// fails. Some markOops will need preservation, some will not. Note
// that the entire eden is traversed after a failed promotion, with
// all forwarded headers replaced by the default markOop. This means
// it is not neccessary to preserve most markOops.
void PSScavenge::oop_promotion_failed(oop obj, markOop obj_mark) {
- if (_preserved_mark_stack == NULL) {
- ThreadCritical tc; // Lock and retest
- if (_preserved_mark_stack == NULL) {
- assert(_preserved_oop_stack == NULL, "Sanity");
- _preserved_mark_stack = new (ResourceObj::C_HEAP) GrowableArray<markOop>(40, true);
- _preserved_oop_stack = new (ResourceObj::C_HEAP) GrowableArray<oop>(40, true);
- }
- }
-
- // Because we must hold the ThreadCritical lock before using
- // the stacks, we should be safe from observing partial allocations,
- // which are also guarded by the ThreadCritical lock.
+ _promotion_failed = true;
if (obj_mark->must_be_preserved_for_promotion_failure(obj)) {
ThreadCritical tc;
- _preserved_oop_stack->push(obj);
- _preserved_mark_stack->push(obj_mark);
+ _preserved_oop_stack.push(obj);
+ _preserved_mark_stack.push(obj_mark);
}
}
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -61,9 +61,10 @@
static HeapWord* _young_generation_boundary; // The lowest address possible for the young_gen.
// This is used to decide if an oop should be scavenged,
// cards should be marked, etc.
- static GrowableArray<markOop>* _preserved_mark_stack; // List of marks to be restored after failed promotion
- static GrowableArray<oop>* _preserved_oop_stack; // List of oops that need their mark restored.
+ static Stack<markOop> _preserved_mark_stack; // List of marks to be restored after failed promotion
+ static Stack<oop> _preserved_oop_stack; // List of oops that need their mark restored.
static CollectorCounters* _counters; // collector performance counters
+ static bool _promotion_failed;
static void clean_up_failed_promotion();
@@ -79,8 +80,7 @@
// Accessors
static int tenuring_threshold() { return _tenuring_threshold; }
static elapsedTimer* accumulated_time() { return &_accumulated_time; }
- static bool promotion_failed()
- { return _preserved_mark_stack != NULL; }
+ static bool promotion_failed() { return _promotion_failed; }
static int consecutive_skipped_scavenges()
{ return _consecutive_skipped_scavenges; }
--- a/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -185,7 +185,7 @@
instanceKlassHandle klass (THREAD, k);
instanceHandle thread_oop = klass->allocate_instance_handle(CHECK_NULL);
- const char thread_name[] = "Surrogate Locker Thread (CMS)";
+ const char thread_name[] = "Surrogate Locker Thread (Concurrent GC)";
Handle string = java_lang_String::create_from_str(thread_name, CHECK_NULL);
// Initialize thread_oop to put it into the system threadGroup
--- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -25,13 +25,13 @@
#include "incls/_precompiled.incl"
#include "incls/_markSweep.cpp.incl"
-GrowableArray<oop>* MarkSweep::_marking_stack = NULL;
-GrowableArray<ObjArrayTask>* MarkSweep::_objarray_stack = NULL;
-GrowableArray<Klass*>* MarkSweep::_revisit_klass_stack = NULL;
-GrowableArray<DataLayout*>* MarkSweep::_revisit_mdo_stack = NULL;
+Stack<oop> MarkSweep::_marking_stack;
+Stack<DataLayout*> MarkSweep::_revisit_mdo_stack;
+Stack<Klass*> MarkSweep::_revisit_klass_stack;
+Stack<ObjArrayTask> MarkSweep::_objarray_stack;
-GrowableArray<oop>* MarkSweep::_preserved_oop_stack = NULL;
-GrowableArray<markOop>* MarkSweep::_preserved_mark_stack= NULL;
+Stack<oop> MarkSweep::_preserved_oop_stack;
+Stack<markOop> MarkSweep::_preserved_mark_stack;
size_t MarkSweep::_preserved_count = 0;
size_t MarkSweep::_preserved_count_max = 0;
PreservedMark* MarkSweep::_preserved_marks = NULL;
@@ -58,37 +58,42 @@
#endif
void MarkSweep::revisit_weak_klass_link(Klass* k) {
- _revisit_klass_stack->push(k);
+ _revisit_klass_stack.push(k);
}
void MarkSweep::follow_weak_klass_links() {
// All klasses on the revisit stack are marked at this point.
// Update and follow all subklass, sibling and implementor links.
if (PrintRevisitStats) {
- gclog_or_tty->print_cr("#classes in system dictionary = %d", SystemDictionary::number_of_classes());
- gclog_or_tty->print_cr("Revisit klass stack length = %d", _revisit_klass_stack->length());
+ gclog_or_tty->print_cr("#classes in system dictionary = %d",
+ SystemDictionary::number_of_classes());
+ gclog_or_tty->print_cr("Revisit klass stack size = " SIZE_FORMAT,
+ _revisit_klass_stack.size());
}
- for (int i = 0; i < _revisit_klass_stack->length(); i++) {
- _revisit_klass_stack->at(i)->follow_weak_klass_links(&is_alive,&keep_alive);
+ while (!_revisit_klass_stack.is_empty()) {
+ Klass* const k = _revisit_klass_stack.pop();
+ k->follow_weak_klass_links(&is_alive, &keep_alive);
}
follow_stack();
}
void MarkSweep::revisit_mdo(DataLayout* p) {
- _revisit_mdo_stack->push(p);
+ _revisit_mdo_stack.push(p);
}
void MarkSweep::follow_mdo_weak_refs() {
// All strongly reachable oops have been marked at this point;
// we can visit and clear any weak references from MDO's which
// we memoized during the strong marking phase.
- assert(_marking_stack->is_empty(), "Marking stack should be empty");
+ assert(_marking_stack.is_empty(), "Marking stack should be empty");
if (PrintRevisitStats) {
- gclog_or_tty->print_cr("#classes in system dictionary = %d", SystemDictionary::number_of_classes());
- gclog_or_tty->print_cr("Revisit MDO stack length = %d", _revisit_mdo_stack->length());
+ gclog_or_tty->print_cr("#classes in system dictionary = %d",
+ SystemDictionary::number_of_classes());
+ gclog_or_tty->print_cr("Revisit MDO stack size = " SIZE_FORMAT,
+ _revisit_mdo_stack.size());
}
- for (int i = 0; i < _revisit_mdo_stack->length(); i++) {
- _revisit_mdo_stack->at(i)->follow_weak_refs(&is_alive);
+ while (!_revisit_mdo_stack.is_empty()) {
+ _revisit_mdo_stack.pop()->follow_weak_refs(&is_alive);
}
follow_stack();
}
@@ -106,41 +111,37 @@
void MarkSweep::follow_stack() {
do {
- while (!_marking_stack->is_empty()) {
- oop obj = _marking_stack->pop();
+ while (!_marking_stack.is_empty()) {
+ oop obj = _marking_stack.pop();
assert (obj->is_gc_marked(), "p must be marked");
obj->follow_contents();
}
// Process ObjArrays one at a time to avoid marking stack bloat.
- if (!_objarray_stack->is_empty()) {
- ObjArrayTask task = _objarray_stack->pop();
+ if (!_objarray_stack.is_empty()) {
+ ObjArrayTask task = _objarray_stack.pop();
objArrayKlass* const k = (objArrayKlass*)task.obj()->blueprint();
k->oop_follow_contents(task.obj(), task.index());
}
- } while (!_marking_stack->is_empty() || !_objarray_stack->is_empty());
+ } while (!_marking_stack.is_empty() || !_objarray_stack.is_empty());
}
MarkSweep::FollowStackClosure MarkSweep::follow_stack_closure;
void MarkSweep::FollowStackClosure::do_void() { follow_stack(); }
-// We preserve the mark which should be replaced at the end and the location that it
-// will go. Note that the object that this markOop belongs to isn't currently at that
-// address but it will be after phase4
+// We preserve the mark which should be replaced at the end and the location
+// that it will go. Note that the object that this markOop belongs to isn't
+// currently at that address but it will be after phase4
void MarkSweep::preserve_mark(oop obj, markOop mark) {
- // we try to store preserved marks in the to space of the new generation since this
- // is storage which should be available. Most of the time this should be sufficient
- // space for the marks we need to preserve but if it isn't we fall back in using
- // GrowableArrays to keep track of the overflow.
+ // We try to store preserved marks in the to space of the new generation since
+ // this is storage which should be available. Most of the time this should be
+ // sufficient space for the marks we need to preserve but if it isn't we fall
+ // back to using Stacks to keep track of the overflow.
if (_preserved_count < _preserved_count_max) {
_preserved_marks[_preserved_count++].init(obj, mark);
} else {
- if (_preserved_mark_stack == NULL) {
- _preserved_mark_stack = new (ResourceObj::C_HEAP) GrowableArray<markOop>(40, true);
- _preserved_oop_stack = new (ResourceObj::C_HEAP) GrowableArray<oop>(40, true);
- }
- _preserved_mark_stack->push(mark);
- _preserved_oop_stack->push(obj);
+ _preserved_mark_stack.push(mark);
+ _preserved_oop_stack.push(obj);
}
}
@@ -151,8 +152,7 @@
void MarkSweep::AdjustPointerClosure::do_oop(narrowOop* p) { adjust_pointer(p, _is_root); }
void MarkSweep::adjust_marks() {
- assert(_preserved_oop_stack == NULL ||
- _preserved_oop_stack->length() == _preserved_mark_stack->length(),
+ assert( _preserved_oop_stack.size() == _preserved_mark_stack.size(),
"inconsistent preserved oop stacks");
// adjust the oops we saved earlier
@@ -161,21 +161,19 @@
}
// deal with the overflow stack
- if (_preserved_oop_stack) {
- for (int i = 0; i < _preserved_oop_stack->length(); i++) {
- oop* p = _preserved_oop_stack->adr_at(i);
- adjust_pointer(p);
- }
+ StackIterator<oop> iter(_preserved_oop_stack);
+ while (!iter.is_empty()) {
+ oop* p = iter.next_addr();
+ adjust_pointer(p);
}
}
void MarkSweep::restore_marks() {
- assert(_preserved_oop_stack == NULL ||
- _preserved_oop_stack->length() == _preserved_mark_stack->length(),
+ assert(_preserved_oop_stack.size() == _preserved_mark_stack.size(),
"inconsistent preserved oop stacks");
if (PrintGC && Verbose) {
- gclog_or_tty->print_cr("Restoring %d marks", _preserved_count +
- (_preserved_oop_stack ? _preserved_oop_stack->length() : 0));
+ gclog_or_tty->print_cr("Restoring %d marks",
+ _preserved_count + _preserved_oop_stack.size());
}
// restore the marks we saved earlier
@@ -184,12 +182,10 @@
}
// deal with the overflow
- if (_preserved_oop_stack) {
- for (int i = 0; i < _preserved_oop_stack->length(); i++) {
- oop obj = _preserved_oop_stack->at(i);
- markOop mark = _preserved_mark_stack->at(i);
- obj->set_mark(mark);
- }
+ while (!_preserved_oop_stack.is_empty()) {
+ oop obj = _preserved_oop_stack.pop();
+ markOop mark = _preserved_mark_stack.pop();
+ obj->set_mark(mark);
}
}
--- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -104,23 +104,22 @@
friend class KeepAliveClosure;
friend class VM_MarkSweep;
friend void marksweep_init();
- friend class DataLayout;
//
// Vars
//
protected:
// Traversal stacks used during phase1
- static GrowableArray<oop>* _marking_stack;
- static GrowableArray<ObjArrayTask>* _objarray_stack;
+ static Stack<oop> _marking_stack;
+ static Stack<ObjArrayTask> _objarray_stack;
// Stack for live klasses to revisit at end of marking phase
- static GrowableArray<Klass*>* _revisit_klass_stack;
+ static Stack<Klass*> _revisit_klass_stack;
// Set (stack) of MDO's to revisit at end of marking phase
- static GrowableArray<DataLayout*>* _revisit_mdo_stack;
+ static Stack<DataLayout*> _revisit_mdo_stack;
// Space for storing/restoring mark word
- static GrowableArray<markOop>* _preserved_mark_stack;
- static GrowableArray<oop>* _preserved_oop_stack;
+ static Stack<markOop> _preserved_mark_stack;
+ static Stack<oop> _preserved_oop_stack;
static size_t _preserved_count;
static size_t _preserved_count_max;
static PreservedMark* _preserved_marks;
--- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -72,7 +72,7 @@
oop obj = oopDesc::decode_heap_oop_not_null(heap_oop);
if (!obj->mark()->is_marked()) {
mark_object(obj);
- _marking_stack->push(obj);
+ _marking_stack.push(obj);
}
}
}
@@ -80,7 +80,7 @@
void MarkSweep::push_objarray(oop obj, size_t index) {
ObjArrayTask task(obj, index);
assert(task.is_valid(), "bad ObjArrayTask");
- _objarray_stack->push(task);
+ _objarray_stack.push(task);
}
template <class T> inline void MarkSweep::adjust_pointer(T* p, bool isroot) {
--- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,9 @@
// Memory state functions.
-CollectedHeap::CollectedHeap()
+
+CollectedHeap::CollectedHeap() : _n_par_threads(0)
+
{
const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
const size_t elements_per_word = HeapWordSize / sizeof(jint);
--- a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -59,6 +59,8 @@
MemRegion _reserved;
BarrierSet* _barrier_set;
bool _is_gc_active;
+ int _n_par_threads;
+
unsigned int _total_collections; // ... started
unsigned int _total_full_collections; // ... started
NOT_PRODUCT(volatile size_t _promotion_failure_alot_count;)
@@ -293,6 +295,12 @@
}
GCCause::Cause gc_cause() { return _gc_cause; }
+ // Number of threads currently working on GC tasks.
+ int n_par_threads() { return _n_par_threads; }
+
+ // May be overridden to set additional parallelism.
+ virtual void set_par_threads(int t) { _n_par_threads = t; };
+
// Preload classes into the shared portion of the heap, and then dump
// that data to a file so that it can be loaded directly by another
// VM (then terminate).
@@ -606,6 +614,14 @@
return (CIFireOOMAt > 1 && _fire_out_of_memory_count >= CIFireOOMAt);
}
#endif
+
+ public:
+ // This is a convenience method that is used in cases where
+ // the actual number of GC worker threads is not pertinent but
+ // only whether there more than 0. Use of this method helps
+ // reduce the occurrence of ParallelGCThreads to uses where the
+ // actual number may be germane.
+ static bool use_parallel_gc_threads() { return ParallelGCThreads > 0; }
};
// Class to set and reset the GC cause for a CollectedHeap.
--- a/hotspot/src/share/vm/includeDB_compiler1 Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/includeDB_compiler1 Tue Nov 02 22:15:35 2010 -0700
@@ -448,3 +448,7 @@
top.hpp c1_globals.hpp
vmStructs.hpp c1_Runtime1.hpp
+
+c1_Canonicalizer.cpp c1_ValueStack.hpp
+
+c1_LIR.cpp c1_ValueStack.hpp
--- a/hotspot/src/share/vm/includeDB_core Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/includeDB_core Tue Nov 02 22:15:35 2010 -0700
@@ -1437,12 +1437,14 @@
defNewGeneration.cpp referencePolicy.hpp
defNewGeneration.cpp space.inline.hpp
defNewGeneration.cpp spaceDecorator.hpp
+defNewGeneration.cpp stack.inline.hpp
defNewGeneration.cpp thread_<os_family>.inline.hpp
defNewGeneration.hpp ageTable.hpp
defNewGeneration.hpp cSpaceCounters.hpp
defNewGeneration.hpp generation.inline.hpp
defNewGeneration.hpp generationCounters.hpp
+defNewGeneration.hpp stack.hpp
defNewGeneration.inline.hpp cardTableRS.hpp
defNewGeneration.inline.hpp defNewGeneration.hpp
@@ -3461,6 +3463,7 @@
permGen.hpp generation.hpp
permGen.hpp handles.hpp
permGen.hpp iterator.hpp
+permGen.hpp mutexLocker.hpp
permGen.hpp virtualspace.hpp
placeholders.cpp fieldType.hpp
@@ -3871,6 +3874,10 @@
specialized_oop_closures.hpp atomic.hpp
+stack.hpp allocation.inline.hpp
+
+stack.inline.hpp stack.hpp
+
stackMapFrame.cpp globalDefinitions.hpp
stackMapFrame.cpp handles.inline.hpp
stackMapFrame.cpp oop.inline.hpp
@@ -4115,6 +4122,7 @@
taskqueue.cpp debug.hpp
taskqueue.cpp oop.inline.hpp
taskqueue.cpp os.hpp
+taskqueue.cpp stack.inline.hpp
taskqueue.cpp taskqueue.hpp
taskqueue.cpp thread_<os_family>.inline.hpp
@@ -4122,6 +4130,7 @@
taskqueue.hpp allocation.inline.hpp
taskqueue.hpp mutex.hpp
taskqueue.hpp orderAccess_<os_arch>.inline.hpp
+taskqueue.hpp stack.hpp
templateInterpreter.cpp interpreter.hpp
templateInterpreter.cpp interpreterGenerator.hpp
@@ -4741,6 +4750,7 @@
workgroup.cpp os.hpp
workgroup.cpp workgroup.hpp
+workgroup.hpp taskqueue.hpp
workgroup.hpp thread_<os_family>.inline.hpp
xmlstream.cpp allocation.hpp
--- a/hotspot/src/share/vm/memory/allocation.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/allocation.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -289,16 +289,17 @@
// One of the following macros must be used when allocating
// an array or object from an arena
-#define NEW_ARENA_ARRAY(arena, type, size)\
- (type*) arena->Amalloc((size) * sizeof(type))
+#define NEW_ARENA_ARRAY(arena, type, size) \
+ (type*) (arena)->Amalloc((size) * sizeof(type))
-#define REALLOC_ARENA_ARRAY(arena, type, old, old_size, new_size)\
- (type*) arena->Arealloc((char*)(old), (old_size) * sizeof(type), (new_size) * sizeof(type) )
+#define REALLOC_ARENA_ARRAY(arena, type, old, old_size, new_size) \
+ (type*) (arena)->Arealloc((char*)(old), (old_size) * sizeof(type), \
+ (new_size) * sizeof(type) )
-#define FREE_ARENA_ARRAY(arena, type, old, size)\
- arena->Afree((char*)(old), (size) * sizeof(type))
+#define FREE_ARENA_ARRAY(arena, type, old, size) \
+ (arena)->Afree((char*)(old), (size) * sizeof(type))
-#define NEW_ARENA_OBJ(arena, type)\
+#define NEW_ARENA_OBJ(arena, type) \
NEW_ARENA_ARRAY(arena, type, 1)
--- a/hotspot/src/share/vm/memory/defNewGeneration.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -87,9 +87,7 @@
_gch->oop_since_save_marks_iterate(_level, _scan_cur_or_nonheap,
_scan_older);
} while (!_gch->no_allocs_since_save_marks(_level));
- guarantee(_gen->promo_failure_scan_stack() == NULL
- || _gen->promo_failure_scan_stack()->length() == 0,
- "Failed to finish scan");
+ guarantee(_gen->promo_failure_scan_is_complete(), "Failed to finish scan");
}
ScanClosure::ScanClosure(DefNewGeneration* g, bool gc_barrier) :
@@ -130,9 +128,6 @@
int level,
const char* policy)
: Generation(rs, initial_size, level),
- _objs_with_preserved_marks(NULL),
- _preserved_marks_of_objs(NULL),
- _promo_failure_scan_stack(NULL),
_promo_failure_drain_in_progress(false),
_should_allocate_from_space(false)
{
@@ -604,12 +599,8 @@
} else {
assert(HandlePromotionFailure,
"Should not be here unless promotion failure handling is on");
- assert(_promo_failure_scan_stack != NULL &&
- _promo_failure_scan_stack->length() == 0, "post condition");
-
- // deallocate stack and it's elements
- delete _promo_failure_scan_stack;
- _promo_failure_scan_stack = NULL;
+ assert(_promo_failure_scan_stack.is_empty(), "post condition");
+ _promo_failure_scan_stack.clear(true); // Clear cached segments.
remove_forwarding_pointers();
if (PrintGCDetails) {
@@ -620,7 +611,7 @@
// case there can be live objects in to-space
// as a result of a partial evacuation of eden
// and from-space.
- swap_spaces(); // For the sake of uniformity wrt ParNewGeneration::collect().
+ swap_spaces(); // For uniformity wrt ParNewGeneration.
from()->set_next_compaction_space(to());
gch->set_incremental_collection_will_fail();
@@ -653,34 +644,23 @@
RemoveForwardPointerClosure rspc;
eden()->object_iterate(&rspc);
from()->object_iterate(&rspc);
+
// Now restore saved marks, if any.
- if (_objs_with_preserved_marks != NULL) {
- assert(_preserved_marks_of_objs != NULL, "Both or none.");
- assert(_objs_with_preserved_marks->length() ==
- _preserved_marks_of_objs->length(), "Both or none.");
- for (int i = 0; i < _objs_with_preserved_marks->length(); i++) {
- oop obj = _objs_with_preserved_marks->at(i);
- markOop m = _preserved_marks_of_objs->at(i);
- obj->set_mark(m);
- }
- delete _objs_with_preserved_marks;
- delete _preserved_marks_of_objs;
- _objs_with_preserved_marks = NULL;
- _preserved_marks_of_objs = NULL;
+ assert(_objs_with_preserved_marks.size() == _preserved_marks_of_objs.size(),
+ "should be the same");
+ while (!_objs_with_preserved_marks.is_empty()) {
+ oop obj = _objs_with_preserved_marks.pop();
+ markOop m = _preserved_marks_of_objs.pop();
+ obj->set_mark(m);
}
+ _objs_with_preserved_marks.clear(true);
+ _preserved_marks_of_objs.clear(true);
}
void DefNewGeneration::preserve_mark_if_necessary(oop obj, markOop m) {
if (m->must_be_preserved_for_promotion_failure(obj)) {
- if (_objs_with_preserved_marks == NULL) {
- assert(_preserved_marks_of_objs == NULL, "Both or none.");
- _objs_with_preserved_marks = new (ResourceObj::C_HEAP)
- GrowableArray<oop>(PreserveMarkStackSize, true);
- _preserved_marks_of_objs = new (ResourceObj::C_HEAP)
- GrowableArray<markOop>(PreserveMarkStackSize, true);
- }
- _objs_with_preserved_marks->push(obj);
- _preserved_marks_of_objs->push(m);
+ _objs_with_preserved_marks.push(obj);
+ _preserved_marks_of_objs.push(m);
}
}
@@ -695,7 +675,7 @@
old->forward_to(old);
_promotion_failed = true;
- push_on_promo_failure_scan_stack(old);
+ _promo_failure_scan_stack.push(old);
if (!_promo_failure_drain_in_progress) {
// prevent recursion in copy_to_survivor_space()
@@ -748,20 +728,9 @@
return obj;
}
-void DefNewGeneration::push_on_promo_failure_scan_stack(oop obj) {
- if (_promo_failure_scan_stack == NULL) {
- _promo_failure_scan_stack = new (ResourceObj::C_HEAP)
- GrowableArray<oop>(40, true);
- }
-
- _promo_failure_scan_stack->push(obj);
-}
-
void DefNewGeneration::drain_promo_failure_scan_stack() {
- assert(_promo_failure_scan_stack != NULL, "precondition");
-
- while (_promo_failure_scan_stack->length() > 0) {
- oop obj = _promo_failure_scan_stack->pop();
+ while (!_promo_failure_scan_stack.is_empty()) {
+ oop obj = _promo_failure_scan_stack.pop();
obj->oop_iterate(_promo_failure_scan_stack_closure);
}
}
--- a/hotspot/src/share/vm/memory/defNewGeneration.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/defNewGeneration.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -77,10 +77,10 @@
// word being overwritten with a self-forwarding-pointer.
void preserve_mark_if_necessary(oop obj, markOop m);
- // When one is non-null, so is the other. Together, they each pair is
- // an object with a preserved mark, and its mark value.
- GrowableArray<oop>* _objs_with_preserved_marks;
- GrowableArray<markOop>* _preserved_marks_of_objs;
+ // Together, these keep <object with a preserved mark, mark value> pairs.
+ // They should always contain the same number of elements.
+ Stack<oop> _objs_with_preserved_marks;
+ Stack<markOop> _preserved_marks_of_objs;
// Returns true if the collection can be safely attempted.
// If this method returns false, a collection is not
@@ -94,11 +94,7 @@
_promo_failure_scan_stack_closure = scan_stack_closure;
}
- GrowableArray<oop>* _promo_failure_scan_stack;
- GrowableArray<oop>* promo_failure_scan_stack() const {
- return _promo_failure_scan_stack;
- }
- void push_on_promo_failure_scan_stack(oop);
+ Stack<oop> _promo_failure_scan_stack;
void drain_promo_failure_scan_stack(void);
bool _promo_failure_drain_in_progress;
@@ -184,8 +180,6 @@
void do_void();
};
- class FastEvacuateFollowersClosure;
- friend class FastEvacuateFollowersClosure;
class FastEvacuateFollowersClosure: public VoidClosure {
GenCollectedHeap* _gch;
int _level;
@@ -336,6 +330,10 @@
void verify(bool allow_dirty);
+ bool promo_failure_scan_is_complete() const {
+ return _promo_failure_scan_stack.is_empty();
+ }
+
protected:
// If clear_space is true, clear the survivor spaces. Eden is
// cleared if the minimum size of eden is 0. If mangle_space
--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -676,7 +676,7 @@
void GenCollectedHeap::set_par_threads(int t) {
SharedHeap::set_par_threads(t);
- _gen_process_strong_tasks->set_par_threads(t);
+ _gen_process_strong_tasks->set_n_threads(t);
}
class AssertIsPermClosure: public OopClosure {
--- a/hotspot/src/share/vm/memory/genCollectedHeap.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -74,6 +74,7 @@
// Data structure for claiming the (potentially) parallel tasks in
// (gen-specific) strong roots processing.
SubTasksDone* _gen_process_strong_tasks;
+ SubTasksDone* gen_process_strong_tasks() { return _gen_process_strong_tasks; }
// In block contents verification, the number of header words to skip
NOT_PRODUCT(static size_t _skip_header_HeapWords;)
--- a/hotspot/src/share/vm/memory/genMarkSweep.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/genMarkSweep.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -161,17 +161,6 @@
_preserved_marks = (PreservedMark*)scratch;
_preserved_count = 0;
- _preserved_mark_stack = NULL;
- _preserved_oop_stack = NULL;
-
- _marking_stack = new (ResourceObj::C_HEAP) GrowableArray<oop>(4000, true);
- _objarray_stack = new (ResourceObj::C_HEAP) GrowableArray<ObjArrayTask>(50, true);
-
- int size = SystemDictionary::number_of_classes() * 2;
- _revisit_klass_stack = new (ResourceObj::C_HEAP) GrowableArray<Klass*>(size, true);
- // (#klass/k)^2 for k ~ 10 appears to be a better fit, but this will have to do for
- // now until we have had a chance to investigate a more optimal setting.
- _revisit_mdo_stack = new (ResourceObj::C_HEAP) GrowableArray<DataLayout*>(2*size, true);
#ifdef VALIDATE_MARK_SWEEP
if (ValidateMarkSweep) {
@@ -206,17 +195,12 @@
gch->release_scratch();
}
- if (_preserved_oop_stack) {
- delete _preserved_mark_stack;
- _preserved_mark_stack = NULL;
- delete _preserved_oop_stack;
- _preserved_oop_stack = NULL;
- }
-
- delete _marking_stack;
- delete _objarray_stack;
- delete _revisit_klass_stack;
- delete _revisit_mdo_stack;
+ _preserved_mark_stack.clear(true);
+ _preserved_oop_stack.clear(true);
+ _marking_stack.clear();
+ _objarray_stack.clear(true);
+ _revisit_klass_stack.clear(true);
+ _revisit_mdo_stack.clear(true);
#ifdef VALIDATE_MARK_SWEEP
if (ValidateMarkSweep) {
@@ -274,17 +258,17 @@
// Update subklass/sibling/implementor links of live klasses
follow_weak_klass_links();
- assert(_marking_stack->is_empty(), "just drained");
+ assert(_marking_stack.is_empty(), "just drained");
// Visit memoized MDO's and clear any unmarked weak refs
follow_mdo_weak_refs();
- assert(_marking_stack->is_empty(), "just drained");
+ assert(_marking_stack.is_empty(), "just drained");
// Visit symbol and interned string tables and delete unmarked oops
SymbolTable::unlink(&is_alive);
StringTable::unlink(&is_alive);
- assert(_marking_stack->is_empty(), "stack should be empty by now");
+ assert(_marking_stack.is_empty(), "stack should be empty by now");
}
--- a/hotspot/src/share/vm/memory/permGen.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/permGen.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,17 @@
#include "incls/_precompiled.incl"
#include "incls/_permGen.cpp.incl"
+HeapWord* PermGen::request_expand_and_allocate(Generation* gen, size_t size,
+ GCCause::Cause prev_cause) {
+ if (gen->capacity() < _capacity_expansion_limit ||
+ prev_cause != GCCause::_no_gc || UseG1GC) { // last disjunct is a temporary hack for G1
+ return gen->expand_and_allocate(size, false);
+ }
+ // We have reached the limit of capacity expansion where
+ // we will not expand further until a GC is done; request denied.
+ return NULL;
+}
+
HeapWord* PermGen::mem_allocate_in_gen(size_t size, Generation* gen) {
GCCause::Cause next_cause = GCCause::_permanent_generation_full;
GCCause::Cause prev_cause = GCCause::_no_gc;
@@ -37,10 +48,14 @@
if ((obj = gen->allocate(size, false)) != NULL) {
return obj;
}
- if (gen->capacity() < _capacity_expansion_limit ||
- prev_cause != GCCause::_no_gc) {
- obj = gen->expand_and_allocate(size, false);
- }
+ // Attempt to expand and allocate the requested space:
+ // specific subtypes may use specific policy to either expand
+ // or not. The default policy (see above) is to expand until
+ // _capacity_expansion_limit, and no further unless a GC is done.
+ // Concurrent collectors may decide to kick off a concurrent
+ // collection under appropriate conditions.
+ obj = request_expand_and_allocate(gen, size, prev_cause);
+
if (obj != NULL || prev_cause == GCCause::_last_ditch_collection) {
return obj;
}
@@ -119,5 +134,5 @@
if (_gen->capacity() > desired_capacity) {
_gen->shrink(_gen->capacity() - desired_capacity);
}
- _capacity_expansion_limit = _gen->capacity() + MaxPermHeapExpansion;
+ set_capacity_expansion_limit(_gen->capacity() + MaxPermHeapExpansion);
}
--- a/hotspot/src/share/vm/memory/permGen.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/permGen.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,15 +30,26 @@
class GenRemSet;
class CSpaceCounters;
-// PermGen models the part of the heap
+// PermGen models the part of the heap used to allocate class meta-data.
class PermGen : public CHeapObj {
friend class VMStructs;
protected:
size_t _capacity_expansion_limit; // maximum expansion allowed without a
// full gc occurring
+ void set_capacity_expansion_limit(size_t limit) {
+ assert_locked_or_safepoint(Heap_lock);
+ _capacity_expansion_limit = limit;
+ }
HeapWord* mem_allocate_in_gen(size_t size, Generation* gen);
+ // Along with mem_allocate_in_gen() above, implements policy for
+ // "scheduling" allocation/expansion/collection of the perm gen.
+ // The virtual method request_...() below can be overridden by
+ // subtypes that want to implement a different expansion/collection
+ // policy from the default provided.
+ virtual HeapWord* request_expand_and_allocate(Generation* gen, size_t size,
+ GCCause::Cause prev_cause);
public:
enum Name {
--- a/hotspot/src/share/vm/memory/referenceProcessor.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -137,16 +137,17 @@
_discovery_is_atomic = atomic_discovery;
_discovery_is_mt = mt_discovery;
_num_q = mt_degree;
- _discoveredSoftRefs = NEW_C_HEAP_ARRAY(DiscoveredList, _num_q * subclasses_of_ref);
+ _max_num_q = mt_degree;
+ _discoveredSoftRefs = NEW_C_HEAP_ARRAY(DiscoveredList, _max_num_q * subclasses_of_ref);
if (_discoveredSoftRefs == NULL) {
vm_exit_during_initialization("Could not allocated RefProc Array");
}
- _discoveredWeakRefs = &_discoveredSoftRefs[_num_q];
- _discoveredFinalRefs = &_discoveredWeakRefs[_num_q];
- _discoveredPhantomRefs = &_discoveredFinalRefs[_num_q];
+ _discoveredWeakRefs = &_discoveredSoftRefs[_max_num_q];
+ _discoveredFinalRefs = &_discoveredWeakRefs[_max_num_q];
+ _discoveredPhantomRefs = &_discoveredFinalRefs[_max_num_q];
assert(sentinel_ref() != NULL, "_sentinelRef is NULL");
// Initialized all entries to _sentinelRef
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
_discoveredSoftRefs[i].set_head(sentinel_ref());
_discoveredSoftRefs[i].set_length(0);
}
@@ -159,7 +160,7 @@
#ifndef PRODUCT
void ReferenceProcessor::verify_no_references_recorded() {
guarantee(!_discovering_refs, "Discovering refs?");
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
guarantee(_discoveredSoftRefs[i].empty(),
"Found non-empty discovered list");
}
@@ -167,7 +168,11 @@
#endif
void ReferenceProcessor::weak_oops_do(OopClosure* f) {
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
+ // Should this instead be
+ // for (int i = 0; i < subclasses_of_ref; i++_ {
+ // for (int j = 0; j < _num_q; j++) {
+ // int index = i * _max_num_q + j;
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
if (UseCompressedOops) {
f->do_oop((narrowOop*)_discoveredSoftRefs[i].adr_head());
} else {
@@ -395,7 +400,15 @@
assert(work_id < (unsigned int)_ref_processor.num_q(), "Index out-of-bounds");
// Simplest first cut: static partitioning.
int index = work_id;
- for (int j = 0; j < subclasses_of_ref; j++, index += _n_queues) {
+ // The increment on "index" must correspond to the maximum number of queues
+ // (n_queues) with which that ReferenceProcessor was created. That
+ // is because of the "clever" way the discovered references lists were
+ // allocated and are indexed into. That number is ParallelGCThreads
+ // currently. Assert that.
+ assert(_n_queues == (int) ParallelGCThreads, "Different number not expected");
+ for (int j = 0;
+ j < subclasses_of_ref;
+ j++, index += _n_queues) {
_ref_processor.enqueue_discovered_reflist(
_refs_lists[index], _pending_list_addr);
_refs_lists[index].set_head(_sentinel_ref);
@@ -410,11 +423,11 @@
if (_processing_is_mt && task_executor != NULL) {
// Parallel code
RefProcEnqueueTask tsk(*this, _discoveredSoftRefs,
- pending_list_addr, sentinel_ref(), _num_q);
+ pending_list_addr, sentinel_ref(), _max_num_q);
task_executor->execute(tsk);
} else {
// Serial code: call the parent class's implementation
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
enqueue_discovered_reflist(_discoveredSoftRefs[i], pending_list_addr);
_discoveredSoftRefs[i].set_head(sentinel_ref());
_discoveredSoftRefs[i].set_length(0);
@@ -614,8 +627,9 @@
complete_gc->do_void();
NOT_PRODUCT(
if (PrintGCDetails && TraceReferenceGC) {
- gclog_or_tty->print(" Dropped %d dead Refs out of %d "
- "discovered Refs by policy ", iter.removed(), iter.processed());
+ gclog_or_tty->print_cr(" Dropped %d dead Refs out of %d "
+ "discovered Refs by policy list " INTPTR_FORMAT,
+ iter.removed(), iter.processed(), (address)refs_list.head());
}
)
}
@@ -651,8 +665,9 @@
}
NOT_PRODUCT(
if (PrintGCDetails && TraceReferenceGC) {
- gclog_or_tty->print(" Dropped %d active Refs out of %d "
- "Refs in discovered list ", iter.removed(), iter.processed());
+ gclog_or_tty->print_cr(" Dropped %d active Refs out of %d "
+ "Refs in discovered list " INTPTR_FORMAT,
+ iter.removed(), iter.processed(), (address)refs_list.head());
}
)
}
@@ -689,8 +704,9 @@
complete_gc->do_void();
NOT_PRODUCT(
if (PrintGCDetails && TraceReferenceGC) {
- gclog_or_tty->print(" Dropped %d active Refs out of %d "
- "Refs in discovered list ", iter.removed(), iter.processed());
+ gclog_or_tty->print_cr(" Dropped %d active Refs out of %d "
+ "Refs in discovered list " INTPTR_FORMAT,
+ iter.removed(), iter.processed(), (address)refs_list.head());
}
)
}
@@ -704,6 +720,7 @@
BoolObjectClosure* is_alive,
OopClosure* keep_alive,
VoidClosure* complete_gc) {
+ ResourceMark rm;
DiscoveredListIterator iter(refs_list, keep_alive, is_alive);
while (iter.has_next()) {
iter.update_discovered();
@@ -743,8 +760,8 @@
void ReferenceProcessor::abandon_partial_discovery() {
// loop over the lists
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
- if (TraceReferenceGC && PrintGCDetails && ((i % _num_q) == 0)) {
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
+ if (TraceReferenceGC && PrintGCDetails && ((i % _max_num_q) == 0)) {
gclog_or_tty->print_cr(
"\nAbandoning %s discovered list",
list_name(i));
@@ -766,7 +783,9 @@
OopClosure& keep_alive,
VoidClosure& complete_gc)
{
- _ref_processor.process_phase1(_refs_lists[i], _policy,
+ Thread* thr = Thread::current();
+ int refs_list_index = ((WorkerThread*)thr)->id();
+ _ref_processor.process_phase1(_refs_lists[refs_list_index], _policy,
&is_alive, &keep_alive, &complete_gc);
}
private:
@@ -802,6 +821,11 @@
OopClosure& keep_alive,
VoidClosure& complete_gc)
{
+ // Don't use "refs_list_index" calculated in this way because
+ // balance_queues() has moved the Ref's into the first n queues.
+ // Thread* thr = Thread::current();
+ // int refs_list_index = ((WorkerThread*)thr)->id();
+ // _ref_processor.process_phase3(_refs_lists[refs_list_index], _clear_referent,
_ref_processor.process_phase3(_refs_lists[i], _clear_referent,
&is_alive, &keep_alive, &complete_gc);
}
@@ -810,23 +834,47 @@
};
// Balances reference queues.
+// Move entries from all queues[0, 1, ..., _max_num_q-1] to
+// queues[0, 1, ..., _num_q-1] because only the first _num_q
+// corresponding to the active workers will be processed.
void ReferenceProcessor::balance_queues(DiscoveredList ref_lists[])
{
// calculate total length
size_t total_refs = 0;
- for (int i = 0; i < _num_q; ++i) {
+ if (TraceReferenceGC && PrintGCDetails) {
+ gclog_or_tty->print_cr("\nBalance ref_lists ");
+ }
+
+ for (int i = 0; i < _max_num_q; ++i) {
total_refs += ref_lists[i].length();
+ if (TraceReferenceGC && PrintGCDetails) {
+ gclog_or_tty->print("%d ", ref_lists[i].length());
+ }
+ }
+ if (TraceReferenceGC && PrintGCDetails) {
+ gclog_or_tty->print_cr(" = %d", total_refs);
}
size_t avg_refs = total_refs / _num_q + 1;
int to_idx = 0;
- for (int from_idx = 0; from_idx < _num_q; from_idx++) {
- while (ref_lists[from_idx].length() > avg_refs) {
+ for (int from_idx = 0; from_idx < _max_num_q; from_idx++) {
+ bool move_all = false;
+ if (from_idx >= _num_q) {
+ move_all = ref_lists[from_idx].length() > 0;
+ }
+ while ((ref_lists[from_idx].length() > avg_refs) ||
+ move_all) {
assert(to_idx < _num_q, "Sanity Check!");
if (ref_lists[to_idx].length() < avg_refs) {
// move superfluous refs
- size_t refs_to_move =
- MIN2(ref_lists[from_idx].length() - avg_refs,
- avg_refs - ref_lists[to_idx].length());
+ size_t refs_to_move;
+ // Move all the Ref's if the from queue will not be processed.
+ if (move_all) {
+ refs_to_move = MIN2(ref_lists[from_idx].length(),
+ avg_refs - ref_lists[to_idx].length());
+ } else {
+ refs_to_move = MIN2(ref_lists[from_idx].length() - avg_refs,
+ avg_refs - ref_lists[to_idx].length());
+ }
oop move_head = ref_lists[from_idx].head();
oop move_tail = move_head;
oop new_head = move_head;
@@ -840,11 +888,35 @@
ref_lists[to_idx].inc_length(refs_to_move);
ref_lists[from_idx].set_head(new_head);
ref_lists[from_idx].dec_length(refs_to_move);
+ if (ref_lists[from_idx].length() == 0) {
+ break;
+ }
} else {
- ++to_idx;
+ to_idx = (to_idx + 1) % _num_q;
}
}
}
+#ifdef ASSERT
+ size_t balanced_total_refs = 0;
+ for (int i = 0; i < _max_num_q; ++i) {
+ balanced_total_refs += ref_lists[i].length();
+ if (TraceReferenceGC && PrintGCDetails) {
+ gclog_or_tty->print("%d ", ref_lists[i].length());
+ }
+ }
+ if (TraceReferenceGC && PrintGCDetails) {
+ gclog_or_tty->print_cr(" = %d", balanced_total_refs);
+ gclog_or_tty->flush();
+ }
+ assert(total_refs == balanced_total_refs, "Balancing was incomplete");
+#endif
+}
+
+void ReferenceProcessor::balance_all_queues() {
+ balance_queues(_discoveredSoftRefs);
+ balance_queues(_discoveredWeakRefs);
+ balance_queues(_discoveredFinalRefs);
+ balance_queues(_discoveredPhantomRefs);
}
void
@@ -857,8 +929,17 @@
VoidClosure* complete_gc,
AbstractRefProcTaskExecutor* task_executor)
{
- bool mt = task_executor != NULL && _processing_is_mt;
- if (mt && ParallelRefProcBalancingEnabled) {
+ bool mt_processing = task_executor != NULL && _processing_is_mt;
+ // If discovery used MT and a dynamic number of GC threads, then
+ // the queues must be balanced for correctness if fewer than the
+ // maximum number of queues were used. The number of queue used
+ // during discovery may be different than the number to be used
+ // for processing so don't depend of _num_q < _max_num_q as part
+ // of the test.
+ bool must_balance = _discovery_is_mt;
+
+ if ((mt_processing && ParallelRefProcBalancingEnabled) ||
+ must_balance) {
balance_queues(refs_lists);
}
if (PrintReferenceGC && PrintGCDetails) {
@@ -875,7 +956,7 @@
// policy reasons. Keep alive the transitive closure of all
// such referents.
if (policy != NULL) {
- if (mt) {
+ if (mt_processing) {
RefProcPhase1Task phase1(*this, refs_lists, policy, true /*marks_oops_alive*/);
task_executor->execute(phase1);
} else {
@@ -891,7 +972,7 @@
// Phase 2:
// . Traverse the list and remove any refs whose referents are alive.
- if (mt) {
+ if (mt_processing) {
RefProcPhase2Task phase2(*this, refs_lists, !discovery_is_atomic() /*marks_oops_alive*/);
task_executor->execute(phase2);
} else {
@@ -902,7 +983,7 @@
// Phase 3:
// . Traverse the list and process referents as appropriate.
- if (mt) {
+ if (mt_processing) {
RefProcPhase3Task phase3(*this, refs_lists, clear_referent, true /*marks_oops_alive*/);
task_executor->execute(phase3);
} else {
@@ -915,7 +996,11 @@
void ReferenceProcessor::clean_up_discovered_references() {
// loop over the lists
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
+ // Should this instead be
+ // for (int i = 0; i < subclasses_of_ref; i++_ {
+ // for (int j = 0; j < _num_q; j++) {
+ // int index = i * _max_num_q + j;
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
if (TraceReferenceGC && PrintGCDetails && ((i % _num_q) == 0)) {
gclog_or_tty->print_cr(
"\nScrubbing %s discovered list of Null referents",
@@ -976,7 +1061,7 @@
id = next_id();
}
}
- assert(0 <= id && id < _num_q, "Id is out-of-bounds (call Freud?)");
+ assert(0 <= id && id < _max_num_q, "Id is out-of-bounds (call Freud?)");
// Get the discovered queue to which we will add
DiscoveredList* list = NULL;
@@ -1001,6 +1086,10 @@
default:
ShouldNotReachHere();
}
+ if (TraceReferenceGC && PrintGCDetails) {
+ gclog_or_tty->print_cr("Thread %d gets list " INTPTR_FORMAT,
+ id, list);
+ }
return list;
}
@@ -1243,7 +1332,7 @@
{
TraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC,
false, gclog_or_tty);
- for (int i = 0; i < _num_q; i++) {
+ for (int i = 0; i < _max_num_q; i++) {
if (yield->should_return()) {
return;
}
@@ -1340,15 +1429,16 @@
NOT_PRODUCT(
if (PrintGCDetails && PrintReferenceGC) {
- gclog_or_tty->print(" Dropped %d Refs out of %d "
- "Refs in discovered list ", iter.removed(), iter.processed());
+ gclog_or_tty->print_cr(" Dropped %d Refs out of %d "
+ "Refs in discovered list " INTPTR_FORMAT,
+ iter.removed(), iter.processed(), (address)refs_list.head());
}
)
}
const char* ReferenceProcessor::list_name(int i) {
- assert(i >= 0 && i <= _num_q * subclasses_of_ref, "Out of bounds index");
- int j = i / _num_q;
+ assert(i >= 0 && i <= _max_num_q * subclasses_of_ref, "Out of bounds index");
+ int j = i / _max_num_q;
switch (j) {
case 0: return "SoftRef";
case 1: return "WeakRef";
@@ -1372,7 +1462,7 @@
#ifndef PRODUCT
void ReferenceProcessor::clear_discovered_references() {
guarantee(!_discovering_refs, "Discovering refs?");
- for (int i = 0; i < _num_q * subclasses_of_ref; i++) {
+ for (int i = 0; i < _max_num_q * subclasses_of_ref; i++) {
oop obj = _discoveredSoftRefs[i].head();
while (obj != sentinel_ref()) {
oop next = java_lang_ref_Reference::discovered(obj);
--- a/hotspot/src/share/vm/memory/referenceProcessor.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -85,8 +85,10 @@
// The discovered ref lists themselves
- // The MT'ness degree of the queues below
+ // The active MT'ness degree of the queues below
int _num_q;
+ // The maximum MT'ness degree of the queues below
+ int _max_num_q;
// Arrays of lists of oops, one per thread
DiscoveredList* _discoveredSoftRefs;
DiscoveredList* _discoveredWeakRefs;
@@ -95,6 +97,7 @@
public:
int num_q() { return _num_q; }
+ void set_mt_degree(int v) { _num_q = v; }
DiscoveredList* discovered_soft_refs() { return _discoveredSoftRefs; }
static oop sentinel_ref() { return _sentinelRef; }
static oop* adr_sentinel_ref() { return &_sentinelRef; }
@@ -244,6 +247,7 @@
_bs(NULL),
_is_alive_non_header(NULL),
_num_q(0),
+ _max_num_q(0),
_processing_is_mt(false),
_next_id(0)
{}
@@ -312,6 +316,9 @@
void weak_oops_do(OopClosure* f); // weak roots
static void oops_do(OopClosure* f); // strong root(s)
+ // Balance each of the discovered lists.
+ void balance_all_queues();
+
// Discover a Reference object, using appropriate discovery criteria
bool discover_reference(oop obj, ReferenceType rt);
--- a/hotspot/src/share/vm/memory/sharedHeap.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/sharedHeap.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,8 @@
_perm_gen(NULL), _rem_set(NULL),
_strong_roots_parity(0),
_process_strong_tasks(new SubTasksDone(SH_PS_NumElements)),
- _workers(NULL), _n_par_threads(0)
+ _n_par_threads(0),
+ _workers(NULL)
{
if (_process_strong_tasks == NULL || !_process_strong_tasks->valid()) {
vm_exit_during_initialization("Failed necessary allocation.");
@@ -60,11 +61,13 @@
(UseConcMarkSweepGC && CMSParallelRemarkEnabled) ||
UseG1GC) &&
ParallelGCThreads > 0) {
- _workers = new WorkGang("Parallel GC Threads", ParallelGCThreads,
+ _workers = new FlexibleWorkGang("Parallel GC Threads", ParallelGCThreads,
/* are_GC_task_threads */true,
/* are_ConcurrentGC_threads */false);
if (_workers == NULL) {
vm_exit_during_initialization("Failed necessary allocation.");
+ } else {
+ _workers->initialize_workers();
}
}
}
@@ -77,8 +80,9 @@
}
void SharedHeap::set_par_threads(int t) {
+ assert(t == 0 || !UseSerialGC, "Cannot have parallel threads");
_n_par_threads = t;
- _process_strong_tasks->set_par_threads(t);
+ _process_strong_tasks->set_n_threads(t);
}
class AssertIsPermClosure: public OopClosure {
--- a/hotspot/src/share/vm/memory/sharedHeap.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/memory/sharedHeap.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,7 @@
class ObjectClosure;
class SubTasksDone;
class WorkGang;
+class FlexibleWorkGang;
class CollectorPolicy;
class KlassHandle;
@@ -74,7 +75,7 @@
int _strong_roots_parity;
// If we're doing parallel GC, use this gang of threads.
- WorkGang* _workers;
+ FlexibleWorkGang* _workers;
// Number of parallel threads currently working on GC tasks.
// O indicates use sequential code; 1 means use parallel code even with
@@ -189,7 +190,7 @@
SO_CodeCache = 0x10
};
- WorkGang* workers() const { return _workers; }
+ FlexibleWorkGang* workers() const { return _workers; }
// Sets the number of parallel threads that will be doing tasks
// (such as process strong roots) subsequently.
--- a/hotspot/src/share/vm/oops/methodOop.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/oops/methodOop.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -758,7 +758,7 @@
OrderAccess::storestore();
#ifdef SHARK
- mh->_from_interpreted_entry = code->instructions_begin();
+ mh->_from_interpreted_entry = code->insts_begin();
#else
mh->_from_compiled_entry = code->verified_entry_point();
OrderAccess::storestore();
--- a/hotspot/src/share/vm/oops/oop.inline.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/oops/oop.inline.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -173,7 +173,7 @@
address base = Universe::narrow_oop_base();
int shift = Universe::narrow_oop_shift();
oop result = (oop)(void*)((uintptr_t)base + ((uintptr_t)v << shift));
- assert(check_obj_alignment(result), "Address not aligned");
+ assert(check_obj_alignment(result), err_msg("address not aligned: " PTR_FORMAT, (void*) result));
return result;
}
--- a/hotspot/src/share/vm/opto/doCall.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/doCall.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -94,6 +94,60 @@
if (cg != NULL) return cg;
}
+ // Do MethodHandle calls.
+ // NOTE: This must happen before normal inlining logic below since
+ // MethodHandle.invoke* are native methods which obviously don't
+ // have bytecodes and so normal inlining fails.
+ if (call_method->is_method_handle_invoke()) {
+ if (jvms->method()->java_code_at_bci(jvms->bci()) != Bytecodes::_invokedynamic) {
+ GraphKit kit(jvms);
+ Node* n = kit.argument(0);
+
+ if (n->Opcode() == Op_ConP) {
+ const TypeOopPtr* oop_ptr = n->bottom_type()->is_oopptr();
+ ciObject* const_oop = oop_ptr->const_oop();
+ ciMethodHandle* method_handle = const_oop->as_method_handle();
+
+ // Set the actually called method to have access to the class
+ // and signature in the MethodHandleCompiler.
+ method_handle->set_callee(call_method);
+
+ // Get an adapter for the MethodHandle.
+ ciMethod* target_method = method_handle->get_method_handle_adapter();
+
+ CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor);
+ if (hit_cg != NULL && hit_cg->is_inline())
+ return hit_cg;
+ }
+
+ return CallGenerator::for_direct_call(call_method);
+ }
+ else {
+ // Get the MethodHandle from the CallSite.
+ ciMethod* caller_method = jvms->method();
+ ciBytecodeStream str(caller_method);
+ str.force_bci(jvms->bci()); // Set the stream to the invokedynamic bci.
+ ciCallSite* call_site = str.get_call_site();
+ ciMethodHandle* method_handle = call_site->get_target();
+
+ // Set the actually called method to have access to the class
+ // and signature in the MethodHandleCompiler.
+ method_handle->set_callee(call_method);
+
+ // Get an adapter for the MethodHandle.
+ ciMethod* target_method = method_handle->get_invokedynamic_adapter();
+
+ CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor);
+ if (hit_cg != NULL && hit_cg->is_inline()) {
+ CallGenerator* miss_cg = CallGenerator::for_dynamic_call(call_method);
+ return CallGenerator::for_predicted_dynamic_call(method_handle, miss_cg, hit_cg, prof_factor);
+ }
+
+ // If something failed, generate a normal dynamic call.
+ return CallGenerator::for_dynamic_call(call_method);
+ }
+ }
+
// Do not inline strict fp into non-strict code, or the reverse
bool caller_method_is_strict = jvms->method()->is_strict();
if( caller_method_is_strict ^ call_method->is_strict() ) {
@@ -216,57 +270,6 @@
}
}
- // Do MethodHandle calls.
- if (call_method->is_method_handle_invoke()) {
- if (jvms->method()->java_code_at_bci(jvms->bci()) != Bytecodes::_invokedynamic) {
- GraphKit kit(jvms);
- Node* n = kit.argument(0);
-
- if (n->Opcode() == Op_ConP) {
- const TypeOopPtr* oop_ptr = n->bottom_type()->is_oopptr();
- ciObject* const_oop = oop_ptr->const_oop();
- ciMethodHandle* method_handle = const_oop->as_method_handle();
-
- // Set the actually called method to have access to the class
- // and signature in the MethodHandleCompiler.
- method_handle->set_callee(call_method);
-
- // Get an adapter for the MethodHandle.
- ciMethod* target_method = method_handle->get_method_handle_adapter();
-
- CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor);
- if (hit_cg != NULL && hit_cg->is_inline())
- return hit_cg;
- }
-
- return CallGenerator::for_direct_call(call_method);
- }
- else {
- // Get the MethodHandle from the CallSite.
- ciMethod* caller_method = jvms->method();
- ciBytecodeStream str(caller_method);
- str.force_bci(jvms->bci()); // Set the stream to the invokedynamic bci.
- ciCallSite* call_site = str.get_call_site();
- ciMethodHandle* method_handle = call_site->get_target();
-
- // Set the actually called method to have access to the class
- // and signature in the MethodHandleCompiler.
- method_handle->set_callee(call_method);
-
- // Get an adapter for the MethodHandle.
- ciMethod* target_method = method_handle->get_invokedynamic_adapter();
-
- CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor);
- if (hit_cg != NULL && hit_cg->is_inline()) {
- CallGenerator* miss_cg = CallGenerator::for_dynamic_call(call_method);
- return CallGenerator::for_predicted_dynamic_call(method_handle, miss_cg, hit_cg, prof_factor);
- }
-
- // If something failed, generate a normal dynamic call.
- return CallGenerator::for_dynamic_call(call_method);
- }
- }
-
// There was no special inlining tactic, or it bailed out.
// Use a more generic tactic, like a simple call.
if (call_is_virtual) {
--- a/hotspot/src/share/vm/opto/escape.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/escape.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -706,14 +706,15 @@
//
// The next methods are derived from methods in MemNode.
//
-static Node *step_through_mergemem(MergeMemNode *mmem, int alias_idx, const TypeOopPtr *tinst) {
+static Node *step_through_mergemem(MergeMemNode *mmem, int alias_idx, const TypeOopPtr *toop) {
Node *mem = mmem;
- // TypeInstPtr::NOTNULL+any is an OOP with unknown offset - generally
+ // TypeOopPtr::NOTNULL+any is an OOP with unknown offset - generally
// means an array I have not precisely typed yet. Do not do any
// alias stuff with it any time soon.
- if( tinst->base() != Type::AnyPtr &&
- !(tinst->klass()->is_java_lang_Object() &&
- tinst->offset() == Type::OffsetBot) ) {
+ if( toop->base() != Type::AnyPtr &&
+ !(toop->klass() != NULL &&
+ toop->klass()->is_java_lang_Object() &&
+ toop->offset() == Type::OffsetBot) ) {
mem = mmem->memory_at(alias_idx);
// Update input if it is progress over what we have now
}
@@ -803,8 +804,8 @@
if (orig_mem == NULL)
return orig_mem;
Compile* C = phase->C;
- const TypeOopPtr *tinst = C->get_adr_type(alias_idx)->isa_oopptr();
- bool is_instance = (tinst != NULL) && tinst->is_known_instance();
+ const TypeOopPtr *toop = C->get_adr_type(alias_idx)->isa_oopptr();
+ bool is_instance = (toop != NULL) && toop->is_known_instance();
Node *start_mem = C->start()->proj_out(TypeFunc::Memory);
Node *prev = NULL;
Node *result = orig_mem;
@@ -827,18 +828,18 @@
// skip over a call which does not affect this memory slice
if (result->is_Proj() && result->as_Proj()->_con == TypeFunc::Memory) {
Node *proj_in = result->in(0);
- if (proj_in->is_Allocate() && proj_in->_idx == (uint)tinst->instance_id()) {
+ if (proj_in->is_Allocate() && proj_in->_idx == (uint)toop->instance_id()) {
break; // hit one of our sentinels
} else if (proj_in->is_Call()) {
CallNode *call = proj_in->as_Call();
- if (!call->may_modify(tinst, phase)) {
+ if (!call->may_modify(toop, phase)) {
result = call->in(TypeFunc::Memory);
}
} else if (proj_in->is_Initialize()) {
AllocateNode* alloc = proj_in->as_Initialize()->allocation();
// Stop if this is the initialization for the object instance which
// which contains this memory slice, otherwise skip over it.
- if (alloc == NULL || alloc->_idx != (uint)tinst->instance_id()) {
+ if (alloc == NULL || alloc->_idx != (uint)toop->instance_id()) {
result = proj_in->in(TypeFunc::Memory);
}
} else if (proj_in->is_MemBar()) {
@@ -846,7 +847,7 @@
}
} else if (result->is_MergeMem()) {
MergeMemNode *mmem = result->as_MergeMem();
- result = step_through_mergemem(mmem, alias_idx, tinst);
+ result = step_through_mergemem(mmem, alias_idx, toop);
if (result == mmem->base_memory()) {
// Didn't find instance memory, search through general slice recursively.
result = mmem->memory_at(C->get_general_index(alias_idx));
@@ -866,7 +867,7 @@
break;
}
} else if (result->is_ClearArray()) {
- if (!ClearArrayNode::step_through(&result, (uint)tinst->instance_id(), phase)) {
+ if (!ClearArrayNode::step_through(&result, (uint)toop->instance_id(), phase)) {
// Can not bypass initialization of the instance
// we are looking for.
break;
--- a/hotspot/src/share/vm/opto/library_call.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/library_call.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -4761,7 +4761,7 @@
Node* cv = generate_checkcast_arraycopy(adr_type,
dest_elem_klass,
src, src_offset, dest, dest_offset,
- copy_length);
+ ConvI2X(copy_length));
if (cv == NULL) cv = intcon(-1); // failure (no stub available)
checked_control = control();
checked_i_o = i_o();
@@ -5206,7 +5206,7 @@
int sco_offset = Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc);
Node* p3 = basic_plus_adr(dest_elem_klass, sco_offset);
Node* n3 = new(C, 3) LoadINode(NULL, memory(p3), p3, _gvn.type(p3)->is_ptr());
- Node* check_offset = _gvn.transform(n3);
+ Node* check_offset = ConvI2X(_gvn.transform(n3));
Node* check_value = dest_elem_klass;
Node* src_start = array_element_address(src, src_offset, T_OBJECT);
--- a/hotspot/src/share/vm/opto/loopTransform.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/loopTransform.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -2447,6 +2447,13 @@
msg_node = store->in(MemNode::Address);
}
+ if (msg == NULL &&
+ (!store->in(MemNode::Memory)->is_Phi() ||
+ store->in(MemNode::Memory)->in(LoopNode::LoopBackControl) != store)) {
+ msg = "store memory isn't proper phi";
+ msg_node = store->in(MemNode::Memory);
+ }
+
// Make sure there is an appropriate fill routine
BasicType t = store->as_Mem()->memory_type();
const char* fill_name;
@@ -2570,7 +2577,7 @@
Node* n = lpt->_body.at(i);
// These values can be replaced with other nodes if they are used
// outside the loop.
- if (n == store || n == head->loopexit() || n == head->incr()) continue;
+ if (n == store || n == head->loopexit() || n == head->incr() || n == store->in(MemNode::Memory)) continue;
for (SimpleDUIterator iter(n); iter.has_next(); iter.next()) {
Node* use = iter.get();
if (!lpt->_body.contains(use)) {
@@ -2677,7 +2684,14 @@
fill_name, TypeAryPtr::get_array_body_type(t));
call->init_req(TypeFunc::Parms+0, from);
call->init_req(TypeFunc::Parms+1, store_value);
+#ifdef _LP64
+ len = new (C, 2) ConvI2LNode(len);
+ _igvn.register_new_node_with_optimizer(len);
+#endif
call->init_req(TypeFunc::Parms+2, len);
+#ifdef _LP64
+ call->init_req(TypeFunc::Parms+3, C->top());
+#endif
call->init_req( TypeFunc::Control, head->init_control());
call->init_req( TypeFunc::I_O , C->top() ) ; // does no i/o
call->init_req( TypeFunc::Memory , mem_phi->in(LoopNode::EntryControl) );
@@ -2715,6 +2729,10 @@
// Redirect the old control and memory edges that are outside the loop.
Node* exit = head->loopexit()->proj_out(0);
+ // Sometimes the memory phi of the head is used as the outgoing
+ // state of the loop. It's safe in this case to replace it with the
+ // result_mem.
+ _igvn.replace_node(store->in(MemNode::Memory), result_mem);
_igvn.replace_node(exit, result_ctrl);
_igvn.replace_node(store, result_mem);
// Any uses the increment outside of the loop become the loop limit.
--- a/hotspot/src/share/vm/opto/memnode.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/memnode.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -193,14 +193,15 @@
}
}
#endif
- // TypeInstPtr::NOTNULL+any is an OOP with unknown offset - generally
+ // TypeOopPtr::NOTNULL+any is an OOP with unknown offset - generally
// means an array I have not precisely typed yet. Do not do any
// alias stuff with it any time soon.
- const TypeOopPtr *tinst = tp->isa_oopptr();
+ const TypeOopPtr *toop = tp->isa_oopptr();
if( tp->base() != Type::AnyPtr &&
- !(tinst &&
- tinst->klass()->is_java_lang_Object() &&
- tinst->offset() == Type::OffsetBot) ) {
+ !(toop &&
+ toop->klass() != NULL &&
+ toop->klass()->is_java_lang_Object() &&
+ toop->offset() == Type::OffsetBot) ) {
// compress paths and change unreachable cycles to TOP
// If not, we can update the input infinitely along a MergeMem cycle
// Equivalent code in PhiNode::Ideal
@@ -255,7 +256,8 @@
if( t_adr == Type::TOP ) return NodeSentinel; // caller will return NULL
if( can_reshape && igvn != NULL &&
- (igvn->_worklist.member(address) || phase->type(address) != adr_type()) ) {
+ (igvn->_worklist.member(address) ||
+ igvn->_worklist.size() > 0 && (phase->type(address) != adr_type())) ) {
// The address's base and type may change when the address is processed.
// Delay this mem node transformation until the address is processed.
phase->is_IterGVN()->_worklist.push(this);
--- a/hotspot/src/share/vm/opto/phaseX.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/phaseX.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -844,10 +844,33 @@
}
#endif
+#ifdef ASSERT
+ Node* prev = NULL;
+ uint rep_cnt = 0;
+#endif
+ uint loop_count = 0;
+
// Pull from worklist; transform node;
// If node has changed: update edge info and put uses on worklist.
while( _worklist.size() ) {
Node *n = _worklist.pop();
+ if (++loop_count >= K * C->unique()) {
+ debug_only(n->dump(4);)
+ assert(false, "infinite loop in PhaseIterGVN::optimize");
+ C->record_method_not_compilable("infinite loop in PhaseIterGVN::optimize");
+ return;
+ }
+#ifdef ASSERT
+ if (n == prev) {
+ if (++rep_cnt > 3) {
+ n->dump(4);
+ assert(false, "loop in Ideal transformation");
+ }
+ } else {
+ rep_cnt = 0;
+ }
+ prev = n;
+#endif
if (TraceIterativeGVN && Verbose) {
tty->print(" Pop ");
NOT_PRODUCT( n->dump(); )
--- a/hotspot/src/share/vm/opto/runtime.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/runtime.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -646,12 +646,14 @@
const TypeFunc* OptoRuntime::array_fill_Type() {
- // create input type (domain)
- const Type** fields = TypeTuple::fields(3);
- fields[TypeFunc::Parms+0] = TypePtr::NOTNULL;
- fields[TypeFunc::Parms+1] = TypeInt::INT;
- fields[TypeFunc::Parms+2] = TypeInt::INT;
- const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms + 3, fields);
+ // create input type (domain): pointer, int, size_t
+ const Type** fields = TypeTuple::fields(3 LP64_ONLY( + 1));
+ int argp = TypeFunc::Parms;
+ fields[argp++] = TypePtr::NOTNULL;
+ fields[argp++] = TypeInt::INT;
+ fields[argp++] = TypeX_X; // size in whatevers (size_t)
+ LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length
+ const TypeTuple *domain = TypeTuple::make(argp, fields);
// create result type
fields = TypeTuple::fields(1);
--- a/hotspot/src/share/vm/opto/stringopts.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/opto/stringopts.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -75,8 +75,7 @@
for (SimpleDUIterator i(endprojs.resproj); i.has_next(); i.next()) {
CallStaticJavaNode *use = i.get()->isa_CallStaticJava();
if (use != NULL && use->method() != NULL &&
- use->method()->holder() == C->env()->String_klass() &&
- use->method()->name() == ciSymbol::object_initializer_name() &&
+ use->method()->intrinsic_id() == vmIntrinsics::_String_String &&
use->in(TypeFunc::Parms + 1) == endprojs.resproj) {
// Found useless new String(sb.toString()) so reuse the newly allocated String
// when creating the result instead of allocating a new one.
@@ -394,7 +393,9 @@
Node* constructor = NULL;
for (SimpleDUIterator i(result); i.has_next(); i.next()) {
CallStaticJavaNode *use = i.get()->isa_CallStaticJava();
- if (use != NULL && use->method() != NULL &&
+ if (use != NULL &&
+ use->method() != NULL &&
+ !use->method()->is_static() &&
use->method()->name() == ciSymbol::object_initializer_name() &&
use->method()->holder() == m->holder()) {
// Matched the constructor.
@@ -444,7 +445,8 @@
}
} else if (cnode->method() == NULL) {
break;
- } else if (cnode->method()->holder() == m->holder() &&
+ } else if (!cnode->method()->is_static() &&
+ cnode->method()->holder() == m->holder() &&
cnode->method()->name() == ciSymbol::append_name() &&
(cnode->method()->signature()->as_symbol() == string_sig ||
cnode->method()->signature()->as_symbol() == char_sig ||
@@ -459,8 +461,7 @@
if (arg->is_Proj() && arg->in(0)->is_CallStaticJava()) {
CallStaticJavaNode* csj = arg->in(0)->as_CallStaticJava();
if (csj->method() != NULL &&
- csj->method()->holder() == C->env()->Integer_klass() &&
- csj->method()->name() == ciSymbol::toString_name()) {
+ csj->method()->intrinsic_id() == vmIntrinsics::_Integer_toString) {
sc->add_control(csj);
sc->push_int(csj->in(TypeFunc::Parms));
continue;
@@ -537,9 +538,8 @@
if (arg->is_Proj() && arg->in(0)->is_CallStaticJava()) {
CallStaticJavaNode* csj = arg->in(0)->as_CallStaticJava();
if (csj->method() != NULL &&
- (csj->method()->holder() == C->env()->StringBuffer_klass() ||
- csj->method()->holder() == C->env()->StringBuilder_klass()) &&
- csj->method()->name() == ciSymbol::toString_name()) {
+ (csj->method()->intrinsic_id() == vmIntrinsics::_StringBuilder_toString ||
+ csj->method()->intrinsic_id() == vmIntrinsics::_StringBuffer_toString)) {
for (int o = 0; o < concats.length(); o++) {
if (c == o) continue;
StringConcat* other = concats.at(o);
--- a/hotspot/src/share/vm/prims/methodHandles.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/prims/methodHandles.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1568,7 +1568,7 @@
if (ptype != T_INT) {
int value_offset = java_lang_boxing_object::value_offset_in_bytes(T_INT);
jint value = argument->int_field(value_offset);
- int vminfo = adapter_subword_vminfo(ptype);
+ int vminfo = adapter_unbox_subword_vminfo(ptype);
jint subword = truncate_subword_from_vminfo(value, vminfo);
if (value != subword) {
err = "bound subword value does not fit into the subword type";
@@ -2018,12 +2018,12 @@
assert(src == T_INT || is_subword_type(src), "source is not float");
// Subword-related cases are int -> {boolean,byte,char,short}.
ek_opt = _adapter_opt_i2i;
- vminfo = adapter_subword_vminfo(dest);
+ vminfo = adapter_prim_to_prim_subword_vminfo(dest);
break;
case 2 *4+ 1:
if (src == T_LONG && (dest == T_INT || is_subword_type(dest))) {
ek_opt = _adapter_opt_l2i;
- vminfo = adapter_subword_vminfo(dest);
+ vminfo = adapter_prim_to_prim_subword_vminfo(dest);
} else if (src == T_DOUBLE && dest == T_FLOAT) {
ek_opt = _adapter_opt_d2f;
} else {
@@ -2051,7 +2051,7 @@
switch (type2size[dest]) {
case 1:
ek_opt = _adapter_opt_unboxi;
- vminfo = adapter_subword_vminfo(dest);
+ vminfo = adapter_unbox_subword_vminfo(dest);
break;
case 2:
ek_opt = _adapter_opt_unboxl;
--- a/hotspot/src/share/vm/prims/methodHandles.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/prims/methodHandles.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -226,11 +226,20 @@
}
enum { CONV_VMINFO_SIGN_FLAG = 0x80 };
- static int adapter_subword_vminfo(BasicType dest) {
- if (dest == T_BOOLEAN) return (BitsPerInt - 1);
- if (dest == T_CHAR) return (BitsPerInt - 16);
- if (dest == T_BYTE) return (BitsPerInt - 8) | CONV_VMINFO_SIGN_FLAG;
- if (dest == T_SHORT) return (BitsPerInt - 16) | CONV_VMINFO_SIGN_FLAG;
+ // Shift values for prim-to-prim conversions.
+ static int adapter_prim_to_prim_subword_vminfo(BasicType dest) {
+ if (dest == T_BOOLEAN) return (BitsPerInt - 1); // boolean is 1 bit
+ if (dest == T_CHAR) return (BitsPerInt - BitsPerShort);
+ if (dest == T_BYTE) return (BitsPerInt - BitsPerByte ) | CONV_VMINFO_SIGN_FLAG;
+ if (dest == T_SHORT) return (BitsPerInt - BitsPerShort) | CONV_VMINFO_SIGN_FLAG;
+ return 0; // case T_INT
+ }
+ // Shift values for unboxing a primitive.
+ static int adapter_unbox_subword_vminfo(BasicType dest) {
+ if (dest == T_BOOLEAN) return (BitsPerInt - BitsPerByte ); // implemented as 1 byte
+ if (dest == T_CHAR) return (BitsPerInt - BitsPerShort);
+ if (dest == T_BYTE) return (BitsPerInt - BitsPerByte ) | CONV_VMINFO_SIGN_FLAG;
+ if (dest == T_SHORT) return (BitsPerInt - BitsPerShort) | CONV_VMINFO_SIGN_FLAG;
return 0; // case T_INT
}
// Here is the transformation the i2i adapter must perform:
--- a/hotspot/src/share/vm/runtime/arguments.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1261,12 +1261,30 @@
// Object alignment.
if (!is_power_of_2(ObjectAlignmentInBytes)) {
jio_fprintf(defaultStream::error_stream(),
- "error: ObjectAlignmentInBytes=%d must be power of 2", (int)ObjectAlignmentInBytes);
+ "error: ObjectAlignmentInBytes=%d must be power of 2\n",
+ (int)ObjectAlignmentInBytes);
return false;
}
if ((int)ObjectAlignmentInBytes < BytesPerLong) {
jio_fprintf(defaultStream::error_stream(),
- "error: ObjectAlignmentInBytes=%d must be greater or equal %d", (int)ObjectAlignmentInBytes, BytesPerLong);
+ "error: ObjectAlignmentInBytes=%d must be greater or equal %d\n",
+ (int)ObjectAlignmentInBytes, BytesPerLong);
+ return false;
+ }
+ // It does not make sense to have big object alignment
+ // since a space lost due to alignment will be greater
+ // then a saved space from compressed oops.
+ if ((int)ObjectAlignmentInBytes > 256) {
+ jio_fprintf(defaultStream::error_stream(),
+ "error: ObjectAlignmentInBytes=%d must not be greater then 256\n",
+ (int)ObjectAlignmentInBytes);
+ return false;
+ }
+ // In case page size is very small.
+ if ((int)ObjectAlignmentInBytes >= os::vm_page_size()) {
+ jio_fprintf(defaultStream::error_stream(),
+ "error: ObjectAlignmentInBytes=%d must be less then page size %d\n",
+ (int)ObjectAlignmentInBytes, os::vm_page_size());
return false;
}
return true;
--- a/hotspot/src/share/vm/runtime/compilationPolicy.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/compilationPolicy.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -129,16 +129,31 @@
}
}
+// Note: this policy is used ONLY if TieredCompilation is off.
+// compiler_count() behaves the following way:
+// - with TIERED build (with both COMPILER1 and COMPILER2 defined) it should return
+// zero for the c1 compilation levels, hence the particular ordering of the
+// statements.
+// - the same should happen when COMPILER2 is defined and COMPILER1 is not
+// (server build without TIERED defined).
+// - if only COMPILER1 is defined (client build), zero should be returned for
+// the c2 level.
+// - if neither is defined - always return zero.
int NonTieredCompPolicy::compiler_count(CompLevel comp_level) {
+ assert(!TieredCompilation, "This policy should not be used with TieredCompilation");
+#ifdef COMPILER2
+ if (is_c2_compile(comp_level)) {
+ return _compiler_count;
+ } else {
+ return 0;
+ }
+#endif
+
#ifdef COMPILER1
if (is_c1_compile(comp_level)) {
return _compiler_count;
- }
-#endif
-
-#ifdef COMPILER2
- if (is_c2_compile(comp_level)) {
- return _compiler_count;
+ } else {
+ return 0;
}
#endif
--- a/hotspot/src/share/vm/runtime/deoptimization.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -124,6 +124,9 @@
RegisterMap dummy_map(thread, false);
// Now get the deoptee with a valid map
frame deoptee = stub_frame.sender(&map);
+ // Set the deoptee nmethod
+ assert(thread->deopt_nmethod() == NULL, "Pending deopt!");
+ thread->set_deopt_nmethod(deoptee.cb()->as_nmethod_or_null());
// Create a growable array of VFrames where each VFrame represents an inlined
// Java frame. This storage is allocated with the usual system arena.
@@ -445,6 +448,7 @@
delete thread->deopt_mark();
thread->set_deopt_mark(NULL);
+ thread->set_deopt_nmethod(NULL);
if (JvmtiExport::can_pop_frame()) {
--- a/hotspot/src/share/vm/runtime/globals.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/globals.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -273,6 +273,10 @@
// UnlockExperimentalVMOptions flag, which allows the control and
// modification of the experimental flags.
//
+// Nota bene: neither diagnostic nor experimental options should be used casually,
+// and they are not supported on production loads, except under explicit
+// direction from support engineers.
+//
// manageable flags are writeable external product flags.
// They are dynamically writeable through the JDK management interface
// (com.sun.management.HotSpotDiagnosticMXBean API) and also through JConsole.
@@ -634,6 +638,9 @@
develop(bool, ZapJNIHandleArea, trueInDebug, \
"Zap freed JNI handle space with 0xFEFEFEFE") \
\
+ notproduct(bool, ZapStackSegments, trueInDebug, \
+ "Zap allocated/freed Stack segments with 0xFADFADED") \
+ \
develop(bool, ZapUnusedHeapArea, trueInDebug, \
"Zap unused heap space with 0xBAADBABE") \
\
@@ -1799,17 +1806,17 @@
develop(uintx, PromotionFailureALotInterval, 5, \
"Total collections between promotion failures alot") \
\
- develop(intx, WorkStealingSleepMillis, 1, \
+ experimental(intx, WorkStealingSleepMillis, 1, \
"Sleep time when sleep is used for yields") \
\
- develop(uintx, WorkStealingYieldsBeforeSleep, 1000, \
+ experimental(uintx, WorkStealingYieldsBeforeSleep, 1000, \
"Number of yields before a sleep is done during workstealing") \
\
- develop(uintx, WorkStealingHardSpins, 4096, \
+ experimental(uintx, WorkStealingHardSpins, 4096, \
"Number of iterations in a spin loop between checks on " \
"time out of hard spin") \
\
- develop(uintx, WorkStealingSpinToYieldRatio, 10, \
+ experimental(uintx, WorkStealingSpinToYieldRatio, 10, \
"Ratio of hard spins to calls to yield") \
\
product(uintx, PreserveMarkStackSize, 1024, \
--- a/hotspot/src/share/vm/runtime/thread.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/thread.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1183,6 +1183,7 @@
set_vframe_array_last(NULL);
set_deferred_locals(NULL);
set_deopt_mark(NULL);
+ set_deopt_nmethod(NULL);
clear_must_deopt_id();
set_monitor_chunks(NULL);
set_next(NULL);
@@ -1644,7 +1645,29 @@
satb_mark_queue().flush();
dirty_card_queue().flush();
}
-#endif
+
+void JavaThread::initialize_queues() {
+ assert(!SafepointSynchronize::is_at_safepoint(),
+ "we should not be at a safepoint");
+
+ ObjPtrQueue& satb_queue = satb_mark_queue();
+ SATBMarkQueueSet& satb_queue_set = satb_mark_queue_set();
+ // The SATB queue should have been constructed with its active
+ // field set to false.
+ assert(!satb_queue.is_active(), "SATB queue should not be active");
+ assert(satb_queue.is_empty(), "SATB queue should be empty");
+ // If we are creating the thread during a marking cycle, we should
+ // set the active field of the SATB queue to true.
+ if (satb_queue_set.is_active()) {
+ satb_queue.set_active(true);
+ }
+
+ DirtyCardQueue& dirty_queue = dirty_card_queue();
+ // The dirty card queue should have been constructed with its
+ // active field set to true.
+ assert(dirty_queue.is_active(), "dirty card queue should be active");
+}
+#endif // !SERIALGC
void JavaThread::cleanup_failed_attach_current_thread() {
if (get_thread_profiler() != NULL) {
@@ -3626,6 +3649,10 @@
void Threads::add(JavaThread* p, bool force_daemon) {
// The threads lock must be owned at this point
assert_locked_or_safepoint(Threads_lock);
+
+ // See the comment for this method in thread.hpp for its purpose and
+ // why it is called here.
+ p->initialize_queues();
p->set_next(_thread_list);
_thread_list = p;
_number_of_threads++;
--- a/hotspot/src/share/vm/runtime/thread.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/thread.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -680,7 +680,7 @@
intptr_t* _must_deopt_id; // id of frame that needs to be deopted once we
// transition out of native
-
+ nmethod* _deopt_nmethod; // nmethod that is currently being deoptimized
vframeArray* _vframe_array_head; // Holds the heap of the active vframeArrays
vframeArray* _vframe_array_last; // Holds last vFrameArray we popped
// Because deoptimization is lazy we must save jvmti requests to set locals
@@ -1098,6 +1098,9 @@
void set_must_deopt_id(intptr_t* id) { _must_deopt_id = id; }
void clear_must_deopt_id() { _must_deopt_id = NULL; }
+ void set_deopt_nmethod(nmethod* nm) { _deopt_nmethod = nm; }
+ nmethod* deopt_nmethod() { return _deopt_nmethod; }
+
methodOop callee_target() const { return _callee_target; }
void set_callee_target (methodOop x) { _callee_target = x; }
@@ -1487,6 +1490,29 @@
}
#endif // !SERIALGC
+ // This method initializes the SATB and dirty card queues before a
+ // JavaThread is added to the Java thread list. Right now, we don't
+ // have to do anything to the dirty card queue (it should have been
+ // activated when the thread was created), but we have to activate
+ // the SATB queue if the thread is created while a marking cycle is
+ // in progress. The activation / de-activation of the SATB queues at
+ // the beginning / end of a marking cycle is done during safepoints
+ // so we have to make sure this method is called outside one to be
+ // able to safely read the active field of the SATB queue set. Right
+ // now, it is called just before the thread is added to the Java
+ // thread list in the Threads::add() method. That method is holding
+ // the Threads_lock which ensures we are outside a safepoint. We
+ // cannot do the obvious and set the active field of the SATB queue
+ // when the thread is created given that, in some cases, safepoints
+ // might happen between the JavaThread constructor being called and the
+ // thread being added to the Java thread list (an example of this is
+ // when the structure for the DestroyJavaVM thread is created).
+#ifndef SERIALGC
+ void initialize_queues();
+#else // !SERIALGC
+ void initialize_queues() { }
+#endif // !SERIALGC
+
// Machine dependent stuff
#include "incls/_thread_pd.hpp.incl"
--- a/hotspot/src/share/vm/runtime/vframeArray.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/runtime/vframeArray.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -179,9 +179,11 @@
// in which case bcp should point to the monitorenter since it is within the exception's range.
assert(*bcp != Bytecodes::_monitorenter || is_top_frame, "a _monitorenter must be a top frame");
- // TIERED Must know the compiler of the deoptee QQQ
- COMPILER2_PRESENT(guarantee(*bcp != Bytecodes::_monitorenter || exec_mode != Deoptimization::Unpack_exception,
- "shouldn't get exception during monitorenter");)
+ assert(thread->deopt_nmethod() != NULL, "nmethod should be known");
+ guarantee(!(thread->deopt_nmethod()->is_compiled_by_c2() &&
+ *bcp == Bytecodes::_monitorenter &&
+ exec_mode == Deoptimization::Unpack_exception),
+ "shouldn't get exception during monitorenter");
int popframe_preserved_args_size_in_bytes = 0;
int popframe_preserved_args_size_in_words = 0;
--- a/hotspot/src/share/vm/shark/sharkCompiler.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/shark/sharkCompiler.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -103,8 +103,7 @@
// Global access
public:
static SharkCompiler* compiler() {
- AbstractCompiler *compiler =
- CompileBroker::compiler(CompLevel_fast_compile);
+ AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_simple);
assert(compiler->is_shark() && compiler->is_initialized(), "should be");
return (SharkCompiler *) compiler;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/share/vm/utilities/stack.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,204 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+// Class Stack (below) grows and shrinks by linking together "segments" which
+// are allocated on demand. Segments are arrays of the element type (E) plus an
+// extra pointer-sized field to store the segment link. Recently emptied
+// segments are kept in a cache and reused.
+//
+// Notes/caveats:
+//
+// The size of an element must either evenly divide the size of a pointer or be
+// a multiple of the size of a pointer.
+//
+// Destructors are not called for elements popped off the stack, so element
+// types which rely on destructors for things like reference counting will not
+// work properly.
+//
+// Class Stack allocates segments from the C heap. However, two protected
+// virtual methods are used to alloc/free memory which subclasses can override:
+//
+// virtual void* alloc(size_t bytes);
+// virtual void free(void* addr, size_t bytes);
+//
+// The alloc() method must return storage aligned for any use. The
+// implementation in class Stack assumes that alloc() will terminate the process
+// if the allocation fails.
+
+template <class E> class StackIterator;
+
+// StackBase holds common data/methods that don't depend on the element type,
+// factored out to reduce template code duplication.
+class StackBase
+{
+public:
+ size_t segment_size() const { return _seg_size; } // Elements per segment.
+ size_t max_size() const { return _max_size; } // Max elements allowed.
+ size_t max_cache_size() const { return _max_cache_size; } // Max segments
+ // allowed in cache.
+
+ size_t cache_size() const { return _cache_size; } // Segments in the cache.
+
+protected:
+ // The ctor arguments correspond to the like-named functions above.
+ // segment_size: number of items per segment
+ // max_cache_size: maxmium number of *segments* to cache
+ // max_size: maximum number of items allowed, rounded to a multiple of
+ // the segment size (0 == unlimited)
+ inline StackBase(size_t segment_size, size_t max_cache_size, size_t max_size);
+
+ // Round max_size to a multiple of the segment size. Treat 0 as unlimited.
+ static inline size_t adjust_max_size(size_t max_size, size_t seg_size);
+
+protected:
+ const size_t _seg_size; // Number of items per segment.
+ const size_t _max_size; // Maximum number of items allowed in the stack.
+ const size_t _max_cache_size; // Maximum number of segments to cache.
+ size_t _cur_seg_size; // Number of items in the current segment.
+ size_t _full_seg_size; // Number of items in already-filled segments.
+ size_t _cache_size; // Number of segments in the cache.
+};
+
+#ifdef __GNUC__
+#define inline
+#endif // __GNUC__
+
+template <class E>
+class Stack: public StackBase
+{
+public:
+ friend class StackIterator<E>;
+
+ // segment_size: number of items per segment
+ // max_cache_size: maxmium number of *segments* to cache
+ // max_size: maximum number of items allowed, rounded to a multiple of
+ // the segment size (0 == unlimited)
+ inline Stack(size_t segment_size = default_segment_size(),
+ size_t max_cache_size = 4, size_t max_size = 0);
+ inline ~Stack() { clear(true); }
+
+ inline bool is_empty() const { return _cur_seg == NULL; }
+ inline bool is_full() const { return _full_seg_size >= max_size(); }
+
+ // Performance sensitive code should use is_empty() instead of size() == 0 and
+ // is_full() instead of size() == max_size(). Using a conditional here allows
+ // just one var to be updated when pushing/popping elements instead of two;
+ // _full_seg_size is updated only when pushing/popping segments.
+ inline size_t size() const {
+ return is_empty() ? 0 : _full_seg_size + _cur_seg_size;
+ }
+
+ inline void push(E elem);
+ inline E pop();
+
+ // Clear everything from the stack, releasing the associated memory. If
+ // clear_cache is true, also release any cached segments.
+ void clear(bool clear_cache = false);
+
+ static inline size_t default_segment_size();
+
+protected:
+ // Each segment includes space for _seg_size elements followed by a link
+ // (pointer) to the previous segment; the space is allocated as a single block
+ // of size segment_bytes(). _seg_size is rounded up if necessary so the link
+ // is properly aligned. The C struct for the layout would be:
+ //
+ // struct segment {
+ // E elements[_seg_size];
+ // E* link;
+ // };
+
+ // Round up seg_size to keep the link field aligned.
+ static inline size_t adjust_segment_size(size_t seg_size);
+
+ // Methods for allocation size and getting/setting the link.
+ inline size_t link_offset() const; // Byte offset of link field.
+ inline size_t segment_bytes() const; // Segment size in bytes.
+ inline E** link_addr(E* seg) const; // Address of the link field.
+ inline E* get_link(E* seg) const; // Extract the link from seg.
+ inline E* set_link(E* new_seg, E* old_seg); // new_seg.link = old_seg.
+
+ virtual E* alloc(size_t bytes);
+ virtual void free(E* addr, size_t bytes);
+
+ void push_segment();
+ void pop_segment();
+
+ void free_segments(E* seg); // Free all segments in the list.
+ inline void reset(bool reset_cache); // Reset all data fields.
+
+ DEBUG_ONLY(void verify(bool at_empty_transition) const;)
+ DEBUG_ONLY(void zap_segment(E* seg, bool zap_link_field) const;)
+
+private:
+ E* _cur_seg; // Current segment.
+ E* _cache; // Segment cache to avoid ping-ponging.
+};
+
+template <class E> class ResourceStack: public Stack<E>, public ResourceObj
+{
+public:
+ // If this class becomes widely used, it may make sense to save the Thread
+ // and use it when allocating segments.
+ ResourceStack(size_t segment_size = Stack<E>::default_segment_size()):
+ Stack<E>(segment_size, max_uintx)
+ { }
+
+ // Set the segment pointers to NULL so the parent dtor does not free them;
+ // that must be done by the ResourceMark code.
+ ~ResourceStack() { Stack<E>::reset(true); }
+
+protected:
+ virtual E* alloc(size_t bytes);
+ virtual void free(E* addr, size_t bytes);
+
+private:
+ void clear(bool clear_cache = false);
+};
+
+template <class E>
+class StackIterator: public StackObj
+{
+public:
+ StackIterator(Stack<E>& stack): _stack(stack) { sync(); }
+
+ Stack<E>& stack() const { return _stack; }
+
+ bool is_empty() const { return _cur_seg == NULL; }
+
+ E next() { return *next_addr(); }
+ E* next_addr();
+
+ void sync(); // Sync the iterator's state to the stack's current state.
+
+private:
+ Stack<E>& _stack;
+ size_t _cur_seg_size;
+ E* _cur_seg;
+ size_t _full_seg_size;
+};
+
+#ifdef __GNUC__
+#undef inline
+#endif // __GNUC__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/share/vm/utilities/stack.inline.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,273 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+StackBase::StackBase(size_t segment_size, size_t max_cache_size,
+ size_t max_size):
+ _seg_size(segment_size),
+ _max_cache_size(max_cache_size),
+ _max_size(adjust_max_size(max_size, segment_size))
+{
+ assert(_max_size % _seg_size == 0, "not a multiple");
+}
+
+size_t StackBase::adjust_max_size(size_t max_size, size_t seg_size)
+{
+ assert(seg_size > 0, "cannot be 0");
+ assert(max_size >= seg_size || max_size == 0, "max_size too small");
+ const size_t limit = max_uintx - (seg_size - 1);
+ if (max_size == 0 || max_size > limit) {
+ max_size = limit;
+ }
+ return (max_size + seg_size - 1) / seg_size * seg_size;
+}
+
+template <class E>
+Stack<E>::Stack(size_t segment_size, size_t max_cache_size, size_t max_size):
+ StackBase(adjust_segment_size(segment_size), max_cache_size, max_size)
+{
+ reset(true);
+}
+
+template <class E>
+void Stack<E>::push(E item)
+{
+ assert(!is_full(), "pushing onto a full stack");
+ if (_cur_seg_size == _seg_size) {
+ push_segment();
+ }
+ _cur_seg[_cur_seg_size] = item;
+ ++_cur_seg_size;
+}
+
+template <class E>
+E Stack<E>::pop()
+{
+ assert(!is_empty(), "popping from an empty stack");
+ if (_cur_seg_size == 1) {
+ E tmp = _cur_seg[--_cur_seg_size];
+ pop_segment();
+ return tmp;
+ }
+ return _cur_seg[--_cur_seg_size];
+}
+
+template <class E>
+void Stack<E>::clear(bool clear_cache)
+{
+ free_segments(_cur_seg);
+ if (clear_cache) free_segments(_cache);
+ reset(clear_cache);
+}
+
+template <class E>
+size_t Stack<E>::default_segment_size()
+{
+ // Number of elements that fit in 4K bytes minus the size of two pointers
+ // (link field and malloc header).
+ return (4096 - 2 * sizeof(E*)) / sizeof(E);
+}
+
+template <class E>
+size_t Stack<E>::adjust_segment_size(size_t seg_size)
+{
+ const size_t elem_sz = sizeof(E);
+ const size_t ptr_sz = sizeof(E*);
+ assert(elem_sz % ptr_sz == 0 || ptr_sz % elem_sz == 0, "bad element size");
+ if (elem_sz < ptr_sz) {
+ return align_size_up(seg_size * elem_sz, ptr_sz) / elem_sz;
+ }
+ return seg_size;
+}
+
+template <class E>
+size_t Stack<E>::link_offset() const
+{
+ return align_size_up(_seg_size * sizeof(E), sizeof(E*));
+}
+
+template <class E>
+size_t Stack<E>::segment_bytes() const
+{
+ return link_offset() + sizeof(E*);
+}
+
+template <class E>
+E** Stack<E>::link_addr(E* seg) const
+{
+ return (E**) ((char*)seg + link_offset());
+}
+
+template <class E>
+E* Stack<E>::get_link(E* seg) const
+{
+ return *link_addr(seg);
+}
+
+template <class E>
+E* Stack<E>::set_link(E* new_seg, E* old_seg)
+{
+ *link_addr(new_seg) = old_seg;
+ return new_seg;
+}
+
+template <class E>
+E* Stack<E>::alloc(size_t bytes)
+{
+ return (E*) NEW_C_HEAP_ARRAY(char, bytes);
+}
+
+template <class E>
+void Stack<E>::free(E* addr, size_t bytes)
+{
+ FREE_C_HEAP_ARRAY(char, (char*) addr);
+}
+
+template <class E>
+void Stack<E>::push_segment()
+{
+ assert(_cur_seg_size == _seg_size, "current segment is not full");
+ E* next;
+ if (_cache_size > 0) {
+ // Use a cached segment.
+ next = _cache;
+ _cache = get_link(_cache);
+ --_cache_size;
+ } else {
+ next = alloc(segment_bytes());
+ DEBUG_ONLY(zap_segment(next, true);)
+ }
+ const bool at_empty_transition = is_empty();
+ _cur_seg = set_link(next, _cur_seg);
+ _cur_seg_size = 0;
+ _full_seg_size += at_empty_transition ? 0 : _seg_size;
+ DEBUG_ONLY(verify(at_empty_transition);)
+}
+
+template <class E>
+void Stack<E>::pop_segment()
+{
+ assert(_cur_seg_size == 0, "current segment is not empty");
+ E* const prev = get_link(_cur_seg);
+ if (_cache_size < _max_cache_size) {
+ // Add the current segment to the cache.
+ DEBUG_ONLY(zap_segment(_cur_seg, false);)
+ _cache = set_link(_cur_seg, _cache);
+ ++_cache_size;
+ } else {
+ DEBUG_ONLY(zap_segment(_cur_seg, true);)
+ free(_cur_seg, segment_bytes());
+ }
+ const bool at_empty_transition = prev == NULL;
+ _cur_seg = prev;
+ _cur_seg_size = _seg_size;
+ _full_seg_size -= at_empty_transition ? 0 : _seg_size;
+ DEBUG_ONLY(verify(at_empty_transition);)
+}
+
+template <class E>
+void Stack<E>::free_segments(E* seg)
+{
+ const size_t bytes = segment_bytes();
+ while (seg != NULL) {
+ E* const prev = get_link(seg);
+ free(seg, bytes);
+ seg = prev;
+ }
+}
+
+template <class E>
+void Stack<E>::reset(bool reset_cache)
+{
+ _cur_seg_size = _seg_size; // So push() will alloc a new segment.
+ _full_seg_size = 0;
+ _cur_seg = NULL;
+ if (reset_cache) {
+ _cache_size = 0;
+ _cache = NULL;
+ }
+}
+
+#ifdef ASSERT
+template <class E>
+void Stack<E>::verify(bool at_empty_transition) const
+{
+ assert(size() <= max_size(), "stack exceeded bounds");
+ assert(cache_size() <= max_cache_size(), "cache exceeded bounds");
+ assert(_cur_seg_size <= segment_size(), "segment index exceeded bounds");
+
+ assert(_full_seg_size % _seg_size == 0, "not a multiple");
+ assert(at_empty_transition || is_empty() == (size() == 0), "mismatch");
+ assert((_cache == NULL) == (cache_size() == 0), "mismatch");
+
+ if (is_empty()) {
+ assert(_cur_seg_size == segment_size(), "sanity");
+ }
+}
+
+template <class E>
+void Stack<E>::zap_segment(E* seg, bool zap_link_field) const
+{
+ if (!ZapStackSegments) return;
+ const size_t zap_bytes = segment_bytes() - (zap_link_field ? 0 : sizeof(E*));
+ uint32_t* cur = (uint32_t*)seg;
+ const uint32_t* end = cur + zap_bytes / sizeof(uint32_t);
+ while (cur < end) {
+ *cur++ = 0xfadfaded;
+ }
+}
+#endif
+
+template <class E>
+E* ResourceStack<E>::alloc(size_t bytes)
+{
+ return (E*) resource_allocate_bytes(bytes);
+}
+
+template <class E>
+void ResourceStack<E>::free(E* addr, size_t bytes)
+{
+ resource_free_bytes((char*) addr, bytes);
+}
+
+template <class E>
+void StackIterator<E>::sync()
+{
+ _full_seg_size = _stack._full_seg_size;
+ _cur_seg_size = _stack._cur_seg_size;
+ _cur_seg = _stack._cur_seg;
+}
+
+template <class E>
+E* StackIterator<E>::next_addr()
+{
+ assert(!is_empty(), "no items left");
+ if (_cur_seg_size == 1) {
+ E* addr = _cur_seg;
+ _cur_seg = _stack.get_link(_cur_seg);
+ _cur_seg_size = _stack.segment_size();
+ _full_seg_size -= _stack.segment_size();
+ return addr;
+ }
+ return _cur_seg + --_cur_seg_size;
+}
--- a/hotspot/src/share/vm/utilities/taskqueue.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/utilities/taskqueue.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -144,6 +144,7 @@
bool
ParallelTaskTerminator::offer_termination(TerminatorTerminator* terminator) {
+ assert(_n_threads > 0, "Initialization is incorrect");
assert(_offered_termination < _n_threads, "Invariant");
Atomic::inc(&_offered_termination);
@@ -255,3 +256,9 @@
_index < objArrayOop(_obj)->length();
}
#endif // ASSERT
+
+void ParallelTaskTerminator::reset_for_reuse(int n_threads) {
+ reset_for_reuse();
+ _n_threads = n_threads;
+}
+
--- a/hotspot/src/share/vm/utilities/taskqueue.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/utilities/taskqueue.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -305,6 +305,12 @@
return false;
}
+// pop_local_slow() is done by the owning thread and is trying to
+// get the last task in the queue. It will compete with pop_global()
+// that will be used by other threads. The tag age is incremented
+// whenever the queue goes empty which it will do here if this thread
+// gets the last task or in pop_global() if the queue wraps (top == 0
+// and pop_global() succeeds, see pop_global()).
template<class E, unsigned int N>
bool GenericTaskQueue<E, N>::pop_local_slow(uint localBot, Age oldAge) {
// This queue was observed to contain exactly one element; either this
@@ -366,75 +372,47 @@
// OverflowTaskQueue is a TaskQueue that also includes an overflow stack for
// elements that do not fit in the TaskQueue.
//
-// Three methods from super classes are overridden:
+// This class hides two methods from super classes:
//
-// initialize() - initialize the super classes and create the overflow stack
// push() - push onto the task queue or, if that fails, onto the overflow stack
// is_empty() - return true if both the TaskQueue and overflow stack are empty
//
-// Note that size() is not overridden--it returns the number of elements in the
+// Note that size() is not hidden--it returns the number of elements in the
// TaskQueue, and does not include the size of the overflow stack. This
// simplifies replacement of GenericTaskQueues with OverflowTaskQueues.
template<class E, unsigned int N = TASKQUEUE_SIZE>
class OverflowTaskQueue: public GenericTaskQueue<E, N>
{
public:
- typedef GrowableArray<E> overflow_t;
+ typedef Stack<E> overflow_t;
typedef GenericTaskQueue<E, N> taskqueue_t;
TASKQUEUE_STATS_ONLY(using taskqueue_t::stats;)
- OverflowTaskQueue();
- ~OverflowTaskQueue();
- void initialize();
-
- inline overflow_t* overflow_stack() const { return _overflow_stack; }
-
// Push task t onto the queue or onto the overflow stack. Return true.
inline bool push(E t);
// Attempt to pop from the overflow stack; return true if anything was popped.
inline bool pop_overflow(E& t);
+ inline overflow_t* overflow_stack() { return &_overflow_stack; }
+
inline bool taskqueue_empty() const { return taskqueue_t::is_empty(); }
- inline bool overflow_empty() const { return overflow_stack()->is_empty(); }
+ inline bool overflow_empty() const { return _overflow_stack.is_empty(); }
inline bool is_empty() const {
return taskqueue_empty() && overflow_empty();
}
private:
- overflow_t* _overflow_stack;
+ overflow_t _overflow_stack;
};
template <class E, unsigned int N>
-OverflowTaskQueue<E, N>::OverflowTaskQueue()
-{
- _overflow_stack = NULL;
-}
-
-template <class E, unsigned int N>
-OverflowTaskQueue<E, N>::~OverflowTaskQueue()
-{
- if (_overflow_stack != NULL) {
- delete _overflow_stack;
- _overflow_stack = NULL;
- }
-}
-
-template <class E, unsigned int N>
-void OverflowTaskQueue<E, N>::initialize()
-{
- taskqueue_t::initialize();
- assert(_overflow_stack == NULL, "memory leak");
- _overflow_stack = new (ResourceObj::C_HEAP) GrowableArray<E>(10, true);
-}
-
-template <class E, unsigned int N>
bool OverflowTaskQueue<E, N>::push(E t)
{
if (!taskqueue_t::push(t)) {
overflow_stack()->push(t);
- TASKQUEUE_STATS_ONLY(stats.record_overflow(overflow_stack()->length()));
+ TASKQUEUE_STATS_ONLY(stats.record_overflow(overflow_stack()->size()));
}
return true;
}
@@ -637,6 +615,9 @@
// in an MT-safe manner, once the previous round of use of
// the terminator is finished.
void reset_for_reuse();
+ // Same as above but the number of parallel threads is set to the
+ // given number.
+ void reset_for_reuse(int n_threads);
#ifdef TRACESPINNING
static uint total_yields() { return _total_yields; }
@@ -782,3 +763,4 @@
typedef OverflowTaskQueue<size_t> RegionTaskQueue;
typedef GenericTaskQueueSet<RegionTaskQueue> RegionTaskQueueSet;
+
--- a/hotspot/src/share/vm/utilities/workgroup.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/utilities/workgroup.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,28 +53,52 @@
int workers,
bool are_GC_task_threads,
bool are_ConcurrentGC_threads) :
- AbstractWorkGang(name, are_GC_task_threads, are_ConcurrentGC_threads)
-{
+ AbstractWorkGang(name, are_GC_task_threads, are_ConcurrentGC_threads) {
// Save arguments.
_total_workers = workers;
+}
+
+GangWorker* WorkGang::allocate_worker(int which) {
+ GangWorker* new_worker = new GangWorker(this, which);
+ return new_worker;
+}
+
+// The current implementation will exit if the allocation
+// of any worker fails. Still, return a boolean so that
+// a future implementation can possibly do a partial
+// initialization of the workers and report such to the
+// caller.
+bool WorkGang::initialize_workers() {
if (TraceWorkGang) {
- tty->print_cr("Constructing work gang %s with %d threads", name, workers);
+ tty->print_cr("Constructing work gang %s with %d threads",
+ name(),
+ total_workers());
}
- _gang_workers = NEW_C_HEAP_ARRAY(GangWorker*, workers);
+ _gang_workers = NEW_C_HEAP_ARRAY(GangWorker*, total_workers());
if (gang_workers() == NULL) {
vm_exit_out_of_memory(0, "Cannot create GangWorker array.");
+ return false;
+ }
+ os::ThreadType worker_type;
+ if (are_ConcurrentGC_threads()) {
+ worker_type = os::cgc_thread;
+ } else {
+ worker_type = os::pgc_thread;
}
for (int worker = 0; worker < total_workers(); worker += 1) {
- GangWorker* new_worker = new GangWorker(this, worker);
+ GangWorker* new_worker = allocate_worker(worker);
assert(new_worker != NULL, "Failed to allocate GangWorker");
_gang_workers[worker] = new_worker;
- if (new_worker == NULL || !os::create_thread(new_worker, os::pgc_thread))
+ if (new_worker == NULL || !os::create_thread(new_worker, worker_type)) {
vm_exit_out_of_memory(0, "Cannot create worker GC thread. Out of system resources.");
+ return false;
+ }
if (!DisableStartThread) {
os::start_thread(new_worker);
}
}
+ return true;
}
AbstractWorkGang::~AbstractWorkGang() {
@@ -383,7 +407,7 @@
return _tasks != NULL;
}
-void SubTasksDone::set_par_threads(int t) {
+void SubTasksDone::set_n_threads(int t) {
#ifdef ASSERT
assert(_claimed == 0 || _threads_completed == _n_threads,
"should not be called while tasks are being processed!");
--- a/hotspot/src/share/vm/utilities/workgroup.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/utilities/workgroup.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
class YieldingFlexibleGangWorker;
class YieldingFlexibleGangTask;
class WorkData;
+class AbstractWorkGang;
// An abstract task to be worked on by a gang.
// You subclass this to supply your own work() method
@@ -38,6 +39,13 @@
// The argument tells you which member of the gang you are.
virtual void work(int i) = 0;
+ // This method configures the task for proper termination.
+ // Some tasks do not have any requirements on termination
+ // and may inherit this method that does nothing. Some
+ // tasks do some coordination on termination and override
+ // this method to implement that coordination.
+ virtual void set_for_termination(int active_workers) {};
+
// Debugging accessor for the name.
const char* name() const PRODUCT_RETURN_(return NULL;);
int counter() { return _counter; }
@@ -64,6 +72,18 @@
virtual ~AbstractGangTask() { }
};
+class AbstractGangTaskWOopQueues : public AbstractGangTask {
+ OopTaskQueueSet* _queues;
+ ParallelTaskTerminator _terminator;
+ public:
+ AbstractGangTaskWOopQueues(const char* name, OopTaskQueueSet* queues) :
+ AbstractGangTask(name), _queues(queues), _terminator(0, _queues) {}
+ ParallelTaskTerminator* terminator() { return &_terminator; }
+ virtual void set_for_termination(int active_workers) {
+ terminator()->reset_for_reuse(active_workers);
+ }
+ OopTaskQueueSet* queues() { return _queues; }
+};
// Class AbstractWorkGang:
// An abstract class representing a gang of workers.
@@ -114,6 +134,9 @@
int total_workers() const {
return _total_workers;
}
+ virtual int active_workers() const {
+ return _total_workers;
+ }
bool terminate() const {
return _terminate;
}
@@ -199,6 +222,13 @@
bool are_GC_task_threads, bool are_ConcurrentGC_threads);
// Run a task, returns when the task is done (or terminated).
virtual void run_task(AbstractGangTask* task);
+ void run_task(AbstractGangTask* task, uint no_of_parallel_workers);
+ // Allocate a worker and return a pointer to it.
+ virtual GangWorker* allocate_worker(int which);
+ // Initialize workers in the gang. Return true if initialization
+ // succeeded. The type of the worker can be overridden in a derived
+ // class with the appropriate implementation of allocate_worker().
+ bool initialize_workers();
};
// Class GangWorker:
@@ -226,6 +256,34 @@
AbstractWorkGang* gang() const { return _gang; }
};
+class FlexibleWorkGang: public WorkGang {
+ protected:
+ int _active_workers;
+ public:
+ // Constructor and destructor.
+ FlexibleWorkGang(const char* name, int workers,
+ bool are_GC_task_threads,
+ bool are_ConcurrentGC_threads) :
+ WorkGang(name, workers, are_GC_task_threads, are_ConcurrentGC_threads) {
+ _active_workers = ParallelGCThreads;
+ };
+ // Accessors for fields
+ virtual int active_workers() const { return _active_workers; }
+ void set_active_workers(int v) { _active_workers = v; }
+};
+
+// Work gangs in garbage collectors: 2009-06-10
+//
+// SharedHeap - work gang for stop-the-world parallel collection.
+// Used by
+// ParNewGeneration
+// CMSParRemarkTask
+// CMSRefProcTaskExecutor
+// G1CollectedHeap
+// G1ParFinalCountTask
+// ConcurrentMark
+// CMSCollector
+
// A class that acts as a synchronisation barrier. Workers enter
// the barrier and must wait until all other workers have entered
// before any of them may leave.
@@ -271,7 +329,7 @@
int _n_threads;
jint _threads_completed;
#ifdef ASSERT
- jint _claimed;
+ volatile jint _claimed;
#endif
// Set all tasks to unclaimed.
@@ -286,9 +344,10 @@
// True iff the object is in a valid state.
bool valid();
- // Set the number of parallel threads doing the tasks to "t". Can only
+ // Get/set the number of parallel threads doing the tasks to "t". Can only
// be called before tasks start or after they are complete.
- void set_par_threads(int t);
+ int n_threads() { return _n_threads; }
+ void set_n_threads(int t);
// Returns "false" if the task "t" is unclaimed, and ensures that task is
// claimed. The task "t" is required to be within the range of "this".
@@ -315,13 +374,17 @@
protected:
jint _n_tasks; // Total number of tasks available.
jint _n_claimed; // Number of tasks claimed.
+ // _n_threads is used to determine when a sub task is done.
+ // See comments on SubTasksDone::_n_threads
jint _n_threads; // Total number of parallel threads.
jint _n_completed; // Number of completed threads.
void clear();
public:
- SequentialSubTasksDone() { clear(); }
+ SequentialSubTasksDone() {
+ clear();
+ }
~SequentialSubTasksDone() {}
// True iff the object is in a valid state.
@@ -330,11 +393,12 @@
// number of tasks
jint n_tasks() const { return _n_tasks; }
- // Set the number of parallel threads doing the tasks to t.
+ // Get/set the number of parallel threads doing the tasks to t.
// Should be called before the task starts but it is safe
// to call this once a task is running provided that all
// threads agree on the number of threads.
- void set_par_threads(int t) { _n_threads = t; }
+ int n_threads() { return _n_threads; }
+ void set_n_threads(int t) { _n_threads = t; }
// Set the number of tasks to be claimed to t. As above,
// should be called before the tasks start but it is safe
--- a/hotspot/src/share/vm/utilities/yieldingWorkgroup.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/utilities/yieldingWorkgroup.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,29 +32,13 @@
YieldingFlexibleWorkGang::YieldingFlexibleWorkGang(
const char* name, int workers, bool are_GC_task_threads) :
- AbstractWorkGang(name, are_GC_task_threads, false) {
- // Save arguments.
- _total_workers = workers;
- assert(_total_workers > 0, "Must have more than 1 worker");
-
- _yielded_workers = 0;
+ FlexibleWorkGang(name, workers, are_GC_task_threads, false),
+ _yielded_workers(0) {}
- if (TraceWorkGang) {
- tty->print_cr("Constructing work gang %s with %d threads", name, workers);
- }
- _gang_workers = NEW_C_HEAP_ARRAY(GangWorker*, workers);
- assert(gang_workers() != NULL, "Failed to allocate gang workers");
- for (int worker = 0; worker < total_workers(); worker += 1) {
- YieldingFlexibleGangWorker* new_worker =
- new YieldingFlexibleGangWorker(this, worker);
- assert(new_worker != NULL, "Failed to allocate YieldingFlexibleGangWorker");
- _gang_workers[worker] = new_worker;
- if (new_worker == NULL || !os::create_thread(new_worker, os::pgc_thread))
- vm_exit_out_of_memory(0, "Cannot create worker GC thread. Out of system resources.");
- if (!DisableStartThread) {
- os::start_thread(new_worker);
- }
- }
+GangWorker* YieldingFlexibleWorkGang::allocate_worker(int which) {
+ YieldingFlexibleGangWorker* new_member =
+ new YieldingFlexibleGangWorker(this, which);
+ return (YieldingFlexibleGangWorker*) new_member;
}
// Run a task; returns when the task is done, or the workers yield,
@@ -142,6 +126,7 @@
_active_workers = total_workers();
}
new_task->set_actual_size(_active_workers);
+ new_task->set_for_termination(_active_workers);
assert(_started_workers == 0, "Tabula rasa non");
assert(_finished_workers == 0, "Tabula rasa non");
@@ -161,22 +146,22 @@
for (Status status = yielding_task()->status();
status != COMPLETED && status != YIELDED && status != ABORTED;
status = yielding_task()->status()) {
- assert(started_workers() <= active_workers(), "invariant");
- assert(finished_workers() <= active_workers(), "invariant");
- assert(yielded_workers() <= active_workers(), "invariant");
+ assert(started_workers() <= total_workers(), "invariant");
+ assert(finished_workers() <= total_workers(), "invariant");
+ assert(yielded_workers() <= total_workers(), "invariant");
monitor()->wait(Mutex::_no_safepoint_check_flag);
}
switch (yielding_task()->status()) {
case COMPLETED:
case ABORTED: {
- assert(finished_workers() == active_workers(), "Inconsistent status");
+ assert(finished_workers() == total_workers(), "Inconsistent status");
assert(yielded_workers() == 0, "Invariant");
reset(); // for next task; gang<->task binding released
break;
}
case YIELDED: {
assert(yielded_workers() > 0, "Invariant");
- assert(yielded_workers() + finished_workers() == active_workers(),
+ assert(yielded_workers() + finished_workers() == total_workers(),
"Inconsistent counts");
break;
}
@@ -208,7 +193,6 @@
void YieldingFlexibleWorkGang::reset() {
_started_workers = 0;
_finished_workers = 0;
- _active_workers = 0;
yielding_task()->set_gang(NULL);
_task = NULL; // unbind gang from task
}
@@ -216,7 +200,7 @@
void YieldingFlexibleWorkGang::yield() {
assert(task() != NULL, "Inconsistency; should have task binding");
MutexLockerEx ml(monitor(), Mutex::_no_safepoint_check_flag);
- assert(yielded_workers() < active_workers(), "Consistency check");
+ assert(yielded_workers() < total_workers(), "Consistency check");
if (yielding_task()->status() == ABORTING) {
// Do not yield; we need to abort as soon as possible
// XXX NOTE: This can cause a performance pathology in the
@@ -227,7 +211,7 @@
// us to return at each potential yield point.
return;
}
- if (++_yielded_workers + finished_workers() == active_workers()) {
+ if (++_yielded_workers + finished_workers() == total_workers()) {
yielding_task()->set_status(YIELDED);
monitor()->notify_all();
} else {
--- a/hotspot/src/share/vm/utilities/yieldingWorkgroup.hpp Fri Oct 29 11:49:47 2010 +0400
+++ b/hotspot/src/share/vm/utilities/yieldingWorkgroup.hpp Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -54,6 +54,25 @@
virtual void loop();
};
+class FlexibleGangTask: public AbstractGangTask {
+ int _actual_size; // size of gang obtained
+protected:
+ int _requested_size; // size of gang requested
+public:
+ FlexibleGangTask(const char* name): AbstractGangTask(name),
+ _requested_size(0) {}
+
+ // The abstract work method.
+ // The argument tells you which member of the gang you are.
+ virtual void work(int i) = 0;
+
+ int requested_size() const { return _requested_size; }
+ int actual_size() const { return _actual_size; }
+
+ void set_requested_size(int sz) { _requested_size = sz; }
+ void set_actual_size(int sz) { _actual_size = sz; }
+};
+
// An abstract task to be worked on by a flexible work gang,
// and where the workers will periodically yield, usually
// in response to some condition that is signalled by means
@@ -70,19 +89,15 @@
// maximum) in response to task requests at certain points.
// The last part (the flexible part) has not yet been fully
// fleshed out and is a work in progress.
-class YieldingFlexibleGangTask: public AbstractGangTask {
+class YieldingFlexibleGangTask: public FlexibleGangTask {
Status _status;
YieldingFlexibleWorkGang* _gang;
- int _actual_size; // size of gang obtained
protected:
- int _requested_size; // size of gang requested
-
// Constructor and desctructor: only construct subclasses.
- YieldingFlexibleGangTask(const char* name): AbstractGangTask(name),
+ YieldingFlexibleGangTask(const char* name): FlexibleGangTask(name),
_status(INACTIVE),
- _gang(NULL),
- _requested_size(0) { }
+ _gang(NULL) { }
virtual ~YieldingFlexibleGangTask() { }
@@ -122,24 +137,18 @@
virtual void abort();
Status status() const { return _status; }
+ bool yielding() const { return _status == YIELDING; }
bool yielded() const { return _status == YIELDED; }
bool completed() const { return _status == COMPLETED; }
bool aborted() const { return _status == ABORTED; }
bool active() const { return _status == ACTIVE; }
-
- int requested_size() const { return _requested_size; }
- int actual_size() const { return _actual_size; }
-
- void set_requested_size(int sz) { _requested_size = sz; }
- void set_actual_size(int sz) { _actual_size = sz; }
};
-
// Class YieldingWorkGang: A subclass of WorkGang.
// In particular, a YieldingWorkGang is made up of
// YieldingGangWorkers, and provides infrastructure
// supporting yielding to the "GangOverseer",
// being the thread that orchestrates the WorkGang via run_task().
-class YieldingFlexibleWorkGang: public AbstractWorkGang {
+class YieldingFlexibleWorkGang: public FlexibleWorkGang {
// Here's the public interface to this class.
public:
// Constructor and destructor.
@@ -151,6 +160,9 @@
"Incorrect cast");
return (YieldingFlexibleGangTask*)task();
}
+ // Allocate a worker and return a pointer to it.
+ GangWorker* allocate_worker(int which);
+
// Run a task; returns when the task is done, or the workers yield,
// or the task is aborted, or the work gang is terminated via stop().
// A task that has been yielded can be continued via this same interface
@@ -180,10 +192,6 @@
void abort();
private:
- // The currently active workers in this gang.
- // This is a number that is dynamically adjusted by
- // the run_task() method at each subsequent invocation,
- // using data in the YieldingFlexibleGangTask.
int _active_workers;
int _yielded_workers;
void wait_for_gang();
@@ -194,6 +202,7 @@
return _active_workers;
}
+ // Accessors for fields
int yielded_workers() const {
return _yielded_workers;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/6968348/Test6968348.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 6968348
+ * @summary Byteswapped memory access can point to wrong location after JIT
+ *
+ * @run main Test6968348
+ */
+
+import sun.misc.Unsafe;
+import java.lang.reflect.*;
+
+public class Test6968348 {
+ static Unsafe unsafe;
+ static final long[] buffer = new long[4096];
+ static int array_long_base_offset;
+
+ public static void main(String[] args) throws Exception {
+ Class c = Test6968348.class.getClassLoader().loadClass("sun.misc.Unsafe");
+ Field f = c.getDeclaredField("theUnsafe");
+ f.setAccessible(true);
+ unsafe = (Unsafe)f.get(c);
+ array_long_base_offset = unsafe.arrayBaseOffset(long[].class);
+
+ for (int n = 0; n < 100000; n++) {
+ test();
+ }
+ }
+
+ public static void test() {
+ for (long i = array_long_base_offset; i < 4096; i += 8) {
+ unsafe.putLong(buffer, i, Long.reverseBytes(i));
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/6987555/Test6987555.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 6987555
+ * @summary JSR 292 unboxing to a boolean value fails on big-endian SPARC
+ *
+ * @run main/othervm -Xint -ea -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -XX:+UnlockDiagnosticVMOptions -XX:+VerifyMethodHandles Test6987555
+ */
+
+import java.dyn.*;
+
+public class Test6987555 {
+ private static final Class CLASS = Test6987555.class;
+ private static final String NAME = "foo";
+ private static final boolean DEBUG = false;
+
+ public static void main(String[] args) throws Throwable {
+ testboolean();
+ testbyte();
+ testchar();
+ testshort();
+ testint();
+ }
+
+ // boolean
+ static void testboolean() throws Throwable {
+ doboolean(false);
+ doboolean(true);
+ }
+ static void doboolean(boolean x) throws Throwable {
+ if (DEBUG) System.out.println("boolean=" + x);
+ MethodHandle mh1 = MethodHandles.lookup().findStatic(CLASS, NAME, MethodType.methodType(boolean.class, boolean.class));
+ MethodHandle mh2 = mh1.asType(MethodType.methodType(boolean.class, Boolean.class));
+ boolean a = mh1.<boolean>invokeExact(x);
+ boolean b = mh2.<boolean>invokeExact(Boolean.valueOf(x));
+ assert a == b : a + " != " + b;
+ }
+
+ // byte
+ static void testbyte() throws Throwable {
+ byte[] a = new byte[] {
+ Byte.MIN_VALUE,
+ Byte.MIN_VALUE + 1,
+ -0x0F,
+ -1,
+ 0,
+ 1,
+ 0x0F,
+ Byte.MAX_VALUE - 1,
+ Byte.MAX_VALUE
+ };
+ for (int i = 0; i < a.length; i++) {
+ dobyte(a[i]);
+ }
+ }
+ static void dobyte(byte x) throws Throwable {
+ if (DEBUG) System.out.println("byte=" + x);
+ MethodHandle mh1 = MethodHandles.lookup().findStatic(CLASS, NAME, MethodType.methodType(byte.class, byte.class));
+ MethodHandle mh2 = mh1.asType(MethodType.methodType(byte.class, Byte.class));
+ byte a = mh1.<byte>invokeExact(x);
+ byte b = mh2.<byte>invokeExact(Byte.valueOf(x));
+ assert a == b : a + " != " + b;
+ }
+
+ // char
+ static void testchar() throws Throwable {
+ char[] a = new char[] {
+ Character.MIN_VALUE,
+ Character.MIN_VALUE + 1,
+ 0x000F,
+ 0x00FF,
+ 0x0FFF,
+ Character.MAX_VALUE - 1,
+ Character.MAX_VALUE
+ };
+ for (int i = 0; i < a.length; i++) {
+ dochar(a[i]);
+ }
+ }
+ static void dochar(char x) throws Throwable {
+ if (DEBUG) System.out.println("char=" + x);
+ MethodHandle mh1 = MethodHandles.lookup().findStatic(CLASS, NAME, MethodType.methodType(char.class, char.class));
+ MethodHandle mh2 = mh1.asType(MethodType.methodType(char.class, Character.class));
+ char a = mh1.<char>invokeExact(x);
+ char b = mh2.<char>invokeExact(Character.valueOf(x));
+ assert a == b : a + " != " + b;
+ }
+
+ // short
+ static void testshort() throws Throwable {
+ short[] a = new short[] {
+ Short.MIN_VALUE,
+ Short.MIN_VALUE + 1,
+ -0x0FFF,
+ -0x00FF,
+ -0x000F,
+ -1,
+ 0,
+ 1,
+ 0x000F,
+ 0x00FF,
+ 0x0FFF,
+ Short.MAX_VALUE - 1,
+ Short.MAX_VALUE
+ };
+ for (int i = 0; i < a.length; i++) {
+ doshort(a[i]);
+ }
+ }
+ static void doshort(short x) throws Throwable {
+ if (DEBUG) System.out.println("short=" + x);
+ MethodHandle mh1 = MethodHandles.lookup().findStatic(CLASS, NAME, MethodType.methodType(short.class, short.class));
+ MethodHandle mh2 = mh1.asType(MethodType.methodType(short.class, Short.class));
+ short a = mh1.<short>invokeExact(x);
+ short b = mh2.<short>invokeExact(Short.valueOf(x));
+ assert a == b : a + " != " + b;
+ }
+
+ // int
+ static void testint() throws Throwable {
+ int[] a = new int[] {
+ Integer.MIN_VALUE,
+ Integer.MIN_VALUE + 1,
+ -0x00000FFF,
+ -0x000000FF,
+ -0x0000000F,
+ -1,
+ 0,
+ 1,
+ 0x0000000F,
+ 0x000000FF,
+ 0x00000FFF,
+ Integer.MAX_VALUE - 1,
+ Integer.MAX_VALUE
+ };
+ for (int i = 0; i < a.length; i++) {
+ doint(a[i]);
+ }
+ }
+ static void doint(int x) throws Throwable {
+ if (DEBUG) System.out.println("int=" + x);
+ MethodHandle mh1 = MethodHandles.lookup().findStatic(CLASS, NAME, MethodType.methodType(int.class, int.class));
+ MethodHandle mh2 = mh1.asType(MethodType.methodType(int.class, Integer.class));
+ int a = mh1.<int>invokeExact(x);
+ int b = mh2.<int>invokeExact(Integer.valueOf(x));
+ assert a == b : a + " != " + b;
+ }
+
+ public static boolean foo(boolean i) { return i; }
+ public static byte foo(byte i) { return i; }
+ public static char foo(char i) { return i; }
+ public static short foo(short i) { return i; }
+ public static int foo(int i) { return i; }
+}
--- a/jaxp/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/jaxp/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -88,3 +88,6 @@
8106c747067c905d814a737a57fea0e29057b33f jdk7-b111
1b05254242881527b4d5d711295c0fe708c8823a jdk7-b112
bc0c84ce54c34d3e8b0604b94da0d7c75c26755e jdk7-b113
+d57197d22c2bfc39d1a860040f655b466ab46f52 jdk7-b114
+dc1612e1d3ac08eb8fcad764daff21c9247d33c9 jdk7-b115
+f8d4e6c6cfce1cda23fcbd144628a9791a9e1a63 jdk7-b116
--- a/jaxws/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/jaxws/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -88,3 +88,6 @@
2575ebca96c7fb1b78f6ae025a97321210aba309 jdk7-b111
8e0f0054817f0f73fb33e80fb1333fb45b1d513d jdk7-b112
d35c94fd22362f478f75b4bfcd2bef6a83cb9b3f jdk7-b113
+400f494c81c5ec87714b705648afbb3cb680bf73 jdk7-b114
+824cc44bd6eba9abae07cc420f7fe3926c1adbd9 jdk7-b115
+376ac153078dd3b5f6d4a0981feee092c1492c96 jdk7-b116
--- a/jdk/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -89,3 +89,5 @@
b53f226b1d91473ac54184afa827be07b87e0319 jdk7-b112
61d3b9fbb26bdef56cfa41b9af5bc312a22cbeb8 jdk7-b113
e250cef36ea05e627e7e6f7d75e5e19f529e2ba3 jdk7-b114
+449bad8d67b5808ecf0f927683acc0a5940f8c85 jdk7-b115
+1657ed4e1d86c8aa2028ab5a41f9da1ac4a369f8 jdk7-b116
--- a/jdk/make/common/internal/Resources.gmk Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/make/common/internal/Resources.gmk Tue Nov 02 22:15:35 2010 -0700
@@ -251,13 +251,13 @@
# Make sure the build rule creates all the properties
resources:
-ifneq ($(PROPERTIES_FILES),)
+ifneq ($(strip $(PROPERTIES_FILES)),)
resources: strip_prop_options_clean strip_all_props
clobber clean::
$(RM) $(STRIP_PROP_FILES) $(STRIP_PROP_options)
endif
-ifneq ($(COMPILED_PROPERTIES),)
+ifneq ($(strip $(COMPILED_PROPERTIES)),)
resources: compile_prop_options_clean compile_all_props
clobber clean::
$(RM) $(COMPILE_PROP_JAVA_FILES) $(COMPILE_PROP_options)
--- a/jdk/make/common/shared/Defs-javadoc.gmk Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/make/common/shared/Defs-javadoc.gmk Tue Nov 02 22:15:35 2010 -0700
@@ -45,7 +45,7 @@
PLUGIN2_FIRST_COPYRIGHT_YEAR = 2007
# Oracle name
-COMPANY_NAME = Oracle and/or its affiliates
+FULL_COMPANY_NAME = Oracle and/or its affiliates
# Copyright address
COMPANY_ADDRESS = 500 Oracle Parkway<br>Redwood Shores, CA 94065 USA.
--- a/jdk/make/common/shared/Defs.gmk Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/make/common/shared/Defs.gmk Tue Nov 02 22:15:35 2010 -0700
@@ -341,7 +341,33 @@
include $(_PRIVATE_DEFS_FILE)
endif
+# OUTPUTDIR: Location of all output for the build
+ifdef ALT_OUTPUTDIR
+ OUTPUTDIR:=$(subst \,/,$(ALT_OUTPUTDIR))
+ # Assumes this is absolute (checks later)
+ ABS_OUTPUTDIR:=$(OUTPUTDIR)
+else
+ ifndef _OUTPUTDIR
+ # Default: Get "build" parent directory, which should always exist
+ ifndef BUILD_PARENT_DIRECTORY
+ BUILD_PARENT_DIRECTORY=$(BUILDDIR)/..
+ endif
+ ifdef OPENJDK
+ _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)$(OPENJDK_SUFFIX)
+ else
+ _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)
+ endif
+ _OUTPUTDIR=$(BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
+ endif
+ OUTPUTDIR:=$(_OUTPUTDIR)
+endif
+# Check for spaces and null value
+OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR)
+OUTPUTDIR:=$(call AltCheckValue,OUTPUTDIR)
+
# Get platform specific settings
+# NB: OUTPUTDIR must be defined. Otherwise hotspot import detection will not work correctly
+# On other hand this must be included early as it provides platform specific defines such as FullPath
include $(JDK_MAKE_SHARED_DIR)/Defs-$(PLATFORM).gmk
# Components
@@ -478,32 +504,6 @@
CACERTS_FILE:=$(call AltCheckSpaces,CACERTS_FILE)
CACERTS_FILE:=$(call AltCheckValue,CACERTS_FILE)
-# OUTPUTDIR: Location of all output for the build
-ifdef ALT_OUTPUTDIR
- OUTPUTDIR:=$(subst \,/,$(ALT_OUTPUTDIR))
- # Assumes this is absolute (checks later)
- ABS_OUTPUTDIR:=$(OUTPUTDIR)
-else
- ifndef _OUTPUTDIR
- # Default: Get "build" parent directory, which should always exist
- ifndef BUILD_PARENT_DIRECTORY
- BUILD_PARENT_DIRECTORY=$(BUILDDIR)/..
- endif
- ABS_BUILD_PARENT_DIRECTORY:=$(call FullPath,$(BUILD_PARENT_DIRECTORY))
- ifdef OPENJDK
- _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)$(OPENJDK_SUFFIX)
- else
- _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)
- endif
- _OUTPUTDIR=$(BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
- ABS_OUTPUTDIR:=$(ABS_BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
- endif
- OUTPUTDIR:=$(_OUTPUTDIR)
-endif
-# Check for spaces and null value
-OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR)
-OUTPUTDIR:=$(call AltCheckValue,OUTPUTDIR)
-
#
# When signing the JCE framework and provider, we could be using built
# bits on a read-only filesystem. If so, this test will fail and crash
@@ -519,7 +519,13 @@
# Define absolute path if needed and check for spaces and null value
ifndef ABS_OUTPUTDIR
- ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))
+ ifdef _OUTPUTDIRNAME
+ #Could not define this at the same time as _OUTPUTDIRNAME as FullPath is not defined at that point
+ ABS_BUILD_PARENT_DIRECTORY:=$(call FullPath,$(BUILD_PARENT_DIRECTORY))
+ ABS_OUTPUTDIR:=$(ABS_BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
+ else
+ ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))
+ endif
endif
ABS_OUTPUTDIR:=$(call AltCheckSpaces,ABS_OUTPUTDIR)
ABS_OUTPUTDIR:=$(call AltCheckValue,ABS_OUTPUTDIR)
@@ -572,10 +578,23 @@
ANT_HOME := $(call DirExists,$(JDK_DEVTOOLS_DIR)/share/ant/latest,,)
endif
endif
+
+# There are few problems with ant we need to workaround:
+# 1) ant is using temporary directory java.io.tmpdir
+# However, this directory is not unique enough and two separate ant processes
+# can easily end up using the exact same temp directory. This may lead to weird build failures
+# To workaround this we will define tmp dir explicitly
+# 2) ant attempts to detect JDK location based on java.exe location
+# This is fragile as developer may have JRE first on the PATH.
+# To workaround this we will specify JAVA_HOME explicitly
+
+ANT_TMPDIR = $(ABS_OUTPUTDIR)/tmp
+ANT_WORKAROUNDS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)' JAVA_HOME='$(BOOTDIR)'
+
ifeq ($(ANT_HOME),)
- ANT = ant
+ ANT = $(ANT_WORKAROUNDS) ant
else
- ANT = $(ANT_HOME)/bin/ant
+ ANT = $(ANT_WORKAROUNDS) $(ANT_HOME)/bin/ant
endif
ifdef ALT_COPYRIGHT_YEAR
--- a/jdk/make/docs/Makefile Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/make/docs/Makefile Tue Nov 02 22:15:35 2010 -0700
@@ -57,7 +57,7 @@
# Common Java trademark line
JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \
-$(COMPANY_NAME) in the US and other countries.
+$(FULL_COMPANY_NAME) in the US and other countries.
#
# Definitions for imported components
--- a/jdk/make/java/java/FILES_java.gmk Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/make/java/java/FILES_java.gmk Tue Nov 02 22:15:35 2010 -0700
@@ -465,14 +465,11 @@
java/security/ProtectionDomain.java \
java/net/URLClassLoader.java \
java/net/URLConnection.java \
+ sun/misc/BootClassLoaderHook.java \
sun/misc/Launcher.java \
sun/misc/MetaIndex.java \
sun/misc/URLClassPath.java \
sun/misc/Version.java \
- sun/net/www/protocol/jar/Handler.java \
- sun/net/www/protocol/jar/JarURLConnection.java \
- sun/net/www/protocol/file/Handler.java \
- sun/net/www/protocol/file/FileURLConnection.java \
sun/misc/FileURLMapper.java \
sun/misc/MessageUtils.java \
sun/misc/GC.java \
@@ -482,6 +479,10 @@
sun/misc/JavaIOFileDescriptorAccess.java \
sun/misc/JavaNioAccess.java \
sun/misc/Perf.java \
- sun/misc/PerfCounter.java
+ sun/misc/PerfCounter.java \
+ sun/net/www/protocol/jar/Handler.java \
+ sun/net/www/protocol/jar/JarURLConnection.java \
+ sun/net/www/protocol/file/Handler.java \
+ sun/net/www/protocol/file/FileURLConnection.java
FILES_java = $(JAVA_JAVA_java)
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java Tue Nov 02 22:15:35 2010 -0700
@@ -654,8 +654,8 @@
String layout;
public FormatException(String message,
int ctype, String name, String layout) {
- super(ATTR_CONTEXT_NAME[ctype]+"."+name
- +(message == null? "": (": "+message)));
+ super(ATTR_CONTEXT_NAME[ctype]+ " attribute \"" + name + "\"" +
+ (message == null? "" : (": " + message)));
this.ctype = ctype;
this.name = name;
this.layout = layout;
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java Tue Nov 02 22:15:35 2010 -0700
@@ -30,6 +30,7 @@
import com.sun.java.util.jar.pack.Package.Class;
import com.sun.java.util.jar.pack.Package.InnerClass;
import com.sun.java.util.jar.pack.ConstantPool.*;
+import com.sun.tools.classfile.AttributeException;
/**
* Reader for a class file that is being incorporated into a package.
@@ -246,7 +247,9 @@
fixups[fptr++] = in.readUnsignedShort();
break;
default:
- throw new IOException("Bad constant pool tag "+tag);
+ throw new ClassFormatException("Bad constant pool tag " +
+ tag + " in File: " + cls.file.nameString +
+ " at pos: " + inPos);
}
}
@@ -403,7 +406,7 @@
skip(length, "unknown "+name+" attribute in "+h);
continue;
} else {
- String message = "unknown in "+h;
+ String message = " is unknown attribute in class " + h;
throw new Attribute.FormatException(message, ctype, name,
unknownAttrCommand);
}
@@ -415,7 +418,12 @@
if (a.name() == "Code") {
Class.Method m = (Class.Method) h;
m.code = new Code(m);
- readCode(m.code);
+ try {
+ readCode(m.code);
+ } catch (Instruction.FormatException iie) {
+ String message = iie.getMessage() + " in " + h;
+ throw new ClassReader.ClassFormatException(message);
+ }
} else {
assert(h == cls);
readInnerClasses(cls);
@@ -427,6 +435,10 @@
in.readFully(bytes);
a = a.addContent(bytes);
}
+ if (a.size() == 0 && !a.layout().isEmpty()) {
+ throw new ClassFormatException(name +
+ ": attribute length cannot be zero, in " + h);
+ }
h.addAttribute(a);
if (verbose > 2)
Utils.log.fine("read "+a);
@@ -438,6 +450,7 @@
code.max_locals = readUnsignedShort();
code.bytes = new byte[readInt()];
in.readFully(code.bytes);
+ Instruction.opcodeChecker(code.bytes);
int nh = readUnsignedShort();
code.setHandlerCount(nh);
for (int i = 0; i < nh; i++) {
@@ -463,4 +476,10 @@
cls.innerClasses = ics; // set directly; do not use setInnerClasses.
// (Later, ics may be transferred to the pkg.)
}
+
+ class ClassFormatException extends IOException {
+ public ClassFormatException(String message) {
+ super(message);
+ }
+ }
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Instruction.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Instruction.java Tue Nov 02 22:15:35 2010 -0700
@@ -25,6 +25,8 @@
package com.sun.java.util.jar.pack;
+import java.io.IOException;
+
/**
* A parsed bytecode instruction.
* Provides accessors to various relevant bits.
@@ -628,4 +630,21 @@
}
}
}
+
+ public static void opcodeChecker(byte[] code) throws FormatException {
+ Instruction i = at(code, 0);
+ while (i != null) {
+ int opcode = i.getBC();
+ if (opcode == _xxxunusedxxx || opcode < _nop || opcode > _jsr_w) {
+ String message = "illegal opcode: " + opcode + " " + i;
+ throw new FormatException(message);
+ }
+ i = i.next();
+ }
+ }
+ static class FormatException extends IOException {
+ FormatException(String message) {
+ super(message);
+ }
+ }
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java Tue Nov 02 22:15:35 2010 -0700
@@ -496,15 +496,29 @@
reader.unknownAttrCommand = unknownAttrCommand;
try {
reader.read();
- } catch (Attribute.FormatException ee) {
- // He passed up the category to us in layout.
- if (ee.layout.equals(Pack200.Packer.PASS)) {
- Utils.log.warning("Passing class file uncompressed due to unrecognized attribute: "+fname);
- Utils.log.info(ee.toString());
- return null;
+ } catch (IOException ioe) {
+ String message = "Passing class file uncompressed due to";
+ if (ioe instanceof Attribute.FormatException) {
+ Attribute.FormatException ee = (Attribute.FormatException) ioe;
+ // He passed up the category to us in layout.
+ if (ee.layout.equals(Pack200.Packer.PASS)) {
+ Utils.log.info(ee.toString());
+ Utils.log.warning(message + " unrecognized attribute: " +
+ fname);
+ return null;
+ }
+ } else if (ioe instanceof ClassReader.ClassFormatException) {
+ ClassReader.ClassFormatException ce = (ClassReader.ClassFormatException) ioe;
+ // %% TODO: Do we invent a new property for this or reuse %%
+ if (unknownAttrCommand.equals(Pack200.Packer.PASS)) {
+ Utils.log.info(ce.toString());
+ Utils.log.warning(message + " unknown class format: " +
+ fname);
+ return null;
+ }
}
// Otherwise, it must be an error.
- throw ee;
+ throw ioe;
}
pkg.addClass(cls);
return cls.file;
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java Tue Nov 02 22:15:35 2010 -0700
@@ -182,11 +182,8 @@
}
public void warning(String msg, Object param) {
- int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
- if (verbose > 0) {
getLogger().warning(msg, param);
}
- }
public void warning(String msg) {
warning(msg, null);
@@ -216,7 +213,9 @@
// Returns the Max Version String of this implementation
static String getVersionString() {
- return "Pack200, Vendor: Sun Microsystems, Version: " +
+ return "Pack200, Vendor: " +
+ System.getProperty("java.vendor") +
+ ", Version: " +
Constants.JAVA6_PACKAGE_MAJOR_VERSION + "." +
Constants.JAVA6_PACKAGE_MINOR_VERSION;
}
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java Tue Nov 02 22:15:35 2010 -0700
@@ -54,6 +54,7 @@
public class DnsContextFactory implements InitialContextFactory {
private static final String DEFAULT_URL = "dns:";
+ private static final int DEFAULT_PORT = 53;
public Context getInitialContext(Hashtable<?,?> env) throws NamingException {
@@ -89,7 +90,9 @@
* Public for use by product test suite.
*/
public static boolean platformServersAvailable() {
- return !ResolverConfiguration.open().nameservers().isEmpty();
+ return !filterNameServers(
+ ResolverConfiguration.open().nameservers(), true
+ ).isEmpty();
}
private static Context urlToContext(String url, Hashtable env)
@@ -142,8 +145,8 @@
// No server or port given, so look to underlying platform.
// ResolverConfiguration does some limited caching, so the
// following is reasonably efficient even if called rapid-fire.
- List<String> platformServers =
- ResolverConfiguration.open().nameservers();
+ List<String> platformServers = filterNameServers(
+ ResolverConfiguration.open().nameservers(), false);
if (!platformServers.isEmpty()) {
servers.addAll(platformServers);
continue; // on to next URL (if any, which is unlikely)
@@ -213,4 +216,44 @@
String url = (String) env.get(Context.PROVIDER_URL);
return ((url != null) ? url : DEFAULT_URL);
}
+
+ /**
+ * Removes any DNS server that's not permitted to access
+ * @param input the input server[:port] list, must not be null
+ * @param oneIsEnough return output once there exists one ok
+ * @return the filtered list, all non-permitted input removed
+ */
+ private static List filterNameServers(List input, boolean oneIsEnough) {
+ SecurityManager security = System.getSecurityManager();
+ if (security == null || input == null || input.isEmpty()) {
+ return input;
+ } else {
+ List output = new ArrayList();
+ for (Object o: input) {
+ if (o instanceof String) {
+ String platformServer = (String)o;
+ int colon = platformServer.indexOf(':',
+ platformServer.indexOf(']') + 1);
+
+ int p = (colon < 0)
+ ? DEFAULT_PORT
+ : Integer.parseInt(
+ platformServer.substring(colon + 1));
+ String s = (colon < 0)
+ ? platformServer
+ : platformServer.substring(0, colon);
+ try {
+ security.checkConnect(s, p);
+ output.add(platformServer);
+ if (oneIsEnough) {
+ return output;
+ }
+ } catch (SecurityException se) {
+ continue;
+ }
+ }
+ }
+ return output;
+ }
+ }
}
--- a/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java Tue Nov 02 22:15:35 2010 -0700
@@ -1069,7 +1069,7 @@
private static class RealTimeSequencerInfo extends MidiDevice.Info {
private static final String name = "Real Time Sequencer";
- private static final String vendor = "Sun Microsystems";
+ private static final String vendor = "Oracle Corporation";
private static final String description = "Software sequencer";
private static final String version = "Version 1.0";
--- a/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Tue Nov 02 22:15:35 2010 -0700
@@ -24,9 +24,6 @@
*/
package com.sun.net.httpserver;
-import java.net.*;
-import java.io.*;
-import java.util.*;
/**
* BasicAuthenticator provides an implementation of HTTP Basic
@@ -57,7 +54,6 @@
public Result authenticate (HttpExchange t)
{
- HttpContext context = t.getHttpContext();
Headers rmap = (Headers) t.getRequestHeaders();
/*
* look for auth token
--- a/jdk/src/share/classes/com/sun/net/httpserver/Filter.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Filter.java Tue Nov 02 22:15:35 2010 -0700
@@ -25,11 +25,7 @@
package com.sun.net.httpserver;
-import java.net.*;
-import java.io.*;
-import java.nio.*;
-import java.nio.channels.*;
-import sun.net.www.MessageHeader;
+import java.io.IOException;
import java.util.*;
/**
@@ -56,12 +52,10 @@
/* the last element in the chain must invoke the users
* handler
*/
- private List<Filter> filters;
private ListIterator<Filter> iter;
private HttpHandler handler;
public Chain (List<Filter> filters, HttpHandler handler) {
- this.filters = filters;
iter = filters.listIterator();
this.handler = handler;
}
--- a/jdk/src/share/classes/com/sun/net/httpserver/Headers.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Headers.java Tue Nov 02 22:15:35 2010 -0700
@@ -26,7 +26,6 @@
package com.sun.net.httpserver;
import java.util.*;
-import java.io.*;
/**
* HTTP request and response headers are represented by this class which implements
@@ -77,19 +76,16 @@
if (len == 0) {
return key;
}
- char[] b = new char [len];
- String s = null;
- b = key.toCharArray();
- if (b[0] >= 'a' && b[0] <= 'z') {
- b[0] = (char)(b[0] - ('a' - 'A'));
+ char[] b = key.toCharArray();
+ if (b[0] >= 'a' && b[0] <= 'z') {
+ b[0] = (char)(b[0] - ('a' - 'A'));
+ }
+ for (int i=1; i<len; i++) {
+ if (b[i] >= 'A' && b[i] <= 'Z') {
+ b[i] = (char) (b[i] + ('a' - 'A'));
}
- for (int i=1; i<len; i++) {
- if (b[i] >= 'A' && b[i] <= 'Z') {
- b[i] = (char) (b[i] + ('a' - 'A'));
- }
- }
- s = new String (b);
- return s;
+ }
+ return new String(b);
}
public int size() {return map.size();}
--- a/jdk/src/share/classes/com/sun/net/httpserver/HttpsParameters.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpsParameters.java Tue Nov 02 22:15:35 2010 -0700
@@ -24,9 +24,7 @@
*/
package com.sun.net.httpserver;
-import java.net.*;
-import java.io.*;
-import java.util.*;
+import java.net.InetSocketAddress;
import javax.net.ssl.SSLParameters;
/**
@@ -90,7 +88,7 @@
* have been set.
*/
public String[] getCipherSuites() {
- return cipherSuites;
+ return cipherSuites != null ? cipherSuites.clone() : null;
}
/**
@@ -99,7 +97,7 @@
* @param cipherSuites the array of ciphersuites (or null)
*/
public void setCipherSuites(String[] cipherSuites) {
- this.cipherSuites = cipherSuites;
+ this.cipherSuites = cipherSuites != null ? cipherSuites.clone() : null;
}
/**
@@ -110,7 +108,7 @@
* have been set.
*/
public String[] getProtocols() {
- return protocols;
+ return protocols != null ? protocols.clone() : null;
}
/**
@@ -119,7 +117,7 @@
* @param protocols the array of protocols (or null)
*/
public void setProtocols(String[] protocols) {
- this.protocols = protocols;
+ this.protocols = protocols != null ? protocols.clone() : null;
}
/**
--- a/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java Tue Nov 02 22:15:35 2010 -0700
@@ -3,7 +3,7 @@
* DO NOT REMOVE OR ALTER!
*/
/*
- * Copyright 1999-2005 The Apache Software Foundation.
+ * Copyright 1999-2010 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,66 +23,70 @@
import java.io.OutputStream;
/**
- * A simple Unsynced ByteArryOutputStream
+ * A simple Unsynced ByteArrayOutputStream
* @author raul
*
*/
public class UnsyncByteArrayOutputStream extends OutputStream {
- private static ThreadLocal bufCahce = new ThreadLocal() {
+ private static final int INITIAL_SIZE = 8192;
+ private static ThreadLocal bufCache = new ThreadLocal() {
protected synchronized Object initialValue() {
- return new byte[8*1024];
+ return new byte[INITIAL_SIZE];
}
};
- byte[] buf;
- int size=8*1024;//buf.length;
- int pos=0;
- public UnsyncByteArrayOutputStream() {
- buf=(byte[])bufCahce.get();
+
+ private byte[] buf;
+ private int size = INITIAL_SIZE;
+ private int pos = 0;
+
+ public UnsyncByteArrayOutputStream() {
+ buf = (byte[])bufCache.get();
+ }
+
+ public void write(byte[] arg0) {
+ int newPos = pos + arg0.length;
+ if (newPos > size) {
+ expandSize(newPos);
}
- /** @inheritDoc */
- public void write(byte[] arg0) {
- int newPos=pos+arg0.length;
- if (newPos>size) {
- expandSize();
- }
- System.arraycopy(arg0,0,buf,pos,arg0.length);
- pos=newPos;
- }
- /** @inheritDoc */
- public void write(byte[] arg0, int arg1, int arg2) {
- int newPos=pos+arg2;
- if (newPos>size) {
- expandSize();
- }
- System.arraycopy(arg0,arg1,buf,pos,arg2);
- pos=newPos;
+ System.arraycopy(arg0, 0, buf, pos, arg0.length);
+ pos = newPos;
+ }
+
+ public void write(byte[] arg0, int arg1, int arg2) {
+ int newPos = pos + arg2;
+ if (newPos > size) {
+ expandSize(newPos);
}
- /** @inheritDoc */
- public void write(int arg0) {
- if (pos>=size) {
- expandSize();
- }
- buf[pos++]=(byte)arg0;
+ System.arraycopy(arg0, arg1, buf, pos, arg2);
+ pos = newPos;
+ }
+
+ public void write(int arg0) {
+ int newPos = pos + 1;
+ if (newPos > size) {
+ expandSize(newPos);
}
- /** @inheritDoc */
- public byte[] toByteArray() {
- byte result[]=new byte[pos];
- System.arraycopy(buf,0,result,0,pos);
- return result;
- }
+ buf[pos++] = (byte)arg0;
+ }
- /** @inheritDoc */
- public void reset() {
- pos=0;
- }
+ public byte[] toByteArray() {
+ byte result[] = new byte[pos];
+ System.arraycopy(buf, 0, result, 0, pos);
+ return result;
+ }
+
+ public void reset() {
+ pos = 0;
+ }
- /** @inheritDoc */
- void expandSize() {
- int newSize=size<<2;
- byte newBuf[]=new byte[newSize];
- System.arraycopy(buf,0,newBuf,0,pos);
- buf=newBuf;
- size=newSize;
-
+ private void expandSize(int newPos) {
+ int newSize = size;
+ while (newPos > newSize) {
+ newSize = newSize<<2;
}
+ byte newBuf[] = new byte[newSize];
+ System.arraycopy(buf, 0, newBuf, 0, pos);
+ buf = newBuf;
+ size = newSize;
+ }
}
--- a/jdk/src/share/classes/java/awt/AWTEvent.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/AWTEvent.java Tue Nov 02 22:15:35 2010 -0700
@@ -101,6 +101,12 @@
transient boolean isPosted;
/**
+ * Indicates whether this AWTEvent was generated by the system as
+ * opposed to by user code.
+ */
+ private transient boolean isSystemGenerated;
+
+ /**
* The event mask for selecting component events.
*/
public final static long COMPONENT_EVENT_MASK = 0x01;
@@ -235,6 +241,12 @@
public void setPosted(AWTEvent ev) {
ev.isPosted = true;
}
+ public void setSystemGenerated(AWTEvent ev) {
+ ev.isSystemGenerated = true;
+ }
+ public boolean isSystemGenerated(AWTEvent ev) {
+ return ev.isSystemGenerated;
+ }
});
}
@@ -554,6 +566,7 @@
}
}
}
+ that.isSystemGenerated = this.isSystemGenerated;
}
void dispatched() {
--- a/jdk/src/share/classes/java/awt/Canvas.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/Canvas.java Tue Nov 02 22:15:35 2010 -0700
@@ -71,12 +71,13 @@
@Override
void setGraphicsConfiguration(GraphicsConfiguration gc) {
- CanvasPeer peer = (CanvasPeer)getPeer();
- if (peer != null) {
- gc = peer.getAppropriateGraphicsConfiguration(gc);
+ synchronized(getTreeLock()) {
+ CanvasPeer peer = (CanvasPeer)getPeer();
+ if (peer != null) {
+ gc = peer.getAppropriateGraphicsConfiguration(gc);
+ }
+ super.setGraphicsConfiguration(gc);
}
-
- super.setGraphicsConfiguration(gc);
}
/**
--- a/jdk/src/share/classes/java/awt/Container.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/Container.java Tue Nov 02 22:15:35 2010 -0700
@@ -4187,7 +4187,7 @@
return true;
}
- for (Container cont = getContainer();
+ for (Container cont = this;
cont != null && cont.isLightweight();
cont = cont.getContainer())
{
--- a/jdk/src/share/classes/java/awt/SequencedEvent.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/SequencedEvent.java Tue Nov 02 22:15:35 2010 -0700
@@ -64,6 +64,9 @@
public SequencedEvent(AWTEvent nested) {
super(nested.getSource(), ID);
this.nested = nested;
+ // All AWTEvents that are wrapped in SequencedEvents are (at
+ // least currently) implicitly generated by the system
+ SunToolkit.setSystemGenerated(nested);
synchronized (SequencedEvent.class) {
list.add(this);
}
--- a/jdk/src/share/classes/java/awt/SplashScreen.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/SplashScreen.java Tue Nov 02 22:15:35 2010 -0700
@@ -318,6 +318,12 @@
checkVisible();
_close(splashPtr);
image = null;
+ SplashScreen.markClosed();
+ }
+ }
+
+ static void markClosed() {
+ synchronized (SplashScreen.class) {
wasClosed = true;
theInstance = null;
}
--- a/jdk/src/share/classes/java/awt/Window.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/Window.java Tue Nov 02 22:15:35 2010 -0700
@@ -928,7 +928,10 @@
return;
}
if (beforeFirstWindowShown.getAndSet(false)) {
+ // We don't use SplashScreen.getSplashScreen() to avoid instantiating
+ // the object if it hasn't been requested by user code explicitly
SunToolkit.closeSplashScreen();
+ SplashScreen.markClosed();
}
}
--- a/jdk/src/share/classes/java/awt/event/InputEvent.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/event/InputEvent.java Tue Nov 02 22:15:35 2010 -0700
@@ -29,8 +29,10 @@
import java.awt.Component;
import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;
+import java.util.Arrays;
+
+import sun.awt.AWTAccessor;
import sun.util.logging.PlatformLogger;
-import java.util.Arrays;
/**
* The root event class for all component-level input events.
@@ -54,6 +56,7 @@
* @since 1.1
*/
public abstract class InputEvent extends ComponentEvent {
+
private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent");
/**
@@ -288,6 +291,12 @@
if (!GraphicsEnvironment.isHeadless()) {
initIDs();
}
+ AWTAccessor.setInputEventAccessor(
+ new AWTAccessor.InputEventAccessor() {
+ public int[] getButtonDownMasks() {
+ return InputEvent.getButtonDownMasks();
+ }
+ });
}
/**
--- a/jdk/src/share/classes/java/awt/image/IndexColorModel.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/awt/image/IndexColorModel.java Tue Nov 02 22:15:35 2010 -0700
@@ -129,6 +129,8 @@
private boolean allgrayopaque;
private BigInteger validBits;
+ private sun.awt.image.BufImgSurfaceData.ICMColorData colorData = null;
+
private static int[] opaqueBits = {8, 8, 8};
private static int[] alphaBits = {8, 8, 8, 8};
@@ -1511,7 +1513,6 @@
* longer referenced.
*/
public void finalize() {
- sun.awt.image.BufImgSurfaceData.freeNativeICMData(this);
}
/**
--- a/jdk/src/share/classes/java/dyn/InvokeDynamicBootstrapError.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/dyn/InvokeDynamicBootstrapError.java Tue Nov 02 22:15:35 2010 -0700
@@ -39,8 +39,11 @@
* {@link Linkage#registerBootstrapMethod registerBootstrapMethod}.
*
* @author John Rose, JSR 292 EG
+ * @since 1.7
*/
public class InvokeDynamicBootstrapError extends LinkageError {
+ private static final long serialVersionUID = 292L;
+
/**
* Constructs an {@code InvokeDynamicBootstrapError} with no detail message.
*/
@@ -63,10 +66,9 @@
* detail message and cause.
*
* @param s the detail message.
- * @param cause the cause.
+ * @param cause the cause, may be {@code null}.
*/
public InvokeDynamicBootstrapError(String s, Throwable cause) {
- super(s);
- this.initCause(cause);
+ super(s, cause);
}
}
--- a/jdk/src/share/classes/java/dyn/LinkagePermission.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/dyn/LinkagePermission.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -81,6 +81,8 @@
*/
public final class LinkagePermission extends BasicPermission {
+ private static final long serialVersionUID = 292L;
+
/**
* Create a new LinkagePermission with the given name.
* The name is the symbolic name of the LinkagePermission, such as
--- a/jdk/src/share/classes/java/dyn/NoAccessException.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/dyn/NoAccessException.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,8 +35,11 @@
* on behalf of the method handle creator,
* at the time of creation.
* @author John Rose, JSR 292 EG
+ * @since 1.7
*/
public class NoAccessException extends RuntimeException {
+ private static final long serialVersionUID = 292L;
+
/**
* Constructs a {@code NoAccessException} with no detail message.
*/
--- a/jdk/src/share/classes/java/dyn/WrongMethodTypeException.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/dyn/WrongMethodTypeException.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,8 +38,11 @@
* instead of when the mismatched method handle is called.
*
* @author John Rose, JSR 292 EG
+ * @since 1.7
*/
public class WrongMethodTypeException extends RuntimeException {
+ private static final long serialVersionUID = 292L;
+
/**
* Constructs a {@code WrongMethodTypeException} with no detail message.
*/
--- a/jdk/src/share/classes/java/io/package.html Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/io/package.html Tue Nov 02 22:15:35 2010 -0700
@@ -44,7 +44,7 @@
For overviews, tutorials, examples, guides, and tool documentation,
please see:
<ul>
- <li><a href="../../../guide/serialization">Serialization Enhancements</a>
+ <li><a href="../../../technotes/guides/serialization">Serialization Enhancements</a>
</ul>
@since JDK1.0
--- a/jdk/src/share/classes/java/lang/ClassLoader.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -100,8 +100,11 @@
* themselves at their class initialization time by invoking the
* {@link
* #registerAsParallelCapable <tt>ClassLoader.registerAsParallelCapable</tt>}
- * method. In environments in which the delegation model is not strictly
- * hierarchical, class loaders need to be parallel capable, otherise class
+ * method. Note that the <tt>ClassLoader</tt> class is registered as parallel
+ * capable by default. However, its subclasses still need to register themselves
+ * if they are parallel capable. <br>
+ * In environments in which the delegation model is not strictly
+ * hierarchical, class loaders need to be parallel capable, otherwise class
* loading can lead to deadlocks because the loader lock is held for the
* duration of the class loading process (see {@link #loadClass
* <tt>loadClass</tt>} methods).
@@ -1218,14 +1221,14 @@
private static native Class<? extends ClassLoader> getCaller(int index);
/**
- * Registers the caller class loader as parallel capable.
- * In order for the registration to succeed, all super classes
- * of the caller class loader must also be registered as
- * parallel capable when this method is called. </p>
- * Note that once a class loader is registered as
- * parallel capable, there is no way to change it back.
- * In addition, registration should be done statically before
- * any instance of the caller classloader being constructed. </p>
+ * Registers the caller as parallel capable.</p>
+ * The registration succeeds if and only if all of the following
+ * conditions are met: <br>
+ * 1. no instance of the caller has been created</p>
+ * 2. all of the super classes (except class Object) of the caller are
+ * registered as parallel capable</p>
+ * Note that once a class loader is registered as parallel capable, there
+ * is no way to change it back. </p>
*
* @return true if the caller is successfully registered as
* parallel capable and false if otherwise.
--- a/jdk/src/share/classes/java/lang/Integer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/lang/Integer.java Tue Nov 02 22:15:35 2010 -0700
@@ -586,25 +586,13 @@
* Cache to support the object identity semantics of autoboxing for values between
* -128 and 127 (inclusive) as required by JLS.
*
- * The cache is initialized on first usage. During VM initialization the
- * getAndRemoveCacheProperties method may be used to get and remove any system
- * properites that configure the cache size. At this time, the size of the
- * cache may be controlled by the -XX:AutoBoxCacheMax=<size> option.
+ * The cache is initialized on first usage. The size of the cache
+ * may be controlled by the -XX:AutoBoxCacheMax=<size> option.
+ * During VM initialization, java.lang.Integer.IntegerCache.high property
+ * may be set and saved in the private system properties in the
+ * sun.misc.VM class.
*/
- // value of java.lang.Integer.IntegerCache.high property (obtained during VM init)
- private static String integerCacheHighPropValue;
-
- static void getAndRemoveCacheProperties() {
- if (!sun.misc.VM.isBooted()) {
- Properties props = System.getProperties();
- integerCacheHighPropValue =
- (String)props.remove("java.lang.Integer.IntegerCache.high");
- if (integerCacheHighPropValue != null)
- System.setProperties(props); // remove from system props
- }
- }
-
private static class IntegerCache {
static final int low = -128;
static final int high;
@@ -613,6 +601,8 @@
static {
// high value may be configured by property
int h = 127;
+ String integerCacheHighPropValue =
+ sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) {
int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127);
--- a/jdk/src/share/classes/java/lang/LinkageError.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/lang/LinkageError.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package java.lang;
/**
- * Subclasses of <code>LinkageError</code> indicate that a class has
+ * Subclasses of {@code LinkageError} indicate that a class has
* some dependency on another class; however, the latter class has
* incompatibly changed after the compilation of the former class.
*
@@ -39,14 +39,14 @@
private static final long serialVersionUID = 3579600108157160122L;
/**
- * Constructs a <code>LinkageError</code> with no detail message.
+ * Constructs a {@code LinkageError} with no detail message.
*/
public LinkageError() {
super();
}
/**
- * Constructs a <code>LinkageError</code> with the specified detail
+ * Constructs a {@code LinkageError} with the specified detail
* message.
*
* @param s the detail message.
@@ -54,4 +54,16 @@
public LinkageError(String s) {
super(s);
}
+
+ /**
+ * Constructs a {@code LinkageError} with the specified detail
+ * message and cause.
+ *
+ * @param s the detail message.
+ * @param cause the cause, may be {@code null}
+ * @since 1.7
+ */
+ public LinkageError(String s, Throwable cause) {
+ super(s, cause);
+ }
}
--- a/jdk/src/share/classes/java/lang/System.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/lang/System.java Tue Nov 02 22:15:35 2010 -0700
@@ -53,7 +53,13 @@
*/
public final class System {
- /* First thing---register the natives */
+ /* register the natives via the static initializer.
+ *
+ * VM will invoke the initializeSystemClass method to complete
+ * the initialization for this class separated from clinit.
+ * Note that to use properties set by the VM, see the constraints
+ * described in the initializeSystemClass method.
+ */
private static native void registerNatives();
static {
registerNatives();
@@ -1096,17 +1102,21 @@
* Initialize the system class. Called after thread initialization.
*/
private static void initializeSystemClass() {
- props = new Properties();
- initProperties(props);
+ // There are certain system configurations that may be controlled by
+ // VM options such as the maximum amount of direct memory and
+ // Integer cache size used to support the object identity semantics
+ // of autoboxing. Typically, the library will obtain these values
+ // from the properties set by the VM. If the properties are for
+ // internal implementation use only, these properties should be
+ // removed from the system properties.
+ //
+ // See java.lang.Integer.IntegerCache and the
+ // sun.misc.VM.saveAndRemoveProperties method for example.
+ props = initSystemProperties();
+
lineSeparator = props.getProperty("line.separator");
sun.misc.Version.init();
- // Gets and removes system properties that configure the Integer
- // cache used to support the object identity semantics of autoboxing.
- // At this time, the size of the cache may be controlled by the
- // vm option -XX:AutoBoxCacheMax=<size>.
- Integer.getAndRemoveCacheProperties();
-
FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
@@ -1127,17 +1137,6 @@
// classes are used.
sun.misc.VM.initializeOSEnvironment();
- // Set the maximum amount of direct memory. This value is controlled
- // by the vm option -XX:MaxDirectMemorySize=<size>. This method acts
- // as an initializer only if it is called before sun.misc.VM.booted().
- sun.misc.VM.maxDirectMemory();
-
- // Set a boolean to determine whether ClassLoader.loadClass accepts
- // array syntax. This value is controlled by the system property
- // "sun.lang.ClassLoader.allowArraySyntax". This method acts as
- // an initializer only if it is called before sun.misc.VM.booted().
- sun.misc.VM.allowArraySyntax();
-
// Subsystems that are invoked during initialization can invoke
// sun.misc.VM.isBooted() in order to avoid doing things that should
// wait until the application class loader has been set up.
@@ -1152,6 +1151,18 @@
setJavaLangAccess();
}
+ private static Properties initSystemProperties() {
+ Properties props = new Properties();
+ initProperties(props); // initialized by the VM
+
+ // Save a private copy of the system properties object that
+ // can only be accessed by the internal implementation. Remove
+ // certain system properties that are not intended for public access.
+ sun.misc.VM.saveAndRemoveProperties(props);
+
+ return props;
+ }
+
private static void setJavaLangAccess() {
// Allow privileged classes outside of java.lang
sun.misc.SharedSecrets.setJavaLangAccess(new sun.misc.JavaLangAccess(){
--- a/jdk/src/share/classes/java/net/HttpURLConnection.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/net/HttpURLConnection.java Tue Nov 02 22:15:35 2010 -0700
@@ -399,6 +399,8 @@
* @param method the HTTP method
* @exception ProtocolException if the method cannot be reset or if
* the requested method isn't valid for HTTP.
+ * @exception SecurityException if a security manager is set and the
+ * "allowHttpTrace" NetPermission is not granted.
* @see #getRequestMethod()
*/
public void setRequestMethod(String method) throws ProtocolException {
@@ -412,6 +414,12 @@
for (int i = 0; i < methods.length; i++) {
if (methods[i].equals(method)) {
+ if (method.equals("TRACE")) {
+ SecurityManager s = System.getSecurityManager();
+ if (s != null) {
+ s.checkPermission(new NetPermission("allowHttpTrace"));
+ }
+ }
this.method = method;
return;
}
--- a/jdk/src/share/classes/java/net/NetPermission.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/net/NetPermission.java Tue Nov 02 22:15:35 2010 -0700
@@ -54,44 +54,23 @@
* <th>What the Permission Allows</th>
* <th>Risks of Allowing this Permission</th>
* </tr>
- *
* <tr>
- * <td>setDefaultAuthenticator</td>
- * <td>The ability to set the
- * way authentication information is retrieved when
- * a proxy or HTTP server asks for authentication</td>
- * <td>Malicious
- * code can set an authenticator that monitors and steals user
- * authentication input as it retrieves the input from the user.</td>
- * </tr>
+ * <td>allowHttpTrace</td>
+ * <td>The ability to use the HTTP TRACE method in HttpURLConnection.</td>
+ * <td>Malicious code using HTTP TRACE could get access to security sensitive
+ * information in the HTTP headers (such as cookies) that it might not
+ * otherwise have access to.</td>
+ * </tr>
*
* <tr>
- * <td>requestPasswordAuthentication</td>
- * <td>The ability
- * to ask the authenticator registered with the system for
- * a password</td>
- * <td>Malicious code may steal this password.</td>
- * </tr>
- *
- * <tr>
- * <td>specifyStreamHandler</td>
- * <td>The ability
- * to specify a stream handler when constructing a URL</td>
- * <td>Malicious code may create a URL with resources that it would
-normally not have access to (like file:/foo/fum/), specifying a
-stream handler that gets the actual bytes from someplace it does
-have access to. Thus it might be able to trick the system into
-creating a ProtectionDomain/CodeSource for a class even though
-that class really didn't come from that location.</td>
- * </tr>
- *
- * <tr>
- * <td>setProxySelector</td>
- * <td>The ability to set the proxy selector used to make decisions
- * on which proxies to use when making network connections.</td>
- * <td>Malicious code can set a ProxySelector that directs network
- * traffic to an arbitrary network host.</td>
- * </tr>
+ * <td>getCookieHandler</td>
+ * <td>The ability to get the cookie handler that processes highly
+ * security sensitive cookie information for an Http session.</td>
+ * <td>Malicious code can get a cookie handler to obtain access to
+ * highly security sensitive cookie information. Some web servers
+ * use cookies to save user private information such as access
+ * control information, or to track user browsing habit.</td>
+ * </tr>
*
* <tr>
* <td>getProxySelector</td>
@@ -103,6 +82,22 @@
* </tr>
*
* <tr>
+ * <td>getResponseCache</td>
+ * <td>The ability to get the response cache that provides
+ * access to a local response cache.</td>
+ * <td>Malicious code getting access to the local response cache
+ * could access security sensitive information.</td>
+ * </tr>
+ *
+ * <tr>
+ * <td>requestPasswordAuthentication</td>
+ * <td>The ability
+ * to ask the authenticator registered with the system for
+ * a password</td>
+ * <td>Malicious code may steal this password.</td>
+ * </tr>
+ *
+ * <tr>
* <td>setCookieHandler</td>
* <td>The ability to set the cookie handler that processes highly
* security sensitive cookie information for an Http session.</td>
@@ -113,14 +108,22 @@
* </tr>
*
* <tr>
- * <td>getCookieHandler</td>
- * <td>The ability to get the cookie handler that processes highly
- * security sensitive cookie information for an Http session.</td>
- * <td>Malicious code can get a cookie handler to obtain access to
- * highly security sensitive cookie information. Some web servers
- * use cookies to save user private information such as access
- * control information, or to track user browsing habit.</td>
- * </tr>
+ * <td>setDefaultAuthenticator</td>
+ * <td>The ability to set the
+ * way authentication information is retrieved when
+ * a proxy or HTTP server asks for authentication</td>
+ * <td>Malicious
+ * code can set an authenticator that monitors and steals user
+ * authentication input as it retrieves the input from the user.</td>
+ * </tr>
+ *
+ * <tr>
+ * <td>setProxySelector</td>
+ * <td>The ability to set the proxy selector used to make decisions
+ * on which proxies to use when making network connections.</td>
+ * <td>Malicious code can set a ProxySelector that directs network
+ * traffic to an arbitrary network host.</td>
+ * </tr>
*
* <tr>
* <td>setResponseCache</td>
@@ -132,13 +135,16 @@
* </tr>
*
* <tr>
- * <td>getResponseCache</td>
- * <td>The ability to get the response cache that provides
- * access to a local response cache.</td>
- * <td>Malicious code getting access to the local response cache
- * could access security sensitive information.</td>
- * </tr>
- *
+ * <td>specifyStreamHandler</td>
+ * <td>The ability
+ * to specify a stream handler when constructing a URL</td>
+ * <td>Malicious code may create a URL with resources that it would
+normally not have access to (like file:/foo/fum/), specifying a
+stream handler that gets the actual bytes from someplace it does
+have access to. Thus it might be able to trick the system into
+creating a ProtectionDomain/CodeSource for a class even though
+that class really didn't come from that location.</td>
+ * </tr>
* </table>
*
* @see java.security.BasicPermission
--- a/jdk/src/share/classes/java/net/NetworkInterface.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/net/NetworkInterface.java Tue Nov 02 22:15:35 2010 -0700
@@ -86,7 +86,9 @@
* If there is a security manager, its <code>checkConnect</code>
* method is called for each InetAddress. Only InetAddresses where
* the <code>checkConnect</code> doesn't throw a SecurityException
- * will be returned in the Enumeration.
+ * will be returned in the Enumeration. However, if the caller has the
+ * {@link NetPermission}("getNetworkInformation") permission, then all
+ * InetAddresses are returned.
* @return an Enumeration object with all or a subset of the InetAddresses
* bound to this network interface
*/
@@ -99,11 +101,19 @@
checkedAddresses() {
local_addrs = new InetAddress[addrs.length];
+ boolean trusted = true;
SecurityManager sec = System.getSecurityManager();
+ if (sec != null) {
+ try {
+ sec.checkPermission(new NetPermission("getNetworkInformation"));
+ } catch (SecurityException e) {
+ trusted = false;
+ }
+ }
for (int j=0; j<addrs.length; j++) {
try {
- if (sec != null) {
+ if (sec != null && !trusted) {
sec.checkConnect(addrs[j].getHostAddress(), -1);
}
local_addrs[count++] = addrs[j];
@@ -402,13 +412,29 @@
/**
* Returns the hardware address (usually MAC) of the interface if it
* has one and if it can be accessed given the current privileges.
+ * If a security manager is set, then the caller must have
+ * the permission {@link NetPermission}("getNetworkInformation").
*
- * @return a byte array containing the address or <code>null</code> if
- * the address doesn't exist or is not accessible.
+ * @return a byte array containing the address, or <code>null</code> if
+ * the address doesn't exist, is not accessible or a security
+ * manager is set and the caller does not have the permission
+ * NetPermission("getNetworkInformation")
+ *
* @exception SocketException if an I/O error occurs.
* @since 1.6
*/
public byte[] getHardwareAddress() throws SocketException {
+ SecurityManager sec = System.getSecurityManager();
+ if (sec != null) {
+ try {
+ sec.checkPermission(new NetPermission("getNetworkInformation"));
+ } catch (SecurityException e) {
+ if (!getInetAddresses().hasMoreElements()) {
+ // don't have connect permission to any local address
+ return null;
+ }
+ }
+ }
for (InetAddress addr : addrs) {
if (addr instanceof Inet4Address) {
return getMacAddr0(((Inet4Address)addr).getAddress(), name, index);
@@ -523,11 +549,10 @@
}
public int hashCode() {
- int count = 0;
- if (addrs != null) {
- for (int i = 0; i < addrs.length; i++) {
- count += addrs[i].hashCode();
- }
+ int count = name == null? 0: name.hashCode();
+ Enumeration<InetAddress> addrs = getInetAddresses();
+ while (addrs.hasMoreElements()) {
+ count += addrs.nextElement().hashCode();
}
return count;
}
--- a/jdk/src/share/classes/java/nio/Bits.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/nio/Bits.java Tue Nov 02 22:15:35 2010 -0700
@@ -622,7 +622,7 @@
// initialization if it is launched with "-XX:MaxDirectMemorySize=<size>".
private static volatile long maxMemory = VM.maxDirectMemory();
private static volatile long reservedMemory;
- private static volatile long usedMemory;
+ private static volatile long totalCapacity;
private static volatile long count;
private static boolean memoryLimitSet = false;
@@ -630,15 +630,17 @@
// freed. They allow the user to control the amount of direct memory
// which a process may access. All sizes are specified in bytes.
static void reserveMemory(long size, int cap) {
-
synchronized (Bits.class) {
if (!memoryLimitSet && VM.isBooted()) {
maxMemory = VM.maxDirectMemory();
memoryLimitSet = true;
}
- if (size <= maxMemory - reservedMemory) {
+ // -XX:MaxDirectMemorySize limits the total capacity rather than the
+ // actual memory usage, which will differ when buffers are page
+ // aligned.
+ if (cap <= maxMemory - totalCapacity) {
reservedMemory += size;
- usedMemory += cap;
+ totalCapacity += cap;
count++;
return;
}
@@ -652,10 +654,10 @@
Thread.currentThread().interrupt();
}
synchronized (Bits.class) {
- if (reservedMemory + size > maxMemory)
+ if (totalCapacity + cap > maxMemory)
throw new OutOfMemoryError("Direct buffer memory");
reservedMemory += size;
- usedMemory += cap;
+ totalCapacity += cap;
count++;
}
@@ -664,7 +666,7 @@
static synchronized void unreserveMemory(long size, int cap) {
if (reservedMemory > 0) {
reservedMemory -= size;
- usedMemory -= cap;
+ totalCapacity -= cap;
count--;
assert (reservedMemory > -1);
}
@@ -689,7 +691,7 @@
}
@Override
public long getTotalCapacity() {
- return Bits.usedMemory;
+ return Bits.totalCapacity;
}
@Override
public long getMemoryUsed() {
--- a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template Tue Nov 02 22:15:35 2010 -0700
@@ -29,6 +29,7 @@
import sun.misc.Cleaner;
import sun.misc.Unsafe;
+import sun.misc.VM;
import sun.nio.ch.DirectBuffer;
@@ -114,8 +115,9 @@
Direct$Type$Buffer$RW$(int cap) { // package-private
#if[rw]
super(-1, 0, cap, cap, false);
+ boolean pa = VM.isDirectMemoryPageAligned();
int ps = Bits.pageSize();
- int size = cap + ps;
+ long size = Math.max(1L, (long)cap + (pa ? ps : 0));
Bits.reserveMemory(size, cap);
long base = 0;
@@ -126,7 +128,7 @@
throw x;
}
unsafe.setMemory(base, size, (byte) 0);
- if (base % ps != 0) {
+ if (pa && (base % ps != 0)) {
// Round up to page boundary
address = base + ps - (base & (ps - 1));
} else {
--- a/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,8 +61,8 @@
*/
private final CRLReason reason;
/**
- * @serial the name of the authority that signed the certificate's
- * revocation status information
+ * @serial the <code>X500Principal</code> that represents the name of the
+ * authority that signed the certificate's revocation status information
*/
private final X500Principal authority;
@@ -79,8 +79,9 @@
* @param extensions a map of X.509 Extensions. Each key is an OID String
* that maps to the corresponding Extension. The map is copied to
* prevent subsequent modification.
- * @param authority the name of the authority that signed the certificate's
- * revocation status information
+ * @param authority the <code>X500Principal</code> that represents the name
+ * of the authority that signed the certificate's revocation status
+ * information
* @throws NullPointerException if <code>revocationDate</code>,
* <code>reason</code>, <code>authority</code>, or
* <code>extensions</code> is <code>null</code>
@@ -121,8 +122,8 @@
* Returns the name of the authority that signed the certificate's
* revocation status information.
*
- * @return the name of the authority that signed the certificate's
- * revocation status information
+ * @return the <code>X500Principal</code> that represents the name of the
+ * authority that signed the certificate's revocation status information
*/
public X500Principal getAuthorityName() {
return authority;
--- a/jdk/src/share/classes/java/text/RuleBasedCollator.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/text/RuleBasedCollator.java Tue Nov 02 22:15:35 2010 -0700
@@ -335,9 +335,15 @@
* collation rules. Returns information about whether a string is less
* than, greater than or equal to another string in a language.
* This can be overriden in a subclass.
+ *
+ * @exception NullPointerException if <code>source</code> or <code>target</code> is null.
*/
public synchronized int compare(String source, String target)
{
+ if (source == null || target == null) {
+ throw new NullPointerException();
+ }
+
// The basic algorithm here is that we use CollationElementIterators
// to step through both the source and target strings. We compare each
// collation element in the source string against the corresponding one
--- a/jdk/src/share/classes/java/util/Arrays.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/Arrays.java Tue Nov 02 22:15:35 2010 -0700
@@ -97,7 +97,8 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(int[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/**
@@ -136,7 +137,8 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(long[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/**
@@ -175,7 +177,8 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(short[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/**
@@ -214,7 +217,8 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(char[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/**
@@ -253,7 +257,8 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(byte[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/**
@@ -308,7 +313,8 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(float[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/**
@@ -363,12 +369,12 @@
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(double[] a, int fromIndex, int toIndex) {
- DualPivotQuicksort.sort(a, fromIndex, toIndex);
+ rangeCheck(a.length, fromIndex, toIndex);
+ DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
/*
* Sorting of complex type arrays.
- *
*/
/**
--- a/jdk/src/share/classes/java/util/DualPivotQuicksort.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/DualPivotQuicksort.java Tue Nov 02 22:15:35 2010 -0700
@@ -36,7 +36,7 @@
* @author Jon Bentley
* @author Josh Bloch
*
- * @version 2010.06.21 m765.827.12i:5\7
+ * @version 2010.10.13 m765.827.12i:5\7p
* @since 1.7
*/
final class DualPivotQuicksort {
@@ -54,26 +54,26 @@
* If the length of an array to be sorted is less than this
* constant, insertion sort is used in preference to Quicksort.
*/
- private static final int INSERTION_SORT_THRESHOLD = 32;
+ private static final int INSERTION_SORT_THRESHOLD = 47;
/**
- * If the length of a byte array to be sorted is greater than
- * this constant, counting sort is used in preference to Quicksort.
+ * If the length of a byte array to be sorted is greater than this
+ * constant, counting sort is used in preference to insertion sort.
*/
- private static final int COUNTING_SORT_THRESHOLD_FOR_BYTE = 128;
+ private static final int COUNTING_SORT_THRESHOLD_FOR_BYTE = 29;
/**
* If the length of a short or char array to be sorted is greater
* than this constant, counting sort is used in preference to Quicksort.
*/
- private static final int COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR = 32768;
+ private static final int COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR = 3200;
/*
* Sorting methods for seven primitive types.
*/
/**
- * Sorts the specified array into ascending numerical order.
+ * Sorts the specified array.
*
* @param a the array to be sorted
*/
@@ -82,58 +82,34 @@
}
/**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
- */
- public static void sort(int[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
- sort(a, fromIndex, toIndex - 1, true);
- }
-
- /**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
+ */
+ public static void sort(int[] a, int left, int right) {
+ sort(a, left, right, true);
+ }
+
+ /**
+ * Sorts the specified range of the array by Dual-Pivot Quicksort.
+ *
+ * @param a the array to be sorted
+ * @param left the index of the first element, inclusive, to be sorted
+ * @param right the index of the last element, inclusive, to be sorted
+ * @param leftmost indicates if this part is the leftmost in the range
*/
private static void sort(int[] a, int left, int right, boolean leftmost) {
int length = right - left + 1;
- // Use insertion sort on tiny arrays
+ // Use insertion sort on small arrays
if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
+ if (leftmost) {
/*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- int ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
+ * Traditional (without sentinel) insertion sort,
+ * optimized for server VM, is used in case of
+ * the leftmost part.
*/
for (int i = left, j = i; i < right; j = ++i) {
int ai = a[i + 1];
@@ -145,12 +121,54 @@
}
a[j + 1] = ai;
}
+ } else {
+ /*
+ * Skip the longest ascending sequence.
+ */
+ do {
+ if (left++ >= right) {
+ return;
+ }
+ } while (a[left - 1] <= a[left]);
+
+ /*
+ * Every element from adjoining part plays the role
+ * of sentinel, therefore this allows us to avoid the
+ * left range check on each iteration. Moreover, we use
+ * the best improved algorithm, so called pair insertion
+ * sort, which is faster than traditional implementation
+ * in the context of Dual-Pivot Quicksort.
+ */
+ for (int k = left--; (left += 2) <= right; ) {
+ int a1, a2; k = left - 1;
+
+ if (a[k] < a[left]) {
+ a2 = a[k]; a1 = a[left];
+ } else {
+ a1 = a[k]; a2 = a[left];
+ }
+ while (a1 < a[--k]) {
+ a[k + 2] = a[k];
+ }
+ a[++k + 1] = a1;
+
+ while (a2 < a[--k]) {
+ a[k + 1] = a[k];
+ }
+ a[k + 1] = a2;
+ }
+ int last = a[right];
+
+ while (last < a[--right]) {
+ a[right + 1] = a[right];
+ }
+ a[right + 1] = last;
}
return;
}
// Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
+ int seventh = (length >> 3) + (length >> 6) + 1;
/*
* Sort five evenly spaced elements around (and including) the
@@ -232,10 +250,14 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
int ak = a[k];
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
+ /*
+ * Here and below we use "a[i] = b; i++;" instead
+ * of "a[i++] = b;" due to performance issue.
+ */
a[less] = ak;
less++;
} else if (ak > pivot2) { // Move a[k] to right part
@@ -244,13 +266,17 @@
break outer;
}
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot2
a[k] = a[less];
a[less] = a[great];
less++;
} else { // pivot1 <= a[great] <= pivot2
a[k] = a[great];
}
+ /*
+ * Here and below we use "a[i] = b; i--;" instead
+ * of "a[i--] = b;" due to performance issue.
+ */
a[great] = ak;
great--;
}
@@ -265,7 +291,7 @@
sort(a, great + 2, right, false);
/*
- * If center part is too large (comprises > 5/7 of the array),
+ * If center part is too large (comprises > 4/7 of the array),
* swap internal pivot values to ends.
*/
if (less < e1 && e5 < great) {
@@ -299,7 +325,7 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
int ak = a[k];
if (ak == pivot1) { // Move a[k] to left part
a[k] = a[less];
@@ -311,7 +337,7 @@
break outer;
}
}
- if (a[great] == pivot1) {
+ if (a[great] == pivot1) { // a[great] < pivot2
a[k] = a[less];
/*
* Even though a[great] equals to pivot1, the
@@ -337,7 +363,7 @@
} else { // Pivots are equal
/*
- * Partition degenerates to the traditional 3-way
+ * Partitioning degenerates to the traditional 3-way
* (or "Dutch National Flag") schema:
*
* left part center part right part
@@ -356,28 +382,20 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left; k <= great; k++) {
+ for (int k = less; k <= great; ++k) {
if (a[k] == pivot1) {
continue;
}
int ak = a[k];
-
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
a[less] = ak;
less++;
} else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
while (a[great] > pivot1) {
- // assert great > k;
great--;
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot1
a[k] = a[less];
a[less] = a[great];
less++;
@@ -397,14 +415,18 @@
}
}
- // Sort left and right parts recursively
+ /*
+ * Sort left and right parts recursively.
+ * All elements from center part are equal
+ * and, therefore, already sorted.
+ */
sort(a, left, less - 1, leftmost);
sort(a, great + 1, right, false);
}
}
/**
- * Sorts the specified array into ascending numerical order.
+ * Sorts the specified array.
*
* @param a the array to be sorted
*/
@@ -413,58 +435,34 @@
}
/**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
- */
- public static void sort(long[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
- sort(a, fromIndex, toIndex - 1, true);
- }
-
- /**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
+ */
+ public static void sort(long[] a, int left, int right) {
+ sort(a, left, right, true);
+ }
+
+ /**
+ * Sorts the specified range of the array by Dual-Pivot Quicksort.
+ *
+ * @param a the array to be sorted
+ * @param left the index of the first element, inclusive, to be sorted
+ * @param right the index of the last element, inclusive, to be sorted
+ * @param leftmost indicates if this part is the leftmost in the range
*/
private static void sort(long[] a, int left, int right, boolean leftmost) {
int length = right - left + 1;
- // Use insertion sort on tiny arrays
+ // Use insertion sort on small arrays
if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
+ if (leftmost) {
/*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- long ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
+ * Traditional (without sentinel) insertion sort,
+ * optimized for server VM, is used in case of
+ * the leftmost part.
*/
for (int i = left, j = i; i < right; j = ++i) {
long ai = a[i + 1];
@@ -476,12 +474,54 @@
}
a[j + 1] = ai;
}
+ } else {
+ /*
+ * Skip the longest ascending sequence.
+ */
+ do {
+ if (left++ >= right) {
+ return;
+ }
+ } while (a[left - 1] <= a[left]);
+
+ /*
+ * Every element from adjoining part plays the role
+ * of sentinel, therefore this allows us to avoid the
+ * left range check on each iteration. Moreover, we use
+ * the best improved algorithm, so called pair insertion
+ * sort, which is faster than traditional implementation
+ * in the context of Dual-Pivot Quicksort.
+ */
+ for (int k = left--; (left += 2) <= right; ) {
+ long a1, a2; k = left - 1;
+
+ if (a[k] < a[left]) {
+ a2 = a[k]; a1 = a[left];
+ } else {
+ a1 = a[k]; a2 = a[left];
+ }
+ while (a1 < a[--k]) {
+ a[k + 2] = a[k];
+ }
+ a[++k + 1] = a1;
+
+ while (a2 < a[--k]) {
+ a[k + 1] = a[k];
+ }
+ a[k + 1] = a2;
+ }
+ long last = a[right];
+
+ while (last < a[--right]) {
+ a[right + 1] = a[right];
+ }
+ a[right + 1] = last;
}
return;
}
// Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
+ int seventh = (length >> 3) + (length >> 6) + 1;
/*
* Sort five evenly spaced elements around (and including) the
@@ -563,10 +603,14 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
long ak = a[k];
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
+ /*
+ * Here and below we use "a[i] = b; i++;" instead
+ * of "a[i++] = b;" due to performance issue.
+ */
a[less] = ak;
less++;
} else if (ak > pivot2) { // Move a[k] to right part
@@ -575,13 +619,17 @@
break outer;
}
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot2
a[k] = a[less];
a[less] = a[great];
less++;
} else { // pivot1 <= a[great] <= pivot2
a[k] = a[great];
}
+ /*
+ * Here and below we use "a[i] = b; i--;" instead
+ * of "a[i--] = b;" due to performance issue.
+ */
a[great] = ak;
great--;
}
@@ -596,7 +644,7 @@
sort(a, great + 2, right, false);
/*
- * If center part is too large (comprises > 5/7 of the array),
+ * If center part is too large (comprises > 4/7 of the array),
* swap internal pivot values to ends.
*/
if (less < e1 && e5 < great) {
@@ -630,7 +678,7 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
long ak = a[k];
if (ak == pivot1) { // Move a[k] to left part
a[k] = a[less];
@@ -642,7 +690,7 @@
break outer;
}
}
- if (a[great] == pivot1) {
+ if (a[great] == pivot1) { // a[great] < pivot2
a[k] = a[less];
/*
* Even though a[great] equals to pivot1, the
@@ -668,7 +716,7 @@
} else { // Pivots are equal
/*
- * Partition degenerates to the traditional 3-way
+ * Partitioning degenerates to the traditional 3-way
* (or "Dutch National Flag") schema:
*
* left part center part right part
@@ -687,28 +735,20 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left; k <= great; k++) {
+ for (int k = less; k <= great; ++k) {
if (a[k] == pivot1) {
continue;
}
long ak = a[k];
-
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
a[less] = ak;
less++;
} else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
while (a[great] > pivot1) {
- // assert great > k;
great--;
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot1
a[k] = a[less];
a[less] = a[great];
less++;
@@ -728,45 +768,51 @@
}
}
- // Sort left and right parts recursively
+ /*
+ * Sort left and right parts recursively.
+ * All elements from center part are equal
+ * and, therefore, already sorted.
+ */
sort(a, left, less - 1, leftmost);
sort(a, great + 1, right, false);
}
}
/**
- * Sorts the specified array into ascending numerical order.
+ * Sorts the specified array.
*
* @param a the array to be sorted
*/
public static void sort(short[] a) {
- if (a.length > COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR) {
- countingSort(a, 0, a.length - 1);
- } else {
- sort(a, 0, a.length - 1, true);
- }
+ sort(a, 0, a.length - 1);
}
/**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
+ * @param left the index of the first element, inclusive, to be sorted
+ * @param right the index of the last element, inclusive, to be sorted
*/
- public static void sort(short[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
+ public static void sort(short[] a, int left, int right) {
+ // Use counting sort on large arrays
+ if (right - left > COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR) {
+ int[] count = new int[NUM_SHORT_VALUES];
- if (toIndex - fromIndex > COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR) {
- countingSort(a, fromIndex, toIndex - 1);
- } else {
- sort(a, fromIndex, toIndex - 1, true);
+ for (int i = left - 1; ++i <= right; ) {
+ count[a[i] - Short.MIN_VALUE]++;
+ }
+ for (int i = NUM_SHORT_VALUES, k = right + 1; k > left; ) {
+ while (count[--i] == 0);
+ short value = (short) (i + Short.MIN_VALUE);
+ int s = count[i];
+
+ do {
+ a[--k] = value;
+ } while (--s > 0);
+ }
+ } else { // Use Dual-Pivot Quicksort on small arrays
+ sort(a, left, right, true);
}
}
@@ -774,66 +820,23 @@
private static final int NUM_SHORT_VALUES = 1 << 16;
/**
- * Sorts the specified range of the array by counting sort.
+ * Sorts the specified range of the array by Dual-Pivot Quicksort.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
- */
- private static void countingSort(short[] a, int left, int right) {
- int[] count = new int[NUM_SHORT_VALUES];
-
- for (int i = left; i <= right; i++) {
- count[a[i] - Short.MIN_VALUE]++;
- }
- for (int i = NUM_SHORT_VALUES - 1, k = right; k >= left; i--) {
- while (count[i] == 0) {
- i--;
- }
- short value = (short) (i + Short.MIN_VALUE);
- int s = count[i];
-
- do {
- a[k--] = value;
- } while (--s > 0);
- }
- }
-
- /**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
- *
- * @param a the array to be sorted
- * @param left the index of the first element, inclusive, to be sorted
- * @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
+ * @param leftmost indicates if this part is the leftmost in the range
*/
private static void sort(short[] a, int left, int right,boolean leftmost) {
int length = right - left + 1;
- // Use insertion sort on tiny arrays
+ // Use insertion sort on small arrays
if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
+ if (leftmost) {
/*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- short ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
+ * Traditional (without sentinel) insertion sort,
+ * optimized for server VM, is used in case of
+ * the leftmost part.
*/
for (int i = left, j = i; i < right; j = ++i) {
short ai = a[i + 1];
@@ -845,12 +848,54 @@
}
a[j + 1] = ai;
}
+ } else {
+ /*
+ * Skip the longest ascending sequence.
+ */
+ do {
+ if (left++ >= right) {
+ return;
+ }
+ } while (a[left - 1] <= a[left]);
+
+ /*
+ * Every element from adjoining part plays the role
+ * of sentinel, therefore this allows us to avoid the
+ * left range check on each iteration. Moreover, we use
+ * the best improved algorithm, so called pair insertion
+ * sort, which is faster than traditional implementation
+ * in the context of Dual-Pivot Quicksort.
+ */
+ for (int k = left--; (left += 2) <= right; ) {
+ short a1, a2; k = left - 1;
+
+ if (a[k] < a[left]) {
+ a2 = a[k]; a1 = a[left];
+ } else {
+ a1 = a[k]; a2 = a[left];
+ }
+ while (a1 < a[--k]) {
+ a[k + 2] = a[k];
+ }
+ a[++k + 1] = a1;
+
+ while (a2 < a[--k]) {
+ a[k + 1] = a[k];
+ }
+ a[k + 1] = a2;
+ }
+ short last = a[right];
+
+ while (last < a[--right]) {
+ a[right + 1] = a[right];
+ }
+ a[right + 1] = last;
}
return;
}
// Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
+ int seventh = (length >> 3) + (length >> 6) + 1;
/*
* Sort five evenly spaced elements around (and including) the
@@ -932,10 +977,14 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
short ak = a[k];
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
+ /*
+ * Here and below we use "a[i] = b; i++;" instead
+ * of "a[i++] = b;" due to performance issue.
+ */
a[less] = ak;
less++;
} else if (ak > pivot2) { // Move a[k] to right part
@@ -944,13 +993,17 @@
break outer;
}
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot2
a[k] = a[less];
a[less] = a[great];
less++;
} else { // pivot1 <= a[great] <= pivot2
a[k] = a[great];
}
+ /*
+ * Here and below we use "a[i] = b; i--;" instead
+ * of "a[i--] = b;" due to performance issue.
+ */
a[great] = ak;
great--;
}
@@ -965,7 +1018,7 @@
sort(a, great + 2, right, false);
/*
- * If center part is too large (comprises > 5/7 of the array),
+ * If center part is too large (comprises > 4/7 of the array),
* swap internal pivot values to ends.
*/
if (less < e1 && e5 < great) {
@@ -999,7 +1052,7 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
short ak = a[k];
if (ak == pivot1) { // Move a[k] to left part
a[k] = a[less];
@@ -1011,7 +1064,7 @@
break outer;
}
}
- if (a[great] == pivot1) {
+ if (a[great] == pivot1) { // a[great] < pivot2
a[k] = a[less];
/*
* Even though a[great] equals to pivot1, the
@@ -1037,7 +1090,7 @@
} else { // Pivots are equal
/*
- * Partition degenerates to the traditional 3-way
+ * Partitioning degenerates to the traditional 3-way
* (or "Dutch National Flag") schema:
*
* left part center part right part
@@ -1056,28 +1109,20 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left; k <= great; k++) {
+ for (int k = less; k <= great; ++k) {
if (a[k] == pivot1) {
continue;
}
short ak = a[k];
-
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
a[less] = ak;
less++;
} else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
while (a[great] > pivot1) {
- // assert great > k;
great--;
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot1
a[k] = a[less];
a[less] = a[great];
less++;
@@ -1097,45 +1142,51 @@
}
}
- // Sort left and right parts recursively
+ /*
+ * Sort left and right parts recursively.
+ * All elements from center part are equal
+ * and, therefore, already sorted.
+ */
sort(a, left, less - 1, leftmost);
sort(a, great + 1, right, false);
}
}
/**
- * Sorts the specified array into ascending numerical order.
+ * Sorts the specified array.
*
* @param a the array to be sorted
*/
public static void sort(char[] a) {
- if (a.length > COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR) {
- countingSort(a, 0, a.length - 1);
- } else {
- sort(a, 0, a.length - 1, true);
- }
+ sort(a, 0, a.length - 1);
}
/**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
+ * @param left the index of the first element, inclusive, to be sorted
+ * @param right the index of the last element, inclusive, to be sorted
*/
- public static void sort(char[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
+ public static void sort(char[] a, int left, int right) {
+ // Use counting sort on large arrays
+ if (right - left > COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR) {
+ int[] count = new int[NUM_CHAR_VALUES];
- if (toIndex - fromIndex > COUNTING_SORT_THRESHOLD_FOR_SHORT_OR_CHAR) {
- countingSort(a, fromIndex, toIndex - 1);
- } else {
- sort(a, fromIndex, toIndex - 1, true);
+ for (int i = left - 1; ++i <= right; ) {
+ count[a[i]]++;
+ }
+ for (int i = NUM_CHAR_VALUES, k = right + 1; k > left; ) {
+ while (count[--i] == 0);
+ char value = (char) i;
+ int s = count[i];
+
+ do {
+ a[--k] = value;
+ } while (--s > 0);
+ }
+ } else { // Use Dual-Pivot Quicksort on small arrays
+ sort(a, left, right, true);
}
}
@@ -1143,66 +1194,23 @@
private static final int NUM_CHAR_VALUES = 1 << 16;
/**
- * Sorts the specified range of the array by counting sort.
+ * Sorts the specified range of the array by Dual-Pivot Quicksort.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
- */
- private static void countingSort(char[] a, int left, int right) {
- int[] count = new int[NUM_CHAR_VALUES];
-
- for (int i = left; i <= right; i++) {
- count[a[i]]++;
- }
- for (int i = 0, k = left; k <= right; i++) {
- while (count[i] == 0) {
- i++;
- }
- char value = (char) i;
- int s = count[i];
-
- do {
- a[k++] = value;
- } while (--s > 0);
- }
- }
-
- /**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
- *
- * @param a the array to be sorted
- * @param left the index of the first element, inclusive, to be sorted
- * @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
+ * @param leftmost indicates if this part is the leftmost in the range
*/
private static void sort(char[] a, int left, int right, boolean leftmost) {
int length = right - left + 1;
- // Use insertion sort on tiny arrays
+ // Use insertion sort on small arrays
if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
+ if (leftmost) {
/*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- char ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
+ * Traditional (without sentinel) insertion sort,
+ * optimized for server VM, is used in case of
+ * the leftmost part.
*/
for (int i = left, j = i; i < right; j = ++i) {
char ai = a[i + 1];
@@ -1214,12 +1222,54 @@
}
a[j + 1] = ai;
}
+ } else {
+ /*
+ * Skip the longest ascending sequence.
+ */
+ do {
+ if (left++ >= right) {
+ return;
+ }
+ } while (a[left - 1] <= a[left]);
+
+ /*
+ * Every element from adjoining part plays the role
+ * of sentinel, therefore this allows us to avoid the
+ * left range check on each iteration. Moreover, we use
+ * the best improved algorithm, so called pair insertion
+ * sort, which is faster than traditional implementation
+ * in the context of Dual-Pivot Quicksort.
+ */
+ for (int k = left--; (left += 2) <= right; ) {
+ char a1, a2; k = left - 1;
+
+ if (a[k] < a[left]) {
+ a2 = a[k]; a1 = a[left];
+ } else {
+ a1 = a[k]; a2 = a[left];
+ }
+ while (a1 < a[--k]) {
+ a[k + 2] = a[k];
+ }
+ a[++k + 1] = a1;
+
+ while (a2 < a[--k]) {
+ a[k + 1] = a[k];
+ }
+ a[k + 1] = a2;
+ }
+ char last = a[right];
+
+ while (last < a[--right]) {
+ a[right + 1] = a[right];
+ }
+ a[right + 1] = last;
}
return;
}
// Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
+ int seventh = (length >> 3) + (length >> 6) + 1;
/*
* Sort five evenly spaced elements around (and including) the
@@ -1301,10 +1351,14 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
char ak = a[k];
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
+ /*
+ * Here and below we use "a[i] = b; i++;" instead
+ * of "a[i++] = b;" due to performance issue.
+ */
a[less] = ak;
less++;
} else if (ak > pivot2) { // Move a[k] to right part
@@ -1313,13 +1367,17 @@
break outer;
}
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot2
a[k] = a[less];
a[less] = a[great];
less++;
} else { // pivot1 <= a[great] <= pivot2
a[k] = a[great];
}
+ /*
+ * Here and below we use "a[i] = b; i--;" instead
+ * of "a[i--] = b;" due to performance issue.
+ */
a[great] = ak;
great--;
}
@@ -1334,7 +1392,7 @@
sort(a, great + 2, right, false);
/*
- * If center part is too large (comprises > 5/7 of the array),
+ * If center part is too large (comprises > 4/7 of the array),
* swap internal pivot values to ends.
*/
if (less < e1 && e5 < great) {
@@ -1368,7 +1426,7 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
char ak = a[k];
if (ak == pivot1) { // Move a[k] to left part
a[k] = a[less];
@@ -1380,7 +1438,7 @@
break outer;
}
}
- if (a[great] == pivot1) {
+ if (a[great] == pivot1) { // a[great] < pivot2
a[k] = a[less];
/*
* Even though a[great] equals to pivot1, the
@@ -1406,7 +1464,7 @@
} else { // Pivots are equal
/*
- * Partition degenerates to the traditional 3-way
+ * Partitioning degenerates to the traditional 3-way
* (or "Dutch National Flag") schema:
*
* left part center part right part
@@ -1425,28 +1483,20 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left; k <= great; k++) {
+ for (int k = less; k <= great; ++k) {
if (a[k] == pivot1) {
continue;
}
char ak = a[k];
-
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
a[less] = ak;
less++;
} else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
while (a[great] > pivot1) {
- // assert great > k;
great--;
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot1
a[k] = a[less];
a[less] = a[great];
less++;
@@ -1466,442 +1516,90 @@
}
}
- // Sort left and right parts recursively
+ /*
+ * Sort left and right parts recursively.
+ * All elements from center part are equal
+ * and, therefore, already sorted.
+ */
sort(a, left, less - 1, leftmost);
sort(a, great + 1, right, false);
}
}
- /**
- * Sorts the specified array into ascending numerical order.
- *
- * @param a the array to be sorted
- */
- public static void sort(byte[] a) {
- if (a.length > COUNTING_SORT_THRESHOLD_FOR_BYTE) {
- countingSort(a, 0, a.length - 1);
- } else {
- sort(a, 0, a.length - 1, true);
- }
- }
-
- /**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
- */
- public static void sort(byte[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
-
- if (toIndex - fromIndex > COUNTING_SORT_THRESHOLD_FOR_BYTE) {
- countingSort(a, fromIndex, toIndex - 1);
- } else {
- sort(a, fromIndex, toIndex - 1, true);
- }
- }
-
/** The number of distinct byte values. */
private static final int NUM_BYTE_VALUES = 1 << 8;
/**
- * Sorts the specified range of the array by counting sort.
+ * Sorts the specified array.
+ *
+ * @param a the array to be sorted
+ */
+ public static void sort(byte[] a) {
+ sort(a, 0, a.length - 1);
+ }
+
+ /**
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
*/
- private static void countingSort(byte[] a, int left, int right) {
- int[] count = new int[NUM_BYTE_VALUES];
+ public static void sort(byte[] a, int left, int right) {
+ // Use counting sort on large arrays
+ if (right - left > COUNTING_SORT_THRESHOLD_FOR_BYTE) {
+ int[] count = new int[NUM_BYTE_VALUES];
+
+ for (int i = left - 1; ++i <= right; ) {
+ count[a[i] - Byte.MIN_VALUE]++;
+ }
+ for (int i = NUM_BYTE_VALUES, k = right + 1; k > left; ) {
+ while (count[--i] == 0);
+ byte value = (byte) (i + Byte.MIN_VALUE);
+ int s = count[i];
- for (int i = left; i <= right; i++) {
- count[a[i] - Byte.MIN_VALUE]++;
- }
- for (int i = NUM_BYTE_VALUES - 1, k = right; k >= left; i--) {
- while (count[i] == 0) {
- i--;
+ do {
+ a[--k] = value;
+ } while (--s > 0);
}
- byte value = (byte) (i + Byte.MIN_VALUE);
- int s = count[i];
-
- do {
- a[k--] = value;
- } while (--s > 0);
+ } else { // Use insertion sort on small arrays
+ for (int i = left, j = i; i < right; j = ++i) {
+ byte ai = a[i + 1];
+ while (ai < a[j]) {
+ a[j + 1] = a[j];
+ if (j-- == left) {
+ break;
+ }
+ }
+ a[j + 1] = ai;
+ }
}
}
/**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
- *
- * @param a the array to be sorted
- * @param left the index of the first element, inclusive, to be sorted
- * @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
- */
- private static void sort(byte[] a, int left, int right, boolean leftmost) {
- int length = right - left + 1;
-
- // Use insertion sort on tiny arrays
- if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
- /*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- byte ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
- */
- for (int i = left, j = i; i < right; j = ++i) {
- byte ai = a[i + 1];
- while (ai < a[j]) {
- a[j + 1] = a[j];
- if (j-- == left) {
- break;
- }
- }
- a[j + 1] = ai;
- }
- }
- return;
- }
-
- // Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
-
- /*
- * Sort five evenly spaced elements around (and including) the
- * center element in the range. These elements will be used for
- * pivot selection as described below. The choice for spacing
- * these elements was empirically determined to work well on
- * a wide variety of inputs.
- */
- int e3 = (left + right) >>> 1; // The midpoint
- int e2 = e3 - seventh;
- int e1 = e2 - seventh;
- int e4 = e3 + seventh;
- int e5 = e4 + seventh;
-
- // Sort these elements using insertion sort
- if (a[e2] < a[e1]) { byte t = a[e2]; a[e2] = a[e1]; a[e1] = t; }
-
- if (a[e3] < a[e2]) { byte t = a[e3]; a[e3] = a[e2]; a[e2] = t;
- if (t < a[e1]) { a[e2] = a[e1]; a[e1] = t; }
- }
- if (a[e4] < a[e3]) { byte t = a[e4]; a[e4] = a[e3]; a[e3] = t;
- if (t < a[e2]) { a[e3] = a[e2]; a[e2] = t;
- if (t < a[e1]) { a[e2] = a[e1]; a[e1] = t; }
- }
- }
- if (a[e5] < a[e4]) { byte t = a[e5]; a[e5] = a[e4]; a[e4] = t;
- if (t < a[e3]) { a[e4] = a[e3]; a[e3] = t;
- if (t < a[e2]) { a[e3] = a[e2]; a[e2] = t;
- if (t < a[e1]) { a[e2] = a[e1]; a[e1] = t; }
- }
- }
- }
-
- /*
- * Use the second and fourth of the five sorted elements as pivots.
- * These values are inexpensive approximations of the first and
- * second terciles of the array. Note that pivot1 <= pivot2.
- */
- byte pivot1 = a[e2];
- byte pivot2 = a[e4];
-
- // Pointers
- int less = left; // The index of the first element of center part
- int great = right; // The index before the first element of right part
-
- if (pivot1 != pivot2) {
- /*
- * The first and the last elements to be sorted are moved to the
- * locations formerly occupied by the pivots. When partitioning
- * is complete, the pivots are swapped back into their final
- * positions, and excluded from subsequent sorting.
- */
- a[e2] = a[left];
- a[e4] = a[right];
-
- /*
- * Skip elements, which are less or greater than pivot values.
- */
- while (a[++less] < pivot1);
- while (a[--great] > pivot2);
-
- /*
- * Partitioning:
- *
- * left part center part right part
- * +--------------------------------------------------------------+
- * | < pivot1 | pivot1 <= && <= pivot2 | ? | > pivot2 |
- * +--------------------------------------------------------------+
- * ^ ^ ^
- * | | |
- * less k great
- *
- * Invariants:
- *
- * all in (left, less) < pivot1
- * pivot1 <= all in [less, k) <= pivot2
- * all in (great, right) > pivot2
- *
- * Pointer k is the first index of ?-part.
- */
- outer:
- for (int k = less; k <= great; k++) {
- byte ak = a[k];
- if (ak < pivot1) { // Move a[k] to left part
- a[k] = a[less];
- a[less] = ak;
- less++;
- } else if (ak > pivot2) { // Move a[k] to right part
- while (a[great] > pivot2) {
- if (great-- == k) {
- break outer;
- }
- }
- if (a[great] < pivot1) {
- a[k] = a[less];
- a[less] = a[great];
- less++;
- } else { // pivot1 <= a[great] <= pivot2
- a[k] = a[great];
- }
- a[great] = ak;
- great--;
- }
- }
-
- // Swap pivots into their final positions
- a[left] = a[less - 1]; a[less - 1] = pivot1;
- a[right] = a[great + 1]; a[great + 1] = pivot2;
-
- // Sort left and right parts recursively, excluding known pivots
- sort(a, left, less - 2, leftmost);
- sort(a, great + 2, right, false);
-
- /*
- * If center part is too large (comprises > 5/7 of the array),
- * swap internal pivot values to ends.
- */
- if (less < e1 && e5 < great) {
- /*
- * Skip elements, which are equal to pivot values.
- */
- while (a[less] == pivot1) {
- less++;
- }
- while (a[great] == pivot2) {
- great--;
- }
-
- /*
- * Partitioning:
- *
- * left part center part right part
- * +----------------------------------------------------------+
- * | == pivot1 | pivot1 < && < pivot2 | ? | == pivot2 |
- * +----------------------------------------------------------+
- * ^ ^ ^
- * | | |
- * less k great
- *
- * Invariants:
- *
- * all in (*, less) == pivot1
- * pivot1 < all in [less, k) < pivot2
- * all in (great, *) == pivot2
- *
- * Pointer k is the first index of ?-part.
- */
- outer:
- for (int k = less; k <= great; k++) {
- byte ak = a[k];
- if (ak == pivot1) { // Move a[k] to left part
- a[k] = a[less];
- a[less] = ak;
- less++;
- } else if (ak == pivot2) { // Move a[k] to right part
- while (a[great] == pivot2) {
- if (great-- == k) {
- break outer;
- }
- }
- if (a[great] == pivot1) {
- a[k] = a[less];
- /*
- * Even though a[great] equals to pivot1, the
- * assignment a[less] = pivot1 may be incorrect,
- * if a[great] and pivot1 are floating-point zeros
- * of different signs. Therefore in float and
- * double sorting methods we have to use more
- * accurate assignment a[less] = a[great].
- */
- a[less] = pivot1;
- less++;
- } else { // pivot1 < a[great] < pivot2
- a[k] = a[great];
- }
- a[great] = ak;
- great--;
- }
- }
- }
-
- // Sort center part recursively
- sort(a, less, great, false);
-
- } else { // Pivots are equal
- /*
- * Partition degenerates to the traditional 3-way
- * (or "Dutch National Flag") schema:
- *
- * left part center part right part
- * +-------------------------------------------------+
- * | < pivot | == pivot | ? | > pivot |
- * +-------------------------------------------------+
- * ^ ^ ^
- * | | |
- * less k great
- *
- * Invariants:
- *
- * all in (left, less) < pivot
- * all in [less, k) == pivot
- * all in (great, right) > pivot
- *
- * Pointer k is the first index of ?-part.
- */
- for (int k = left; k <= great; k++) {
- if (a[k] == pivot1) {
- continue;
- }
- byte ak = a[k];
-
- if (ak < pivot1) { // Move a[k] to left part
- a[k] = a[less];
- a[less] = ak;
- less++;
- } else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
- while (a[great] > pivot1) {
- // assert great > k;
- great--;
- }
- if (a[great] < pivot1) {
- a[k] = a[less];
- a[less] = a[great];
- less++;
- } else { // a[great] == pivot1
- /*
- * Even though a[great] equals to pivot1, the
- * assignment a[k] = pivot1 may be incorrect,
- * if a[great] and pivot1 are floating-point
- * zeros of different signs. Therefore in float
- * and double sorting methods we have to use
- * more accurate assignment a[k] = a[great].
- */
- a[k] = pivot1;
- }
- a[great] = ak;
- great--;
- }
- }
-
- // Sort left and right parts recursively
- sort(a, left, less - 1, leftmost);
- sort(a, great + 1, right, false);
- }
- }
-
- /**
- * Sorts the specified array into ascending numerical order.
- *
- * <p>The {@code <} relation does not provide a total order on all float
- * values: {@code -0.0f == 0.0f} is {@code true} and a {@code Float.NaN}
- * value compares neither less than, greater than, nor equal to any value,
- * even itself. This method uses the total order imposed by the method
- * {@link Float#compareTo}: {@code -0.0f} is treated as less than value
- * {@code 0.0f} and {@code Float.NaN} is considered greater than any
- * other value and all {@code Float.NaN} values are considered equal.
+ * Sorts the specified array.
*
* @param a the array to be sorted
*/
public static void sort(float[] a) {
- sortNegZeroAndNaN(a, 0, a.length - 1);
+ sort(a, 0, a.length - 1);
}
/**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
- *
- * <p>The {@code <} relation does not provide a total order on all float
- * values: {@code -0.0f == 0.0f} is {@code true} and a {@code Float.NaN}
- * value compares neither less than, greater than, nor equal to any value,
- * even itself. This method uses the total order imposed by the method
- * {@link Float#compareTo}: {@code -0.0f} is treated as less than value
- * {@code 0.0f} and {@code Float.NaN} is considered greater than any
- * other value and all {@code Float.NaN} values are considered equal.
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
- */
- public static void sort(float[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
- sortNegZeroAndNaN(a, fromIndex, toIndex - 1);
- }
-
- /**
- * Sorts the specified range of the array into ascending order. The
- * sort is done in three phases to avoid expensive comparisons in the
- * inner loop. The comparisons would be expensive due to anomalies
- * associated with negative zero {@code -0.0f} and {@code Float.NaN}.
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
*/
- private static void sortNegZeroAndNaN(float[] a, int left, int right) {
+ public static void sort(float[] a, int left, int right) {
/*
* Phase 1: Move NaNs to the end of the array.
*/
while (left <= right && Float.isNaN(a[right])) {
right--;
}
- for (int k = right - 1; k >= left; k--) {
+ for (int k = right; --k >= left; ) {
float ak = a[k];
if (ak != ak) { // a[k] is NaN
a[k] = a[right];
@@ -1921,7 +1619,7 @@
int hi = right;
/*
- * Search first zero, or first positive, or last negative element.
+ * Find the first zero, or first positive, or last negative element.
*/
while (left < hi) {
int middle = (left + hi) >>> 1;
@@ -1946,12 +1644,12 @@
*
* Partitioning:
*
- * +---------------------------------------------------+
- * | < 0.0 | -0.0 | 0.0 | ? ( >= 0.0 ) |
- * +---------------------------------------------------+
- * ^ ^ ^
- * | | |
- * left p k
+ * +----------------------------------------------------+
+ * | < 0.0 | -0.0 | 0.0 | ? ( >= 0.0 ) |
+ * +----------------------------------------------------+
+ * ^ ^ ^
+ * | | |
+ * left p k
*
* Invariants:
*
@@ -1962,53 +1660,36 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left + 1, p = left; k <= right; k++) {
+ for (int k = left, p = left - 1; ++k <= right; ) {
float ak = a[k];
if (ak != 0.0f) {
break;
}
if (Float.floatToRawIntBits(ak) < 0) { // ak is -0.0f
a[k] = 0.0f;
- a[p++] = -0.0f;
+ a[++p] = -0.0f;
}
}
}
/**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
+ * Sorts the specified range of the array by Dual-Pivot Quicksort.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
+ * @param leftmost indicates if this part is the leftmost in the range
*/
private static void sort(float[] a, int left, int right,boolean leftmost) {
int length = right - left + 1;
- // Use insertion sort on tiny arrays
+ // Use insertion sort on small arrays
if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
+ if (leftmost) {
/*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- float ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
+ * Traditional (without sentinel) insertion sort,
+ * optimized for server VM, is used in case of
+ * the leftmost part.
*/
for (int i = left, j = i; i < right; j = ++i) {
float ai = a[i + 1];
@@ -2020,12 +1701,54 @@
}
a[j + 1] = ai;
}
+ } else {
+ /*
+ * Skip the longest ascending sequence.
+ */
+ do {
+ if (left++ >= right) {
+ return;
+ }
+ } while (a[left - 1] <= a[left]);
+
+ /*
+ * Every element from adjoining part plays the role
+ * of sentinel, therefore this allows us to avoid the
+ * left range check on each iteration. Moreover, we use
+ * the best improved algorithm, so called pair insertion
+ * sort, which is faster than traditional implementation
+ * in the context of Dual-Pivot Quicksort.
+ */
+ for (int k = left--; (left += 2) <= right; ) {
+ float a1, a2; k = left - 1;
+
+ if (a[k] < a[left]) {
+ a2 = a[k]; a1 = a[left];
+ } else {
+ a1 = a[k]; a2 = a[left];
+ }
+ while (a1 < a[--k]) {
+ a[k + 2] = a[k];
+ }
+ a[++k + 1] = a1;
+
+ while (a2 < a[--k]) {
+ a[k + 1] = a[k];
+ }
+ a[k + 1] = a2;
+ }
+ float last = a[right];
+
+ while (last < a[--right]) {
+ a[right + 1] = a[right];
+ }
+ a[right + 1] = last;
}
return;
}
// Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
+ int seventh = (length >> 3) + (length >> 6) + 1;
/*
* Sort five evenly spaced elements around (and including) the
@@ -2107,10 +1830,14 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
float ak = a[k];
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
+ /*
+ * Here and below we use "a[i] = b; i++;" instead
+ * of "a[i++] = b;" due to performance issue.
+ */
a[less] = ak;
less++;
} else if (ak > pivot2) { // Move a[k] to right part
@@ -2119,13 +1846,17 @@
break outer;
}
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot2
a[k] = a[less];
a[less] = a[great];
less++;
} else { // pivot1 <= a[great] <= pivot2
a[k] = a[great];
}
+ /*
+ * Here and below we use "a[i] = b; i--;" instead
+ * of "a[i--] = b;" due to performance issue.
+ */
a[great] = ak;
great--;
}
@@ -2140,7 +1871,7 @@
sort(a, great + 2, right, false);
/*
- * If center part is too large (comprises > 5/7 of the array),
+ * If center part is too large (comprises > 4/7 of the array),
* swap internal pivot values to ends.
*/
if (less < e1 && e5 < great) {
@@ -2174,7 +1905,7 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
float ak = a[k];
if (ak == pivot1) { // Move a[k] to left part
a[k] = a[less];
@@ -2186,7 +1917,7 @@
break outer;
}
}
- if (a[great] == pivot1) {
+ if (a[great] == pivot1) { // a[great] < pivot2
a[k] = a[less];
/*
* Even though a[great] equals to pivot1, the
@@ -2212,7 +1943,7 @@
} else { // Pivots are equal
/*
- * Partition degenerates to the traditional 3-way
+ * Partitioning degenerates to the traditional 3-way
* (or "Dutch National Flag") schema:
*
* left part center part right part
@@ -2231,28 +1962,20 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left; k <= great; k++) {
+ for (int k = less; k <= great; ++k) {
if (a[k] == pivot1) {
continue;
}
float ak = a[k];
-
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
a[less] = ak;
less++;
} else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
while (a[great] > pivot1) {
- // assert great > k;
great--;
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot1
a[k] = a[less];
a[less] = a[great];
less++;
@@ -2272,73 +1995,40 @@
}
}
- // Sort left and right parts recursively
+ /*
+ * Sort left and right parts recursively.
+ * All elements from center part are equal
+ * and, therefore, already sorted.
+ */
sort(a, left, less - 1, leftmost);
sort(a, great + 1, right, false);
}
}
/**
- * Sorts the specified array into ascending numerical order.
- *
- * <p>The {@code <} relation does not provide a total order on all double
- * values: {@code -0.0d == 0.0d} is {@code true} and a {@code Double.NaN}
- * value compares neither less than, greater than, nor equal to any value,
- * even itself. This method uses the total order imposed by the method
- * {@link Double#compareTo}: {@code -0.0d} is treated as less than value
- * {@code 0.0d} and {@code Double.NaN} is considered greater than any
- * other value and all {@code Double.NaN} values are considered equal.
+ * Sorts the specified array.
*
* @param a the array to be sorted
*/
public static void sort(double[] a) {
- sortNegZeroAndNaN(a, 0, a.length - 1);
+ sort(a, 0, a.length - 1);
}
/**
- * Sorts the specified range of the array into ascending order. The range
- * to be sorted extends from the index {@code fromIndex}, inclusive, to
- * the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty (and the call is a no-op).
- *
- * <p>The {@code <} relation does not provide a total order on all double
- * values: {@code -0.0d == 0.0d} is {@code true} and a {@code Double.NaN}
- * value compares neither less than, greater than, nor equal to any value,
- * even itself. This method uses the total order imposed by the method
- * {@link Double#compareTo}: {@code -0.0d} is treated as less than value
- * {@code 0.0d} and {@code Double.NaN} is considered greater than any
- * other value and all {@code Double.NaN} values are considered equal.
- *
- * @param a the array to be sorted
- * @param fromIndex the index of the first element, inclusive, to be sorted
- * @param toIndex the index of the last element, exclusive, to be sorted
- * @throws IllegalArgumentException if {@code fromIndex > toIndex}
- * @throws ArrayIndexOutOfBoundsException
- * if {@code fromIndex < 0} or {@code toIndex > a.length}
- */
- public static void sort(double[] a, int fromIndex, int toIndex) {
- rangeCheck(a.length, fromIndex, toIndex);
- sortNegZeroAndNaN(a, fromIndex, toIndex - 1);
- }
-
- /**
- * Sorts the specified range of the array into ascending order. The
- * sort is done in three phases to avoid expensive comparisons in the
- * inner loop. The comparisons would be expensive due to anomalies
- * associated with negative zero {@code -0.0d} and {@code Double.NaN}.
+ * Sorts the specified range of the array.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
*/
- private static void sortNegZeroAndNaN(double[] a, int left, int right) {
+ public static void sort(double[] a, int left, int right) {
/*
* Phase 1: Move NaNs to the end of the array.
*/
while (left <= right && Double.isNaN(a[right])) {
right--;
}
- for (int k = right - 1; k >= left; k--) {
+ for (int k = right; --k >= left; ) {
double ak = a[k];
if (ak != ak) { // a[k] is NaN
a[k] = a[right];
@@ -2358,7 +2048,7 @@
int hi = right;
/*
- * Search first zero, or first positive, or last negative element.
+ * Find the first zero, or first positive, or last negative element.
*/
while (left < hi) {
int middle = (left + hi) >>> 1;
@@ -2383,12 +2073,12 @@
*
* Partitioning:
*
- * +---------------------------------------------------+
- * | < 0.0 | -0.0 | 0.0 | ? ( >= 0.0 ) |
- * +---------------------------------------------------+
- * ^ ^ ^
- * | | |
- * left p k
+ * +----------------------------------------------------+
+ * | < 0.0 | -0.0 | 0.0 | ? ( >= 0.0 ) |
+ * +----------------------------------------------------+
+ * ^ ^ ^
+ * | | |
+ * left p k
*
* Invariants:
*
@@ -2399,53 +2089,36 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left + 1, p = left; k <= right; k++) {
+ for (int k = left, p = left - 1; ++k <= right; ) {
double ak = a[k];
if (ak != 0.0d) {
break;
}
if (Double.doubleToRawLongBits(ak) < 0) { // ak is -0.0d
a[k] = 0.0d;
- a[p++] = -0.0d;
+ a[++p] = -0.0d;
}
}
}
/**
- * Sorts the specified range of the array into ascending order by the
- * Dual-Pivot Quicksort algorithm. This method differs from the public
- * {@code sort} method in that the {@code right} index is inclusive,
- * it does no range checking on {@code left} or {@code right}, and has
- * boolean flag whether insertion sort with sentinel is used or not.
+ * Sorts the specified range of the array by Dual-Pivot Quicksort.
*
* @param a the array to be sorted
* @param left the index of the first element, inclusive, to be sorted
* @param right the index of the last element, inclusive, to be sorted
- * @param leftmost indicates if the part is the most left in the range
+ * @param leftmost indicates if this part is the leftmost in the range
*/
private static void sort(double[] a, int left,int right,boolean leftmost) {
int length = right - left + 1;
- // Use insertion sort on tiny arrays
+ // Use insertion sort on small arrays
if (length < INSERTION_SORT_THRESHOLD) {
- if (!leftmost) {
+ if (leftmost) {
/*
- * Every element in adjoining part plays the role
- * of sentinel, therefore this allows us to avoid
- * the j >= left check on each iteration.
- */
- for (int j, i = left + 1; i <= right; i++) {
- double ai = a[i];
- for (j = i - 1; ai < a[j]; j--) {
- // assert j >= left;
- a[j + 1] = a[j];
- }
- a[j + 1] = ai;
- }
- } else {
- /*
- * For case of leftmost part traditional (without a sentinel)
- * insertion sort, optimized for server JVM, is used.
+ * Traditional (without sentinel) insertion sort,
+ * optimized for server VM, is used in case of
+ * the leftmost part.
*/
for (int i = left, j = i; i < right; j = ++i) {
double ai = a[i + 1];
@@ -2457,12 +2130,54 @@
}
a[j + 1] = ai;
}
+ } else {
+ /*
+ * Skip the longest ascending sequence.
+ */
+ do {
+ if (left++ >= right) {
+ return;
+ }
+ } while (a[left - 1] <= a[left]);
+
+ /*
+ * Every element from adjoining part plays the role
+ * of sentinel, therefore this allows us to avoid the
+ * left range check on each iteration. Moreover, we use
+ * the best improved algorithm, so called pair insertion
+ * sort, which is faster than traditional implementation
+ * in the context of Dual-Pivot Quicksort.
+ */
+ for (int k = left--; (left += 2) <= right; ) {
+ double a1, a2; k = left - 1;
+
+ if (a[k] < a[left]) {
+ a2 = a[k]; a1 = a[left];
+ } else {
+ a1 = a[k]; a2 = a[left];
+ }
+ while (a1 < a[--k]) {
+ a[k + 2] = a[k];
+ }
+ a[++k + 1] = a1;
+
+ while (a2 < a[--k]) {
+ a[k + 1] = a[k];
+ }
+ a[k + 1] = a2;
+ }
+ double last = a[right];
+
+ while (last < a[--right]) {
+ a[right + 1] = a[right];
+ }
+ a[right + 1] = last;
}
return;
}
// Inexpensive approximation of length / 7
- int seventh = (length >>> 3) + (length >>> 6) + 1;
+ int seventh = (length >> 3) + (length >> 6) + 1;
/*
* Sort five evenly spaced elements around (and including) the
@@ -2544,10 +2259,14 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
double ak = a[k];
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
+ /*
+ * Here and below we use "a[i] = b; i++;" instead
+ * of "a[i++] = b;" due to performance issue.
+ */
a[less] = ak;
less++;
} else if (ak > pivot2) { // Move a[k] to right part
@@ -2556,13 +2275,17 @@
break outer;
}
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot2
a[k] = a[less];
a[less] = a[great];
less++;
} else { // pivot1 <= a[great] <= pivot2
a[k] = a[great];
}
+ /*
+ * Here and below we use "a[i] = b; i--;" instead
+ * of "a[i--] = b;" due to performance issue.
+ */
a[great] = ak;
great--;
}
@@ -2577,7 +2300,7 @@
sort(a, great + 2, right, false);
/*
- * If center part is too large (comprises > 5/7 of the array),
+ * If center part is too large (comprises > 4/7 of the array),
* swap internal pivot values to ends.
*/
if (less < e1 && e5 < great) {
@@ -2611,7 +2334,7 @@
* Pointer k is the first index of ?-part.
*/
outer:
- for (int k = less; k <= great; k++) {
+ for (int k = less - 1; ++k <= great; ) {
double ak = a[k];
if (ak == pivot1) { // Move a[k] to left part
a[k] = a[less];
@@ -2623,7 +2346,7 @@
break outer;
}
}
- if (a[great] == pivot1) {
+ if (a[great] == pivot1) { // a[great] < pivot2
a[k] = a[less];
/*
* Even though a[great] equals to pivot1, the
@@ -2649,7 +2372,7 @@
} else { // Pivots are equal
/*
- * Partition degenerates to the traditional 3-way
+ * Partitioning degenerates to the traditional 3-way
* (or "Dutch National Flag") schema:
*
* left part center part right part
@@ -2668,28 +2391,20 @@
*
* Pointer k is the first index of ?-part.
*/
- for (int k = left; k <= great; k++) {
+ for (int k = less; k <= great; ++k) {
if (a[k] == pivot1) {
continue;
}
double ak = a[k];
-
if (ak < pivot1) { // Move a[k] to left part
a[k] = a[less];
a[less] = ak;
less++;
} else { // a[k] > pivot1 - Move a[k] to right part
- /*
- * We know that pivot1 == a[e3] == pivot2. Thus, we know
- * that great will still be >= k when the following loop
- * terminates, even though we don't test for it explicitly.
- * In other words, a[e3] acts as a sentinel for great.
- */
while (a[great] > pivot1) {
- // assert great > k;
great--;
}
- if (a[great] < pivot1) {
+ if (a[great] < pivot1) { // a[great] <= pivot1
a[k] = a[less];
a[less] = a[great];
less++;
@@ -2709,26 +2424,13 @@
}
}
- // Sort left and right parts recursively
+ /*
+ * Sort left and right parts recursively.
+ * All elements from center part are equal
+ * and, therefore, already sorted.
+ */
sort(a, left, less - 1, leftmost);
sort(a, great + 1, right, false);
}
}
-
- /**
- * Checks that {@code fromIndex} and {@code toIndex} are in the range,
- * otherwise throws an appropriate exception.
- */
- private static void rangeCheck(int length, int fromIndex, int toIndex) {
- if (fromIndex > toIndex) {
- throw new IllegalArgumentException(
- "fromIndex: " + fromIndex + " > toIndex: " + toIndex);
- }
- if (fromIndex < 0) {
- throw new ArrayIndexOutOfBoundsException(fromIndex);
- }
- if (toIndex > length) {
- throw new ArrayIndexOutOfBoundsException(toIndex);
- }
- }
}
--- a/jdk/src/share/classes/java/util/Locale.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/Locale.java Tue Nov 02 22:15:35 2010 -0700
@@ -1715,6 +1715,7 @@
OpenListResourceBundle bundle = LocaleData.getLocaleNames(inLocale);
String languageName = getDisplayLanguage(inLocale);
+ String scriptName = getDisplayScript(inLocale);
String countryName = getDisplayCountry(inLocale);
String[] variantNames = getDisplayVariantArray(bundle, inLocale);
@@ -1735,25 +1736,40 @@
String mainName = null;
String[] qualifierNames = null;
- // The main name is the language, or if there is no language, the country.
- // If there is neither language nor country (an anomalous situation) then
- // the display name is simply the variant's display name.
- if (languageName.length() != 0) {
- mainName = languageName;
- if (countryName.length() != 0) {
- qualifierNames = new String[variantNames.length + 1];
- System.arraycopy(variantNames, 0, qualifierNames, 1, variantNames.length);
- qualifierNames[0] = countryName;
+ // The main name is the language, or if there is no language, the script,
+ // then if no script, the country. If there is no language/script/country
+ // (an anomalous situation) then the display name is simply the variant's
+ // display name.
+ if (languageName.length() == 0 && scriptName.length() == 0 && countryName.length() == 0) {
+ if (variantNames.length == 0) {
+ return "";
+ } else {
+ return formatList(variantNames, listPattern, listCompositionPattern);
}
- else qualifierNames = variantNames;
+ }
+ ArrayList<String> names = new ArrayList<String>(4);
+ if (languageName.length() != 0) {
+ names.add(languageName);
+ }
+ if (scriptName.length() != 0) {
+ names.add(scriptName);
+ }
+ if (countryName.length() != 0) {
+ names.add(countryName);
}
- else if (countryName.length() != 0) {
- mainName = countryName;
- qualifierNames = variantNames;
+ if (variantNames.length != 0) {
+ for (String var : variantNames) {
+ names.add(var);
+ }
}
- else {
- return formatList(variantNames, listPattern, listCompositionPattern);
- }
+
+ // The first one in the main name
+ mainName = names.get(0);
+
+ // Others are qualifiers
+ int numNames = names.size();
+ qualifierNames = (numNames > 1) ?
+ names.subList(1, numNames).toArray(new String[numNames - 1]) : new String[0];
// Create an array whose first element is the number of remaining
// elements. This serves as a selector into a ChoiceFormat pattern from
@@ -1941,7 +1957,7 @@
* @serialField variant String
* variant subtags separated by LOWLINE characters. (See <a href="java/util/Locale.html#getVariant()">getVariant()</a>)
* @serialField hashcode int
- * deprectated, for forward compatibility only
+ * deprecated, for forward compatibility only
* @serialField script String
* script subtag in title case (See <a href="java/util/Locale.html#getScript()">getScript()</a>)
* @serialField extensions String
@@ -1979,7 +1995,7 @@
}
/**
- * Deserialize this <code>Locale</code>.
+ * Deserializes this <code>Locale</code>.
* @param in the <code>ObjectInputStream</code> to read
* @throws IOException
* @throws ClassNotFoundException
--- a/jdk/src/share/classes/java/util/Properties.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/Properties.java Tue Nov 02 22:15:35 2010 -0700
@@ -705,7 +705,7 @@
* <code>Strings</code>.
*/
@Deprecated
- public synchronized void save(OutputStream out, String comments) {
+ public void save(OutputStream out, String comments) {
try {
store(out, comments);
} catch (IOException e) {
@@ -890,7 +890,7 @@
* @see #loadFromXML(InputStream)
* @since 1.5
*/
- public synchronized void storeToXML(OutputStream os, String comment)
+ public void storeToXML(OutputStream os, String comment)
throws IOException
{
if (os == null)
@@ -929,8 +929,7 @@
* @see #loadFromXML(InputStream)
* @since 1.5
*/
- public synchronized void storeToXML(OutputStream os, String comment,
- String encoding)
+ public void storeToXML(OutputStream os, String comment, String encoding)
throws IOException
{
if (os == null)
--- a/jdk/src/share/classes/java/util/TimeZone.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/TimeZone.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -302,60 +302,94 @@
}
/**
- * Returns a name of this time zone suitable for presentation to the user
- * in the default locale.
- * This method returns the long name, not including daylight savings.
- * If the display name is not available for the locale,
- * then this method returns a string in the
- * <a href="#NormalizedCustomID">normalized custom ID format</a>.
+ * Returns a long standard time name of this {@code TimeZone} suitable for
+ * presentation to the user in the default locale.
+ *
+ * <p>This method is equivalent to:
+ * <pre><blockquote>
+ * getDisplayName(false, {@link #LONG},
+ * Locale.getDefault({@link Locale.Category#DISPLAY}))
+ * </blockquote></pre>
+ *
* @return the human-readable name of this time zone in the default locale.
* @since 1.2
+ * @see #getDisplayName(boolean, int, Locale)
+ * @see Locale#getDefault(Locale.Category)
+ * @see Locale.Category
*/
public final String getDisplayName() {
- return getDisplayName(false, LONG, Locale.getDefault(Locale.Category.DISPLAY));
+ return getDisplayName(false, LONG,
+ Locale.getDefault(Locale.Category.DISPLAY));
}
/**
- * Returns a name of this time zone suitable for presentation to the user
- * in the specified locale.
- * This method returns the long name, not including daylight savings.
- * If the display name is not available for the locale,
- * then this method returns a string in the
- * <a href="#NormalizedCustomID">normalized custom ID format</a>.
+ * Returns a long standard time name of this {@code TimeZone} suitable for
+ * presentation to the user in the specified {@code locale}.
+ *
+ * <p>This method is equivalent to:
+ * <pre><blockquote>
+ * getDisplayName(false, {@link #LONG}, locale)
+ * </blockquote></pre>
+ *
* @param locale the locale in which to supply the display name.
* @return the human-readable name of this time zone in the given locale.
+ * @exception NullPointerException if {@code locale} is {@code null}.
* @since 1.2
+ * @see #getDisplayName(boolean, int, Locale)
*/
public final String getDisplayName(Locale locale) {
return getDisplayName(false, LONG, locale);
}
/**
- * Returns a name of this time zone suitable for presentation to the user
- * in the default locale.
- * If the display name is not available for the locale, then this
- * method returns a string in the
- * <a href="#NormalizedCustomID">normalized custom ID format</a>.
- * @param daylight if true, return the daylight savings name.
- * @param style either <code>LONG</code> or <code>SHORT</code>
+ * Returns a name in the specified {@code style} of this {@code TimeZone}
+ * suitable for presentation to the user in the default locale. If the
+ * specified {@code daylight} is {@code true}, a daylight saving time name
+ * is returned. Otherwise, a standard time name is returned.
+ *
+ * <p>This method is equivalent to:
+ * <pre><blockquote>
+ * getDisplayName(daylight, style,
+ * Locale.getDefault({@link Locale.Category#DISPLAY}))
+ * </blockquote></pre>
+ *
+ * @param daylight if {@code true}, return the daylight saving time name.
+ * @param style either {@link #LONG} or {@link #SHORT}
* @return the human-readable name of this time zone in the default locale.
+ * @exception IllegalArgumentException if {@code style} is invalid.
* @since 1.2
+ * @see #getDisplayName(boolean, int, Locale)
+ * @see Locale#getDefault(Locale.Category)
+ * @see Locale.Category
*/
public final String getDisplayName(boolean daylight, int style) {
- return getDisplayName(daylight, style, Locale.getDefault(Locale.Category.DISPLAY));
+ return getDisplayName(daylight, style,
+ Locale.getDefault(Locale.Category.DISPLAY));
}
/**
- * Returns a name of this time zone suitable for presentation to the user
- * in the specified locale.
- * If the display name is not available for the locale,
- * then this method returns a string in the
- * <a href="#NormalizedCustomID">normalized custom ID format</a>.
- * @param daylight if true, return the daylight savings name.
- * @param style either <code>LONG</code> or <code>SHORT</code>
+ * Returns a name in the specified {@code style} of this {@code TimeZone}
+ * suitable for presentation to the user in the specified {@code
+ * locale}. If the specified {@code daylight} is {@code true}, a daylight
+ * saving time name is returned. Otherwise, a standard time name is
+ * returned.
+ *
+ * <p>When looking up a time zone name, the {@linkplain
+ * ResourceBundle.Control#getCandidateLocales(String,Locale) default
+ * <code>Locale</code> search path of <code>ResourceBundle</code>} derived
+ * from the specified {@code locale} is used. (No {@linkplain
+ * ResourceBundle.Control#getFallbackLocale(String,Locale) fallback
+ * <code>Locale</code>} search is performed.) If a time zone name in any
+ * {@code Locale} of the search path, including {@link Locale#ROOT}, is
+ * found, the name is returned. Otherwise, a string in the
+ * <a href="#NormalizedCustomID">normalized custom ID format</a> is returned.
+ *
+ * @param daylight if {@code true}, return the daylight saving time name.
+ * @param style either {@link #LONG} or {@link #SHORT}
* @param locale the locale in which to supply the display name.
* @return the human-readable name of this time zone in the given locale.
- * @exception IllegalArgumentException style is invalid.
+ * @exception IllegalArgumentException if {@code style} is invalid.
+ * @exception NullPointerException if {@code locale} is {@code null}.
* @since 1.2
*/
public String getDisplayName(boolean daylight, int style, Locale locale) {
--- a/jdk/src/share/classes/java/util/XMLUtils.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/XMLUtils.java Tue Nov 02 22:15:35 2010 -0700
@@ -141,14 +141,13 @@
comments.appendChild(doc.createTextNode(comment));
}
- Set keys = props.keySet();
- Iterator i = keys.iterator();
- while(i.hasNext()) {
- String key = (String)i.next();
- Element entry = (Element)properties.appendChild(
- doc.createElement("entry"));
- entry.setAttribute("key", key);
- entry.appendChild(doc.createTextNode(props.getProperty(key)));
+ synchronized (props) {
+ for (String key : props.stringPropertyNames()) {
+ Element entry = (Element)properties.appendChild(
+ doc.createElement("entry"));
+ entry.setAttribute("key", key);
+ entry.appendChild(doc.createTextNode(props.getProperty(key)));
+ }
}
emitDocument(doc, os, encoding);
}
--- a/jdk/src/share/classes/java/util/zip/ZipFile.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/java/util/zip/ZipFile.java Tue Nov 02 22:15:35 2010 -0700
@@ -85,8 +85,7 @@
static {
// A system prpperty to disable mmap use to avoid vm crash when
// in-use zip file is accidently overwritten by others.
- String prop = AccessController.doPrivileged(
- new GetPropertyAction("sun.zip.disableMemoryMapping"));
+ String prop = sun.misc.VM.getSavedProperty("sun.zip.disableMemoryMapping");
usemmap = (prop == null ||
!(prop.length() == 0 || prop.equalsIgnoreCase("true")));
}
--- a/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java Tue Nov 02 22:15:35 2010 -0700
@@ -63,7 +63,7 @@
* <p>Properties can be used to specify the default mixer
* for specific line types.
* Both system properties and a properties file are considered.
- * In the Sun reference implementation, the properties file is
+ * In the Oracle reference implementation, the properties file is
* "lib/sound.properties" in the JRE
* directory. If a property exists both as a system property and in the
* properties file, the system property takes precedence. If none is
--- a/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java Tue Nov 02 22:15:35 2010 -0700
@@ -28,6 +28,7 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.sql.SQLException;
+import java.util.ServiceConfigurationError;
import java.util.ServiceLoader;
/**
@@ -255,13 +256,19 @@
* Use the ServiceLoader mechanism to load the default RowSetFactory
* @return default RowSetFactory Implementation
*/
- static private RowSetFactory loadViaServiceLoader() {
+ static private RowSetFactory loadViaServiceLoader() throws SQLException {
RowSetFactory theFactory = null;
- trace("***in loadViaServiceLoader()");
- for (RowSetFactory factory : ServiceLoader.load(javax.sql.rowset.RowSetFactory.class)) {
- trace(" Loading done by the java.util.ServiceLoader :" + factory.getClass().getName());
- theFactory = factory;
- break;
+ try {
+ trace("***in loadViaServiceLoader():");
+ for (RowSetFactory factory : ServiceLoader.load(javax.sql.rowset.RowSetFactory.class)) {
+ trace(" Loading done by the java.util.ServiceLoader :" + factory.getClass().getName());
+ theFactory = factory;
+ break;
+ }
+ } catch (ServiceConfigurationError e) {
+ throw new SQLException(
+ "RowSetFactory: Error locating RowSetFactory using Service "
+ + "Loader API: " + e, e);
}
return theFactory;
--- a/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java Tue Nov 02 22:15:35 2010 -0700
@@ -652,7 +652,10 @@
* required
* @throws java.lang.SecurityException if a security manager exists and its
* {@code checkPermission} method denies calling {@code setLogger}
+ * @throws java.util.logging.LoggingPermission if a security manager exists and its
+ * {@code checkPermission} method denies calling {@code setLevel}
* @see SecurityManager#checkPermission
+ * @see LoggingPermission
*/
public static void setLogger(Logger logger, Level level) {
// singleton
--- a/jdk/src/share/classes/javax/swing/JLayer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/JLayer.java Tue Nov 02 22:15:35 2010 -0700
@@ -29,6 +29,7 @@
import javax.swing.plaf.LayerUI;
import javax.swing.border.Border;
+import javax.accessibility.*;
import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
@@ -149,7 +150,7 @@
*/
public final class JLayer<V extends Component>
extends JComponent
- implements Scrollable, PropertyChangeListener {
+ implements Scrollable, PropertyChangeListener, Accessible {
private V view;
// this field is necessary because JComponent.ui is transient
// when layerUI is serializable
@@ -666,6 +667,22 @@
}
/**
+ * Gets the AccessibleContext associated with this {@code JLayer}.
+ *
+ * @return the AccessibleContext associated with this {@code JLayer}.
+ */
+ public AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessibleJComponent() {
+ public AccessibleRole getAccessibleRole() {
+ return AccessibleRole.PANEL;
+ }
+ };
+ }
+ return accessibleContext;
+ }
+
+ /**
* static AWTEventListener to be shared with all AbstractLayerUIs
*/
private static class LayerEventController implements AWTEventListener {
--- a/jdk/src/share/classes/javax/swing/JTable.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/JTable.java Tue Nov 02 22:15:35 2010 -0700
@@ -2491,7 +2491,7 @@
* The default value of this property is defined by the look
* and feel implementation.
* <p>
- * This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/whatis/beanDefinition.html">JavaBeans</a> bound property.
+ * This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html">JavaBeans</a> bound property.
*
* @param selectionForeground the <code>Color</code> to use in the foreground
* for selected list items
@@ -2529,7 +2529,7 @@
* The default value of this property is defined by the look
* and feel implementation.
* <p>
- * This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/whatis/beanDefinition.html">JavaBeans</a> bound property.
+ * This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html">JavaBeans</a> bound property.
*
* @param selectionBackground the <code>Color</code> to use for the background
* of selected cells
--- a/jdk/src/share/classes/javax/swing/UIDefaults.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/UIDefaults.java Tue Nov 02 22:15:35 2010 -0700
@@ -52,6 +52,7 @@
import java.security.PrivilegedAction;
import sun.reflect.misc.MethodUtil;
+import sun.reflect.misc.ReflectUtil;
import sun.util.CoreResourceBundleControl;
/**
@@ -1078,6 +1079,9 @@
// In order to pick up the security policy in effect at the
// time of creation we use a doPrivileged with the
// AccessControlContext that was in place when this was created.
+ if (acc == null && System.getSecurityManager() != null) {
+ throw new SecurityException("null AccessControlContext");
+ }
return AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
try {
@@ -1093,7 +1097,9 @@
cl = ClassLoader.getSystemClassLoader();
}
}
+ ReflectUtil.checkPackageAccess(className);
c = Class.forName(className, true, (ClassLoader)cl);
+ checkAccess(c.getModifiers());
if (methodName != null) {
Class[] types = getClassArray(args);
Method m = c.getMethod(methodName, types);
@@ -1101,6 +1107,7 @@
} else {
Class[] types = getClassArray(args);
Constructor constructor = c.getConstructor(types);
+ checkAccess(constructor.getModifiers());
return constructor.newInstance(args);
}
} catch(Exception e) {
@@ -1115,6 +1122,13 @@
}, acc);
}
+ private void checkAccess(int modifiers) {
+ if(System.getSecurityManager() != null &&
+ !Modifier.isPublic(modifiers)) {
+ throw new SecurityException("Resource is not accessible");
+ }
+ }
+
/*
* Coerce the array of class types provided into one which
* looks the way the Reflection APIs expect. This is done
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java Tue Nov 02 22:15:35 2010 -0700
@@ -141,6 +141,22 @@
private JPanel accessoryPanel = null;
private Handler handler;
+ /**
+ * Creates a {@code BasicFileChooserUI} implementation
+ * for the specified component. By default
+ * the {@code BasicLookAndFeel} class uses
+ * {@code createUI} methods of all basic UIs classes
+ * to instantiate UIs.
+ *
+ * @param c the {@code JFileChooser} which needs a UI
+ * @return the {@code BasicFileChooserUI} object
+ *
+ * @see UIDefaults#getUI(JComponent)
+ * @since 1.7
+ */
+ public static ComponentUI createUI(JComponent c) {
+ return new BasicFileChooserUI((JFileChooser) c);
+ }
public BasicFileChooserUI(JFileChooser b) {
}
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java Tue Nov 02 22:15:35 2010 -0700
@@ -269,6 +269,7 @@
"InternalFrameUI", basicPackageName + "BasicInternalFrameUI",
"DesktopPaneUI", basicPackageName + "BasicDesktopPaneUI",
"DesktopIconUI", basicPackageName + "BasicDesktopIconUI",
+ "FileChooserUI", basicPackageName + "BasicFileChooserUI",
"OptionPaneUI", basicPackageName + "BasicOptionPaneUI",
"PanelUI", basicPackageName + "BasicPanelUI",
"ViewportUI", basicPackageName + "BasicViewportUI",
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,8 @@
*/
package javax.swing.text.html;
+import sun.awt.AppContext;
+
import java.lang.reflect.Method;
import java.awt.*;
import java.awt.event.*;
@@ -369,7 +371,11 @@
* if desired.
*/
public void setStyleSheet(StyleSheet s) {
- defaultStyles = s;
+ if (s == null) {
+ AppContext.getAppContext().remove(DEFAULT_STYLES_KEY);
+ } else {
+ AppContext.getAppContext().put(DEFAULT_STYLES_KEY, s);
+ }
}
/**
@@ -379,8 +385,12 @@
* instances.
*/
public StyleSheet getStyleSheet() {
+ AppContext appContext = AppContext.getAppContext();
+ StyleSheet defaultStyles = (StyleSheet) appContext.get(DEFAULT_STYLES_KEY);
+
if (defaultStyles == null) {
defaultStyles = new StyleSheet();
+ appContext.put(DEFAULT_STYLES_KEY, defaultStyles);
try {
InputStream is = HTMLEditorKit.getResourceAsStream(DEFAULT_CSS);
Reader r = new BufferedReader(
@@ -620,7 +630,7 @@
private static final ViewFactory defaultFactory = new HTMLFactory();
MutableAttributeSet input;
- private static StyleSheet defaultStyles = null;
+ private static final Object DEFAULT_STYLES_KEY = new Object();
private LinkController linkHandler = new LinkController();
private static Parser defaultParser = null;
private Cursor defaultCursor = DefaultCursor;
--- a/jdk/src/share/classes/javax/swing/text/html/parser/DTD.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/text/html/parser/DTD.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
package javax.swing.text.html.parser;
+import sun.awt.AppContext;
+
import java.io.PrintStream;
import java.io.File;
import java.io.FileInputStream;
@@ -314,13 +316,14 @@
}
/**
- * The hashtable of DTDs.
+ * The hashtable key of DTDs in AppContext.
*/
- static Hashtable<String, DTD> dtdHash = new Hashtable<String, DTD>();
+ private static final Object DTD_HASH_KEY = new Object();
- public static void putDTDHash(String name, DTD dtd) {
- dtdHash.put(name, dtd);
- }
+ public static void putDTDHash(String name, DTD dtd) {
+ getDtdHash().put(name, dtd);
+ }
+
/**
* Returns a DTD with the specified <code>name</code>. If
* a DTD with that name doesn't exist, one is created
@@ -332,13 +335,27 @@
*/
public static DTD getDTD(String name) throws IOException {
name = name.toLowerCase();
- DTD dtd = dtdHash.get(name);
+ DTD dtd = getDtdHash().get(name);
if (dtd == null)
dtd = new DTD(name);
return dtd;
}
+ private static Hashtable<String, DTD> getDtdHash() {
+ AppContext appContext = AppContext.getAppContext();
+
+ Hashtable<String, DTD> result = (Hashtable<String, DTD>) appContext.get(DTD_HASH_KEY);
+
+ if (result == null) {
+ result = new Hashtable<String, DTD>();
+
+ appContext.put(DTD_HASH_KEY, result);
+ }
+
+ return result;
+ }
+
/**
* Recreates a DTD from an archived format.
* @param in the <code>DataInputStream</code> to read from
--- a/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
package javax.swing.text.html.parser;
+import sun.awt.AppContext;
+
import javax.swing.text.html.HTMLEditorKit;
import java.io.BufferedInputStream;
import java.io.IOException;
@@ -33,7 +35,6 @@
import java.io.ObjectInputStream;
import java.io.Reader;
import java.io.Serializable;
-import java.lang.reflect.Method;
/**
* Responsible for starting up a new DocumentParser
@@ -45,9 +46,13 @@
public class ParserDelegator extends HTMLEditorKit.Parser implements Serializable {
- private static DTD dtd = null;
+ private static final Object DTD_KEY = new Object();
protected static synchronized void setDefaultDTD() {
+ AppContext appContext = AppContext.getAppContext();
+
+ DTD dtd = (DTD) appContext.get(DTD_KEY);
+
if (dtd == null) {
DTD _dtd = null;
// (PENDING) Hate having to hard code!
@@ -59,6 +64,8 @@
System.out.println("Throw an exception: could not get default dtd: " + nm);
}
dtd = createDTD(_dtd, nm);
+
+ appContext.put(DTD_KEY, dtd);
}
}
@@ -81,13 +88,11 @@
public ParserDelegator() {
- if (dtd == null) {
- setDefaultDTD();
- }
+ setDefaultDTD();
}
public void parse(Reader r, HTMLEditorKit.ParserCallback cb, boolean ignoreCharSet) throws IOException {
- new DocumentParser(dtd).parse(r, cb, ignoreCharSet);
+ new DocumentParser((DTD) AppContext.getAppContext().get(DTD_KEY)).parse(r, cb, ignoreCharSet);
}
/**
@@ -113,8 +118,6 @@
private void readObject(ObjectInputStream s)
throws ClassNotFoundException, IOException {
s.defaultReadObject();
- if (dtd == null) {
- setDefaultDTD();
- }
+ setDefaultDTD();
}
}
--- a/jdk/src/share/classes/sun/awt/AWTAccessor.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/awt/AWTAccessor.java Tue Nov 02 22:15:35 2010 -0700
@@ -26,6 +26,7 @@
package sun.awt;
import java.awt.*;
+import java.awt.event.InputEvent;
import java.awt.geom.Point2D;
import java.awt.image.BufferedImage;
@@ -301,6 +302,24 @@
* Marks the event as posted.
*/
void setPosted(AWTEvent ev);
+
+ /**
+ * Sets the flag on this AWTEvent indicating that it was
+ * generated by the system.
+ */
+ void setSystemGenerated(AWTEvent ev);
+
+ /**
+ * Indicates whether this AWTEvent was generated by the system.
+ */
+ boolean isSystemGenerated(AWTEvent ev);
+ }
+
+ public interface InputEventAccessor {
+ /*
+ * Accessor for InputEvent.getButtonDownMasks()
+ */
+ int[] getButtonDownMasks();
}
/*
@@ -436,6 +455,11 @@
private static AWTEventAccessor awtEventAccessor;
/*
+ * The java.awt.event.InputEvent class accessor object.
+ */
+ private static InputEventAccessor inputEventAccessor;
+
+ /*
* The java.awt.Frame class accessor object.
*/
private static FrameAccessor frameAccessor;
@@ -518,6 +542,23 @@
}
/*
+ * Set an accessor object for the java.awt.event.InputEvent class.
+ */
+ public static void setInputEventAccessor(InputEventAccessor iea) {
+ inputEventAccessor = iea;
+ }
+
+ /*
+ * Retrieve the accessor object for the java.awt.event.InputEvent class.
+ */
+ public static InputEventAccessor getInputEventAccessor() {
+ if (inputEventAccessor == null) {
+ unsafe.ensureClassInitialized(InputEvent.class);
+ }
+ return inputEventAccessor;
+ }
+
+ /*
* Set an accessor object for the java.awt.Frame class.
*/
public static void setFrameAccessor(FrameAccessor fa) {
--- a/jdk/src/share/classes/sun/awt/SunToolkit.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java Tue Nov 02 22:15:35 2010 -0700
@@ -313,6 +313,11 @@
*/
public static AppContext createNewAppContext() {
ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
+ // Create appContext before initialization of EventQueue, so all
+ // the calls to AppContext.getAppContext() from EventQueue ctor
+ // return correct values
+ AppContext appContext = new AppContext(threadGroup);
+
EventQueue eventQueue;
String eqName = System.getProperty("AWT.EventQueueClass",
"java.awt.EventQueue");
@@ -322,7 +327,6 @@
System.err.println("Failed loading " + eqName + ": " + e);
eventQueue = new EventQueue();
}
- AppContext appContext = new AppContext(threadGroup);
appContext.put(AppContext.EVENT_QUEUE_KEY, eventQueue);
PostEventQueue postEventQueue = new PostEventQueue(eventQueue);
@@ -587,6 +591,12 @@
if (event == null) {
throw new NullPointerException();
}
+ // All events posted via this method are system-generated.
+ // Placing the following call here reduces considerably the
+ // number of places throughout the toolkit that would
+ // otherwise have to be modified to precisely identify
+ // system-generated events.
+ setSystemGenerated(event);
AppContext eventContext = targetToAppContext(event.getSource());
if (eventContext != null && !eventContext.equals(appContext)) {
log.fine("Event posted on wrong app context : " + event);
@@ -2089,6 +2099,25 @@
}
return isInstanceOf(cls.getSuperclass(), type);
}
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // The following methods help set and identify whether a particular
+ // AWTEvent object was produced by the system or by user code. As of this
+ // writing the only consumer is the Java Plug-In, although this information
+ // could be useful to more clients and probably should be formalized in
+ // the public API.
+ //
+ ///////////////////////////////////////////////////////////////////////////
+
+ public static void setSystemGenerated(AWTEvent e) {
+ AWTAccessor.getAWTEventAccessor().setSystemGenerated(e);
+ }
+
+ public static boolean isSystemGenerated(AWTEvent e) {
+ return AWTAccessor.getAWTEventAccessor().isSystemGenerated(e);
+ }
+
} // class SunToolkit
--- a/jdk/src/share/classes/sun/awt/image/BufImgSurfaceData.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/awt/image/BufImgSurfaceData.java Tue Nov 02 22:15:35 2010 -0700
@@ -49,7 +49,7 @@
private BufferedImageGraphicsConfig graphicsConfig;
RenderLoops solidloops;
- private static native void initIDs(Class ICM);
+ private static native void initIDs(Class ICM, Class ICMColorData);
private static final int DCM_RGBX_RED_MASK = 0xff000000;
private static final int DCM_RGBX_GREEN_MASK = 0x00ff0000;
@@ -67,7 +67,7 @@
private static final int DCM_ARGBBM_BLUE_MASK = 0x000000ff;
static {
- initIDs(IndexColorModel.class);
+ initIDs(IndexColorModel.class, ICMColorData.class);
}
public static SurfaceData createData(BufferedImage bufImg) {
@@ -403,7 +403,7 @@
// their pixels are immediately retrievable anyway.
}
- public static native void freeNativeICMData(IndexColorModel icm);
+ private static native void freeNativeICMData(long pData);
/**
* Returns destination Image associated with this SurfaceData.
@@ -411,4 +411,19 @@
public Object getDestination() {
return bufImg;
}
+
+ public static final class ICMColorData {
+ private long pData = 0L;
+
+ private ICMColorData(long pData) {
+ this.pData = pData;
+ }
+
+ public void finalize() {
+ if (pData != 0L) {
+ BufImgSurfaceData.freeNativeICMData(pData);
+ pData = 0L;
+ }
+ }
+ }
}
--- a/jdk/src/share/classes/sun/jkernel/DownloadManager.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/jkernel/DownloadManager.java Tue Nov 02 22:15:35 2010 -0700
@@ -25,13 +25,18 @@
package sun.jkernel;
import java.io.*;
+import java.net.URLStreamHandlerFactory;
+import java.net.URL;
+import java.net.MalformedURLException;
import java.security.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.jar.*;
import java.util.zip.*;
+import sun.misc.BootClassLoaderHook;
import sun.misc.Launcher;
-import sun.misc.BootClassLoaderHook;
+import sun.misc.URLClassPath;
+import sun.net.www.ParseUtil;
/**
* Handles the downloading of additional JRE components. The bootstrap class
@@ -658,31 +663,61 @@
return getAppDataLocalLow() + getKernelJREDir();
}
- /**
- * Returns an array of JAR files which have been added to the boot strap
- * class path since the JVM was first booted.
- */
- public static synchronized File[] getAdditionalBootStrapPaths() {
- return additionalBootStrapPaths != null ? additionalBootStrapPaths :
- new File[0];
- }
-
-
+ // To be revisited:
+ // How DownloadManager maintains its bootstrap class path.
+ // sun.misc.Launcher.getBootstrapClassPath() returns
+ // DownloadManager.getBootstrapClassPath() instead.
+ //
+ // So should no longer need to lock the Launcher.class.
+ // In addition, additionalBootStrapPaths is not really needed
+ // if it obtains the initial bootclasspath during DownloadManager's
+ // initialization.
private static void addEntryToBootClassPath(File path) {
// Must acquire these locks in this order
synchronized(Launcher.class) {
- synchronized(DownloadManager.class) {
+ synchronized(DownloadManager.class) {
File[] newBootStrapPaths = new File[
additionalBootStrapPaths.length + 1];
System.arraycopy(additionalBootStrapPaths, 0, newBootStrapPaths,
0, additionalBootStrapPaths.length);
newBootStrapPaths[newBootStrapPaths.length - 1] = path;
additionalBootStrapPaths = newBootStrapPaths;
- Launcher.flushBootstrapClassPath();
+ if (bootstrapClassPath != null)
+ bootstrapClassPath.addURL(getFileURL(path));
}
}
}
+ /**
+ * Returns the kernel's bootstrap class path which includes the additional
+ * JARs downloaded
+ */
+ private static URLClassPath bootstrapClassPath = null;
+ private synchronized static
+ URLClassPath getBootClassPath(URLClassPath bcp,
+ URLStreamHandlerFactory factory)
+ {
+ if (bootstrapClassPath == null) {
+ bootstrapClassPath = new URLClassPath(bcp.getURLs(), factory);
+ for (File path : additionalBootStrapPaths) {
+ bootstrapClassPath.addURL(getFileURL(path));
+ }
+ }
+ return bootstrapClassPath;
+ }
+
+ private static URL getFileURL(File file) {
+ try {
+ file = file.getCanonicalFile();
+ } catch (IOException e) {}
+
+ try {
+ return ParseUtil.fileToEncodedURL(file);
+ } catch (MalformedURLException e) {
+ // Should never happen since we specify the protocol...
+ throw new InternalError();
+ }
+ }
/**
* Scan through java.ext.dirs to see if the lib/ext directory is included.
@@ -1680,8 +1715,10 @@
}
}
- public File[] getAdditionalBootstrapPaths() {
- return DownloadManager.getAdditionalBootStrapPaths();
+ public URLClassPath getBootstrapClassPath(URLClassPath bcp,
+ URLStreamHandlerFactory factory)
+ {
+ return DownloadManager.getBootClassPath(bcp, factory);
}
public boolean isCurrentThreadPrefetching() {
--- a/jdk/src/share/classes/sun/launcher/resources/launcher.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher.properties Tue Nov 02 22:15:35 2010 -0700
@@ -49,7 +49,7 @@
\ -version:<value>\n\
\ require the specified version to run\n\
\ -showversion print product version and continue\n\
-\ -jre-restrict-search | -jre-no-restrict-search\n\
+\ -jre-restrict-search | -no-jre-restrict-search\n\
\ include/exclude user private JREs in the version search\n\
\ -? -help print this help message\n\
\ -X print help on non-standard options\n\
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ da Sie auf einem Server-Class-Computer ausf\u00fchren.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien>\n\ -classpath <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien >\n\ A {0} getrennte Liste von Verzeichnissen, JAR-Archiven,\n\ und ZIP-Archiven f\u00fcr die Suche nach Klassendateien .\n\ -D<Name>=<Wert>\n\ Systemeigenschaft festlegen\n\ -verbose[:class|gc|jni]\n\ ausf\u00fchrliche Ausgabe aktivieren\n\ -version Produktversion drucken und beenden\n\ -version:<Wert>\n\ angegebene Version zum Ausf\u00fchren erforderlich \n\ -showversion Produktversion drucken und fortfahren\n\ -jre-restrict-search | -jre-no-restrict-search\n\ private JREs der Benutzer in Versionssuche ein-/ausschlie\u00dfen\n\ -? -help diese Hilfemeldung drucken\n\ -X Hilfe zu nicht standardm\u00e4\u00dfigen Optionen drucken\n\ -ea[:<Paketname>...|:<Klassenname>]\n\ -enableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t aktivieren\n\ -da[:<Paketname>...|:<Klassenname>]\n\ -disableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t deaktivieren\n\ -esa | --enablesystemassertions\n\ System-Assertions aktivieren\n\ -dsa | --disablesystemassertions\n\ System-Assertions deaktivieren\n\ -agentlib:<Name der Bibliothek>[=<Optionen>]\n\ systemeigene Agent-Bibliothek laden <Name der Bibliothek>, z.B. -agentlib:hprof\n\ siehe auch, -agentlib:jdwp=help und -agentlib:hprof=help\n\ -agentpath:<Pfadname>[=<Optionen>]\n\ systemeigene Agent-Bibliothek \u00fcber vollst\u00e4ndigen Pfadnamen laden\n\ -javaagent:<Jar-Pfad>[=<Optionen>]\n\ Java Programmierungs-Sprachagenten laden, siehe java.lang.instrument\n\ -splash:<Bildpfad>\n\ Eingangsbildschirm mit spezifiziertem Bild anzeigen\nWeitere Informationen finden Sie unter http://java.sun.com/javase/reference.
+java.launcher.opt.footer =\ -cp <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien>\n\ -classpath <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien >\n\ A {0} getrennte Liste von Verzeichnissen, JAR-Archiven,\n\ und ZIP-Archiven f\u00fcr die Suche nach Klassendateien .\n\ -D<Name>=<Wert>\n\ Systemeigenschaft festlegen\n\ -verbose[:class|gc|jni]\n\ ausf\u00fchrliche Ausgabe aktivieren\n\ -version Produktversion drucken und beenden\n\ -version:<Wert>\n\ angegebene Version zum Ausf\u00fchren erforderlich \n\ -showversion Produktversion drucken und fortfahren\n\ -jre-restrict-search | -no-jre-restrict-search\n\ private JREs der Benutzer in Versionssuche ein-/ausschlie\u00dfen\n\ -? -help diese Hilfemeldung drucken\n\ -X Hilfe zu nicht standardm\u00e4\u00dfigen Optionen drucken\n\ -ea[:<Paketname>...|:<Klassenname>]\n\ -enableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t aktivieren\n\ -da[:<Paketname>...|:<Klassenname>]\n\ -disableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t deaktivieren\n\ -esa | --enablesystemassertions\n\ System-Assertions aktivieren\n\ -dsa | --disablesystemassertions\n\ System-Assertions deaktivieren\n\ -agentlib:<Name der Bibliothek>[=<Optionen>]\n\ systemeigene Agent-Bibliothek laden <Name der Bibliothek>, z.B. -agentlib:hprof\n\ siehe auch, -agentlib:jdwp=help und -agentlib:hprof=help\n\ -agentpath:<Pfadname>[=<Optionen>]\n\ systemeigene Agent-Bibliothek \u00fcber vollst\u00e4ndigen Pfadnamen laden\n\ -javaagent:<Jar-Pfad>[=<Optionen>]\n\ Java Programmierungs-Sprachagenten laden, siehe java.lang.instrument\n\ -splash:<Bildpfad>\n\ Eingangsbildschirm mit spezifiziertem Bild anzeigen\nWeitere Informationen finden Sie unter http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed gemischte Ausf\u00fchrung des Modus (Standard)\n\ -Xint nur interpretierte Ausf\u00fchrung des Modus\n\ -Xbootclasspath:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ Suchpfad f\u00fcr Bootstrap-Klassen und Ressourcen einrichten\n\ -Xbootclasspath/a:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an das Ende des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xbootclasspath/p:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an den Beginn des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xnoclassgc Klassen-Speicherbereinigung deaktivieren\n\ -Xincgc inkrementelle Speicherbereinigung aktivieren\n\ -Xloggc:<Datei> GC-Status f\u00fcr eine Datei mit Zeitstempeln einrichten\n\ -Xbatch Hintergrund-Kompilation deaktivieren\n\ -Xms<Gr\u00f6\u00dfe> anf\u00e4ngliche Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xmx<Gr\u00f6\u00dfe> maximale Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xss<Gr\u00f6\u00dfe> Gr\u00f6\u00dfe des Java Thread-Stack einstellen\n\ -Xprof CPU-Profildaten ausgeben\n\ -Xfuture genaueste Pr\u00fcfungen aktivieren und zuk\u00fcnftige Standards absehen\n\ -Xrs Verwendung von OS-Signalen durch Java/VM reduzieren (siehe Dokumentation)\n\ -Xcheck:jni zus\u00e4tzliche Pr\u00fcfungen f\u00fcr JNI- Funktionen ausf\u00fchren\n\ -Xshare:off Nicht versuchen, freigegebene Klassendaten zu verwenden\n\ -Xshare:auto Freigegebene Klassendaten verwenden, wenn m\u00f6glich (Standard)\n\ -Xshare:on Nutzung freigegebener Daten ist erforderlich, ansonsten schl\u00e4gt der Vorgang fehl.\n\nDie -X-Optionen sind kein Standard und k\u00f6nnen \u00c4nderungen unterliegen.\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ porque est\u00e1 trabajando en una m\u00e1quina de clase servidor.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n\ -classpath <class search path of directories and zip/jar files>\n\ Una {0} lista de directorios, archivos JAR,\n\ y archivos ZIP en los que buscar los archivos de clase.\n\ -D<name>=<value>\n\ establecer una propiedad de sistema\n\ -verbose[:class|gc|jni]\n\ permitir la salida detallada\n\ -version imprimir versi\u00f3n del producto y salir\n\ -version:<value>\n\ solicitar la versi\u00f3n especificada para ejecutar\n\ -showversion imprimir versi\u00f3n del producto y continuar\n\ -jre-restrict-search | -jre-no-restrict-search\n\ incluir/excluir JRE privados del usuario en la b\u00fasqueda de la versi\u00f3n\n\ -? -help imprimir este mensaje de ayuda\n\ -X imprimir ayuda en las opciones no est\u00e1ndar\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ permitir afirmaciones con granularidad especificada\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ desactivar afirmaciones con granularidad especificada\n\ -esa | -enablesystemassertions\n\ permitir afirmaciones del sistema\n\ -dsa | -disablesystemassertions\n\ desactivar afirmaciones del sistema\n\ -agentlib:<libname>[=<options>]\n\ cargar biblioteca de agente nativo<libname>, por ejemplo -agentlib:hprof\n\ consulte tambi\u00e9n, -agentlib:jdwp=help y -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ cargar biblioteca de agente nativo por ruta completa\n\ -javaagent:<jarpath>[=<options>]\n\ cargar agente del lenguaje de programaci\u00f3n Java, consulte java.lang.instrument\n\ -splash:<imagepath>\n\ mostrar pantalla de bienvenida con imagen especificada\nConsulte http://java.sun.com/javase/reference para m\u00e1s informaci\u00f3n.
+java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n\ -classpath <class search path of directories and zip/jar files>\n\ Una {0} lista de directorios, archivos JAR,\n\ y archivos ZIP en los que buscar los archivos de clase.\n\ -D<name>=<value>\n\ establecer una propiedad de sistema\n\ -verbose[:class|gc|jni]\n\ permitir la salida detallada\n\ -version imprimir versi\u00f3n del producto y salir\n\ -version:<value>\n\ solicitar la versi\u00f3n especificada para ejecutar\n\ -showversion imprimir versi\u00f3n del producto y continuar\n\ -jre-restrict-search | -no-jre-restrict-search\n\ incluir/excluir JRE privados del usuario en la b\u00fasqueda de la versi\u00f3n\n\ -? -help imprimir este mensaje de ayuda\n\ -X imprimir ayuda en las opciones no est\u00e1ndar\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ permitir afirmaciones con granularidad especificada\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ desactivar afirmaciones con granularidad especificada\n\ -esa | -enablesystemassertions\n\ permitir afirmaciones del sistema\n\ -dsa | -disablesystemassertions\n\ desactivar afirmaciones del sistema\n\ -agentlib:<libname>[=<options>]\n\ cargar biblioteca de agente nativo<libname>, por ejemplo -agentlib:hprof\n\ consulte tambi\u00e9n, -agentlib:jdwp=help y -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ cargar biblioteca de agente nativo por ruta completa\n\ -javaagent:<jarpath>[=<options>]\n\ cargar agente del lenguaje de programaci\u00f3n Java, consulte java.lang.instrument\n\ -splash:<imagepath>\n\ mostrar pantalla de bienvenida con imagen especificada\nConsulte http://java.sun.com/javase/reference para m\u00e1s informaci\u00f3n.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed modo mixto de ejecuci\u00f3n (predeterminado)\n\ -Xint s\u00f3lo modo de ejecuci\u00f3n interpretado\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ definir ruta de b\u00fasqueda para clases y recursos de la rutina de carga\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al final de la ruta de clase de la rutina de carga\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al principio de la ruta de clase de la rutina de carga\n\ -Xnoclassgc desactivar recolecci\u00f3n de residuos de clase\n\ -Xincgc permitir recolecci\u00f3n de residuos incremental\n\ -Xloggc:<file> registrar estado de GC en un archivo con marcas de tiempo\n\ -Xbatch desactivar recopilaci\u00f3n de fondos\n\ -Xms<size> definir tama\u00f1o del mont\u00f3n de Java inicial\n\ -Xmx<size> definir tama\u00f1o m\u00e1ximo del mont\u00f3n de Java\n\ -Xss<size> definir tama\u00f1o de la pila del subproceso de java\n\ -Xprof salida de datos del perfil de la cpu\n\ -Xfuture permitir comprobaciones m\u00e1s estrictas para los procesos predeterminados futuros\n\ -Xrs reducir el uso de se\u00f1ales del SO por parte de Java o la m\u00e1quina virtual (consulte la documentaci\u00f3n)\n\ -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n\ -Xshare:off no intentar utilizar datos de clase compartidos\n\ -Xshare:auto utilizar datos de clase compartidos siempre que sea posible (predeterminado)\n\ -Xshare:on solicitar el uso obligatorio de datos de clase compartidos.\n\nLas opciones "-X" no son est\u00e1ndar y pueden sufrir modificaciones sin previo aviso.\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ car vous utilisez une machine de type serveur.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ -classpath <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ Une liste s\u00e9par\u00e9e {0} de r\u00e9pertoires, archives JAR\n\ et archives ZIP dans laquelle rechercher des fichiers de classe.\n\ -D<nom>=<valeur>\n\ d\u00e9finir une propri\u00e9t\u00e9 syst\u00e8me\n\ -verbose[:class|gc|jni]\n\ activer une sortie d\u00e9taill\u00e9ee\n\ -version imprimer la version du produit et quitter\n\ -version:<valeur>\n\ utiliser la version sp\u00e9cifi\u00e9e pour l''ex\u00e9cution\n\ -showversion imprimer la version du produit et continuer\n\ -jre-restrict-search | -jre-no-restrict-search\n\ inclure/exclure les JRE priv\u00e9s d''utilisateur dans la recherche de version\n\ -? -help imprimer ce message d''aide\n\ -X imprimer l''aide relative aux options non standard\n\ -ea[:<nom du package>...|:<nom de la classe>]\n\ -enableassertions[:<nom du package>...|:<nom de la classe>]\n\ activer les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -da[:<nom du package>...|:<nom de la classe>]\n\ -disableassertions[:<nom du package>...|:<nom de la classe>]\n\ d\u00e9sactiver les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -esa | -enablesystemassertions\n\ activer les assertions syst\u00e8me\n\ -dsa | -disablesystemassertions\n\ d\u00e9sactiver les assertions syst\u00e8me\n\ -agentlib:<nom de la biblioth\u00e8que>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs<nom de la biblioth\u00e8que>, par exemple -agentlib:hprof\n\ voir \u00e9galement, -agentlib:jdwp=help et -agentlib:hprof=help\n\ -agentpath:<nom du chemin>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs en indiquant le chemin complet\n\ -javaagent:<chemin jar>[=<options>]\n\ charger l''agent de langage de programmation Java, voir java.lang.instrument\n\ -splash:<chemin de l''image>\n\ afficher l''\u00e9cran de bienvenue avec l''image sp\u00e9cifi\u00e9e\nPour plus de d\u00e9tails, reportez-vous \u00e0 la page http://java.sun.com/javase/reference.
+java.launcher.opt.footer =\ -cp <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ -classpath <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ Une liste s\u00e9par\u00e9e {0} de r\u00e9pertoires, archives JAR\n\ et archives ZIP dans laquelle rechercher des fichiers de classe.\n\ -D<nom>=<valeur>\n\ d\u00e9finir une propri\u00e9t\u00e9 syst\u00e8me\n\ -verbose[:class|gc|jni]\n\ activer une sortie d\u00e9taill\u00e9ee\n\ -version imprimer la version du produit et quitter\n\ -version:<valeur>\n\ utiliser la version sp\u00e9cifi\u00e9e pour l''ex\u00e9cution\n\ -showversion imprimer la version du produit et continuer\n\ -jre-restrict-search | -no-jre-restrict-search\n\ inclure/exclure les JRE priv\u00e9s d''utilisateur dans la recherche de version\n\ -? -help imprimer ce message d''aide\n\ -X imprimer l''aide relative aux options non standard\n\ -ea[:<nom du package>...|:<nom de la classe>]\n\ -enableassertions[:<nom du package>...|:<nom de la classe>]\n\ activer les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -da[:<nom du package>...|:<nom de la classe>]\n\ -disableassertions[:<nom du package>...|:<nom de la classe>]\n\ d\u00e9sactiver les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -esa | -enablesystemassertions\n\ activer les assertions syst\u00e8me\n\ -dsa | -disablesystemassertions\n\ d\u00e9sactiver les assertions syst\u00e8me\n\ -agentlib:<nom de la biblioth\u00e8que>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs<nom de la biblioth\u00e8que>, par exemple -agentlib:hprof\n\ voir \u00e9galement, -agentlib:jdwp=help et -agentlib:hprof=help\n\ -agentpath:<nom du chemin>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs en indiquant le chemin complet\n\ -javaagent:<chemin jar>[=<options>]\n\ charger l''agent de langage de programmation Java, voir java.lang.instrument\n\ -splash:<chemin de l''image>\n\ afficher l''\u00e9cran de bienvenue avec l''image sp\u00e9cifi\u00e9e\nPour plus de d\u00e9tails, reportez-vous \u00e0 la page http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed ex\u00e9cution du mode compil\u00e9 (par d\u00e9faut)\n\ -Xint ex\u00e9cution du mode interpr\u00e9t\u00e9 uniquement\n\ -Xbootclasspath:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ d\u00e9finir le chemin de recherche pour les classes et ressources bootstrap\n\ -Xbootclasspath/a:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter \u00e0 la fin du chemin de la classe bootstrap\n\ -Xbootclasspath/p:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter au d\u00e9but du chemin de la classe bootstrap\n\ -Xnoclassgc d\u00e9sactiver la collection d''informations parasites sur la classe\n\ -Xincgc activer la collection incr\u00e9mentielle d''informations parasites\n\ -Xloggc:<fichier> enregistrer le statut GC dans un fichier horodat\u00e9\n\ -Xbatch d\u00e9sactiver la compilation d''arri\u00e8re-plans\n\ -Xms<taille> d\u00e9finir la taille initiale des tas Java\n\ -Xmx<taille> d\u00e9finir la taille maximale des tas Java\n\ -Xss<taille> d\u00e9finir la taille des piles de fil Java\n\ -Xprof \u00e9mettre des donn\u00e9es de profilage d''UC\n\ -Xfuture activer des contr\u00f4les plus stricts, en anticipant les erreurs futures\n\ -Xrs r\u00e9duire l''utilisation des signaux d''OS par Java/la machine virtuelle (reportez-vous \u00e0 la documentation)\n\ -Xcheck:jni effectuer des contr\u00f4les suppl\u00e9mentaires pour les fonctions JNI\n\ -Xshare:off ne pas tenter d''utiliser les donn\u00e9es de classe partag\u00e9es\n\ -Xshare:auto utiliser les donn\u00e9es de classe partag\u00e9es si possible (par d\u00e9faut)\n\ -Xshare:on forcer l''utilisation de donn\u00e9es de classe partag\u00e9es, sinon \u00e9chec.\n\nLes options\u00a0X ne sont pas standard et sont sujettes \u00e0 modification sans pr\u00e9avis.\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ perch\u00e9 l'esecuzione avviene su una macchina di classe server.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <percorso di ricerca classe di directory e file zip/jar>\n\ -classpath <percorso di ricerca classe di directory e file zip/jar>\n\ Elenco separato da {0} di directory, archivi JAR\n\ e archivi ZIP in cui cercare i file di classe.\n\ -D<nome>=<valore>\n\ imposta una propriet\u00e0 di sistema\n\ -verbose[:class|gc|jni]\n\ attiva l''output dettagliato\n\ -version stampa la versione del prodotto ed esce\n\ -version:<valore>\n\ richiede la versione specificata per l''esecuzione\n\ -showversion stampa la versione del prodotto e procede\n\ -jre-restrict-search | -jre-no-restrict-search\n\ consente di includere/escludere JRE privati dell''utente nella ricerca della versione\n\ -? -help stampa il presente messaggio della Guida\n\ -X stampa la Guida delle opzioni non standard\n\ -ea[:<nomepacchetto>...|:<nomeclasse>]\n\ -enableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ attiva le asserzioni con la granularit\u00e0 specificata\n\ -da[:<nomepacchetto>...|:<nomeclasse>]\n\ -disableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ disattiva le asserzioni con la granularit\u00e0 specificata\n\ -esa | -enablesystemassertions\n\ attiva le asserzioni di sistema\n\ -dsa | -disablesystemassertions\n\ disattiva le asserzioni di sistema\n\ -agentlib:<nomelibreria>[=<opzioni>]\n\ carica la libreria agente nativa <nomelibreria>, ad es. -agentlib:hprof\n\ vedere anche, -agentlib:jdwp=help e -agentlib:hprof=help\n\ -agentpath:<percorso>[=<opzioni>]\n\ carica la libreria agente nativa in base al percorso completo\n\ -javaagent:<percorsojar>[=<opzioni>]\n\ carica l''agente del linguaggio di programmazione Java, vedere java.lang.instrument\n\ -splash:<percorsoimmagine>\n\ mostra la schermata iniziale con l''immagine specificata\nPer ulteriori informazioni, visitare http://java.sun.com/javase/reference.
+java.launcher.opt.footer =\ -cp <percorso di ricerca classe di directory e file zip/jar>\n\ -classpath <percorso di ricerca classe di directory e file zip/jar>\n\ Elenco separato da {0} di directory, archivi JAR\n\ e archivi ZIP in cui cercare i file di classe.\n\ -D<nome>=<valore>\n\ imposta una propriet\u00e0 di sistema\n\ -verbose[:class|gc|jni]\n\ attiva l''output dettagliato\n\ -version stampa la versione del prodotto ed esce\n\ -version:<valore>\n\ richiede la versione specificata per l''esecuzione\n\ -showversion stampa la versione del prodotto e procede\n\ -jre-restrict-search | -no-jre-restrict-search\n\ consente di includere/escludere JRE privati dell''utente nella ricerca della versione\n\ -? -help stampa il presente messaggio della Guida\n\ -X stampa la Guida delle opzioni non standard\n\ -ea[:<nomepacchetto>...|:<nomeclasse>]\n\ -enableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ attiva le asserzioni con la granularit\u00e0 specificata\n\ -da[:<nomepacchetto>...|:<nomeclasse>]\n\ -disableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ disattiva le asserzioni con la granularit\u00e0 specificata\n\ -esa | -enablesystemassertions\n\ attiva le asserzioni di sistema\n\ -dsa | -disablesystemassertions\n\ disattiva le asserzioni di sistema\n\ -agentlib:<nomelibreria>[=<opzioni>]\n\ carica la libreria agente nativa <nomelibreria>, ad es. -agentlib:hprof\n\ vedere anche, -agentlib:jdwp=help e -agentlib:hprof=help\n\ -agentpath:<percorso>[=<opzioni>]\n\ carica la libreria agente nativa in base al percorso completo\n\ -javaagent:<percorsojar>[=<opzioni>]\n\ carica l''agente del linguaggio di programmazione Java, vedere java.lang.instrument\n\ -splash:<percorsoimmagine>\n\ mostra la schermata iniziale con l''immagine specificata\nPer ulteriori informazioni, visitare http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00e0 mista (predefinita)\n\ -Xint solo esecuzione in modalit\u00e0 interpretata\n\ -Xbootclasspath:<directory e file zip/jar separati da {0}>\n\ imposta il percorso di ricerca per classi e risorse di bootstrap\n\ -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n\ accoda alla fine del percorso della classe di bootstrap\n\ -Xbootclasspath/p:<directory e file zip/jar separati da {0}>\n\ antepone al percorso della classe di bootsrap\n\ -Xnoclassgc disattiva Garbage Collection per la classe\n\ -Xincgc attiva Garbage Collection incrementale\n\ -Xloggc:<file> registra lo stato GC in un file con timestamp\n\ -Xbatch disattiva la compilazione in background\n\ -Xms<dimensione> imposta la dimensione heap Java iniziale\n\ -Xmx<dimensione> imposta la dimensione heap Java massima\n\ -Xss<dimensione> imposta la dimensione dello stack del thread Java\n\ -Xprof dati di profilo della CPU di output\n\ -Xfuture attiva verifiche pi\u00f9 dettagliate, anticipa le impostazioni predefinite future\n\ -Xrs riduce l''uso di segnali OS da parte di Java o della macchina virtuale (vedere la documentazione)\n\ -Xcheck:jni esegue verifiche aggiuntive per le funzioni JNI\n\ -Xshare:off esclude l''utilizzo di dati classe condivisi\n\ -Xshare:auto imposta l''utilizzo di dati classe condivisi ogni volta che \u00e8 possibile (impostazione predefinita)\n\ -Xshare:on richiede l''utilizzo di dati classe condivisi, in caso contrario origina un errore.\n\nLe opzioni -X sono non standard e soggette a modifiche senza preavviso.\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ \u7406\u7531\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30af\u30e9\u30b9\u306e\u30de\u30b7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ -classpath <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001JAR \u30a2\u30fc\u30ab\u30a4\u30d6\u3001\n\ \u304a\u3088\u3073 ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306e {0} \u3067\u5206\u5272\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3002\n\ -D<name>=<value>\n\ \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u8a2d\u5b9a\n\ -verbose[:class|gc|jni]\n\ \u8a73\u7d30\u51fa\u529b\u306e\u6709\u52b9\u5316\n\ -version \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d42\u4e86\n\ -version:<value>\n\ \u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8981\u6c42\n\ -showversion \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d99\u7d9a\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u30d0\u30fc\u30b8\u30e7\u30f3\u691c\u7d22\u306b\u30e6\u30fc\u30b6\u30fc\u306e\u975e\u516c\u958b JRE \u3092\u542b\u3081\u308b\u304b\u9664\u5916\u3059\u308b\u304b\u3092\u5207\u308a\u66ff\u3048\u308b\n\ -? -help \u3053\u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5370\u5237\n\ -X \u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30d8\u30eb\u30d7\u3092\u5370\u5237\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -esa | -enablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -dsa | -disablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -agentlib:<libname>[=<options>]\n\ \u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea <libname> (\u4f8b: -agentlib:hprof) \u3092\u30ed\u30fc\u30c9\n\ \u95a2\u9023\u9805\u76ee\u3001 -agentlib:jdwp=help and -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u5b8c\u5168\u306a\u30d1\u30b9\u540d\u3067\u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ed\u30fc\u30c9\n\ -javaagent:<jarpath>[=<options>]\n\ Java \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30ed\u30fc\u30c9\u3002java.lang.instrument \u3092\u53c2\u7167\n\ -splash:<imagepath>\n\ \u6307\u5b9a\u3057\u305f\u753b\u50cf\u306e\u30b9\u30d7\u30e9\u30c3\u30b7\u30e5\u753b\u9762\u3092\u8868\u793a\n\u8a73\u7d30\u306f http://java.sun.com/javase/reference \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+java.launcher.opt.footer =\ -cp <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ -classpath <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001JAR \u30a2\u30fc\u30ab\u30a4\u30d6\u3001\n\ \u304a\u3088\u3073 ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306e {0} \u3067\u5206\u5272\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3002\n\ -D<name>=<value>\n\ \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u8a2d\u5b9a\n\ -verbose[:class|gc|jni]\n\ \u8a73\u7d30\u51fa\u529b\u306e\u6709\u52b9\u5316\n\ -version \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d42\u4e86\n\ -version:<value>\n\ \u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8981\u6c42\n\ -showversion \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d99\u7d9a\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \u30d0\u30fc\u30b8\u30e7\u30f3\u691c\u7d22\u306b\u30e6\u30fc\u30b6\u30fc\u306e\u975e\u516c\u958b JRE \u3092\u542b\u3081\u308b\u304b\u9664\u5916\u3059\u308b\u304b\u3092\u5207\u308a\u66ff\u3048\u308b\n\ -? -help \u3053\u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5370\u5237\n\ -X \u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30d8\u30eb\u30d7\u3092\u5370\u5237\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -esa | -enablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -dsa | -disablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -agentlib:<libname>[=<options>]\n\ \u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea <libname> (\u4f8b: -agentlib:hprof) \u3092\u30ed\u30fc\u30c9\n\ \u95a2\u9023\u9805\u76ee\u3001 -agentlib:jdwp=help and -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u5b8c\u5168\u306a\u30d1\u30b9\u540d\u3067\u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ed\u30fc\u30c9\n\ -javaagent:<jarpath>[=<options>]\n\ Java \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30ed\u30fc\u30c9\u3002java.lang.instrument \u3092\u53c2\u7167\n\ -splash:<imagepath>\n\ \u6307\u5b9a\u3057\u305f\u753b\u50cf\u306e\u30b9\u30d7\u30e9\u30c3\u30b7\u30e5\u753b\u9762\u3092\u8868\u793a\n\u8a73\u7d30\u306f http://java.sun.com/javase/reference \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u30e2\u30fc\u30c9\u3067\u306e\u5b9f\u884c (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xint \u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30bf\u30e2\u30fc\u30c9\u3067\u306e\u307f\u5b9f\u884c\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u304a\u3088\u3073\u30ea\u30bd\u30fc\u30b9\u306e\u691c\u7d22\u30d1\u30b9\u3092\u8a2d\u5b9a\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u672b\u5c3e\u306b\u8ffd\u52a0\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u5192\u982d\u306b\u8ffd\u52a0\n\ -Xnoclassgc \u30af\u30e9\u30b9\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xincgc \u5897\u5206\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xloggc:<file> \u30d5\u30a1\u30a4\u30eb\u306e GC \u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u4ed8\u304d\u3067\u8a18\u9332\n\ -Xbatch \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u7121\u52b9\u5316\n\ -Xms<size> \u521d\u671f Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xmx<size> \u6700\u5927 Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xss<size> Java \u30b9\u30ec\u30c3\u30c9\u30b9\u30bf\u30c3\u30af\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xprof CPU \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30c7\u30fc\u30bf\u3092\u51fa\u529b\n\ -Xfuture \u4eca\u5f8c\u30c7\u30d5\u30a9\u30eb\u30c8\u3068\u3059\u308b\u6700\u3082\u53b3\u683c\u306a\u30c1\u30a7\u30c3\u30af\u3092\u6709\u52b9\u5316\n\ -Xrs Java/VM \u306e OS \u30b7\u30b0\u30ca\u30eb\u4f7f\u7528\u3092\u524a\u6e1b (\u30de\u30cb\u30e5\u30a2\u30eb\u3092\u53c2\u7167)\n\ -Xcheck:jni JNI \u95a2\u6570\u306e\u8ffd\u52a0\u30c1\u30a7\u30c3\u30af\u3092\u5b9f\u884c\n\ -Xshare:off \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8a66\u884c\u3057\u306a\u3044\n\ -Xshare:auto \u53ef\u80fd\u306a\u5834\u5408\u306f\u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u3092\u4f7f\u7528 (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xshare:on \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8981\u6c42 (\u305d\u3046\u3057\u306a\u3044\u3068\u969c\u5bb3\u304c\u767a\u751f\u3059\u308b\u5834\u5408)\n\n-X \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u975e\u6a19\u6e96\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u3001\u4e88\u544a\u306a\u304f\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ \uadf8 \uc774\uc720\ub294 \uc11c\ubc84 \ud074\ub798\uc2a4 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc2e4\ud589 \uc911\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ -classpath <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ \ud074\ub798\uc2a4 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uae30 \uc704\ud55c \ub514\ub809\ud1a0\ub9ac, JAR \uc544\uce74\uc774\ube0c \ubc0f\n\ ZIP \uc544\uce74\uc774\ube0c\uc758 {0} \uad6c\ubd84\ub41c \ubaa9\ub85d\uc785\ub2c8\ub2e4.\n\ -D<name>=<value>\n\ \uc2dc\uc2a4\ud15c \ub4f1\ub85d \uc815\ubcf4 \uc124\uc815\n\ -verbose[:class|gc|jni]\n\ \ucd94\uac00 \ucd9c\ub825 \uc0ac\uc6a9\n\ -version \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uc885\ub8cc\n\ -version:<value>\n\ \uc2e4\ud589\ud558\ub824\uba74 \uc9c0\uc815\ud55c \ubc84\uc804 \ud544\uc694\n\ -showversion \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uacc4\uc18d\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \ubc84\uc804 \uac80\uc0c9\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uac1c\uc778 JRE \ud3ec\ud568/\uc81c\uc678\n\ -? -help \uc774 \ub3c4\uc6c0\ub9d0 \uba54\uc2dc\uc9c0 \uc778\uc1c4\n\ -X \ube44\ud45c\uc900 \uc635\uc158\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 \uc778\uc1c4\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -esa | -enablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9\n\ -dsa | -disablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -agentlib:<libname>[=<options>]\n\ \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac <libname> \ub85c\ub4dc, \uc608: -agentlib:hprof\n\ \ucc38\uc870: -agentlib:jdwp=help \ubc0f -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \uc804\uccb4 \uacbd\ub85c \uc774\ub984\uc73c\ub85c \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub85c\ub4dc\n\ -javaagent:<jarpath>[=<options>]\n\ Java \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 \uc5d0\uc774\uc804\ud2b8 \ub85c\ub4dc, java.lang.instrument \ucc38\uc870\n\ -splash:<imagepath>\n\ \uc9c0\uc815\ud55c \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud50c\ub798\uc2dc \ud654\uba74 \ud45c\uc2dc\n\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 http://java.sun.com/javase/reference\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624.
+java.launcher.opt.footer =\ -cp <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ -classpath <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ \ud074\ub798\uc2a4 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uae30 \uc704\ud55c \ub514\ub809\ud1a0\ub9ac, JAR \uc544\uce74\uc774\ube0c \ubc0f\n\ ZIP \uc544\uce74\uc774\ube0c\uc758 {0} \uad6c\ubd84\ub41c \ubaa9\ub85d\uc785\ub2c8\ub2e4.\n\ -D<name>=<value>\n\ \uc2dc\uc2a4\ud15c \ub4f1\ub85d \uc815\ubcf4 \uc124\uc815\n\ -verbose[:class|gc|jni]\n\ \ucd94\uac00 \ucd9c\ub825 \uc0ac\uc6a9\n\ -version \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uc885\ub8cc\n\ -version:<value>\n\ \uc2e4\ud589\ud558\ub824\uba74 \uc9c0\uc815\ud55c \ubc84\uc804 \ud544\uc694\n\ -showversion \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uacc4\uc18d\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \ubc84\uc804 \uac80\uc0c9\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uac1c\uc778 JRE \ud3ec\ud568/\uc81c\uc678\n\ -? -help \uc774 \ub3c4\uc6c0\ub9d0 \uba54\uc2dc\uc9c0 \uc778\uc1c4\n\ -X \ube44\ud45c\uc900 \uc635\uc158\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 \uc778\uc1c4\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -esa | -enablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9\n\ -dsa | -disablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -agentlib:<libname>[=<options>]\n\ \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac <libname> \ub85c\ub4dc, \uc608: -agentlib:hprof\n\ \ucc38\uc870: -agentlib:jdwp=help \ubc0f -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \uc804\uccb4 \uacbd\ub85c \uc774\ub984\uc73c\ub85c \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub85c\ub4dc\n\ -javaagent:<jarpath>[=<options>]\n\ Java \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 \uc5d0\uc774\uc804\ud2b8 \ub85c\ub4dc, java.lang.instrument \ucc38\uc870\n\ -splash:<imagepath>\n\ \uc9c0\uc815\ud55c \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud50c\ub798\uc2dc \ud654\uba74 \ud45c\uc2dc\n\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 http://java.sun.com/javase/reference\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \ud63c\ud569 \ubaa8\ub4dc \uc2e4\ud589(\uae30\ubcf8\uac12)\n\ -Xint \ud574\uc11d\ub41c \ubaa8\ub4dc \uc2e4\ud589 \uc804\uc6a9\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4\uc640 \uc790\uc6d0\uc758 \uac80\uc0c9 \uacbd\ub85c \uc124\uc815\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \ub05d\uc5d0 \ucd94\uac00\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \uc55e\uc5d0 \ucd94\uac00\n\ -Xnoclassgc \ud074\ub798\uc2a4 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9 \uc548 \ud568\n\ -Xincgc \uc99d\ubd84 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9\n\ -Xloggc:<file> GC \uc0c1\ud0dc\ub97c \ud0c0\uc784 \uc2a4\ud0ec\ud504\uc640 \ud568\uaed8 \ud30c\uc77c\uc5d0 \ub85c\uadf8\n\ -Xbatch \ubc31\uadf8\ub77c\uc6b4\ub4dc \ucef4\ud30c\uc77c \uc0ac\uc6a9 \uc548 \ud568\n\ -Xms<size> \ucd08\uae30 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xmx<size> \ucd5c\ub300 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xss<size> java \uc2a4\ub808\ub4dc \uc2a4\ud0dd \ud06c\uae30 \uc124\uc815\n\ -Xprof cpu \ud504\ub85c\ud30c\uc77c\ub9c1 \ub370\uc774\ud130 \ucd9c\ub825\n\ -Xfuture \ubbf8\ub798 \uae30\ubcf8\uac12\uc744 \uc608\uce21\ud558\uc5ec \uac00\uc7a5 \uc5c4\uaca9\ud55c \uac80\uc0ac \uc0ac\uc6a9\n\ -Xrs Java/VM\uc5d0 \uc758\ud55c OS \uc2e0\ud638 \uc0ac\uc6a9 \uac10\uc18c(\uc124\uba85\uc11c \ucc38\uc870)\n\ -Xcheck:jni JNI \uae30\ub2a5\uc5d0 \ub300\ud55c \ucd94\uac00\uc801\uc778 \uac80\uc0ac \uc218\ud589\n\ -Xshare:off \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\uc758 \uc0ac\uc6a9\uc744 \uc2dc\ub3c4\ud558\uc9c0 \uc54a\uc74c\n\ -Xshare:auto \uac00\ub2a5\ud55c \uacbd\uc6b0 \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130 \uc0ac\uc6a9(\uae30\ubcf8\uac12)\n\ -Xshare:on \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\uba70 \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc2e4\ud328.\n\n-X \uc635\uc158\uc740 \ud45c\uc900\uc774 \uc544\ub2c8\uba70 \uc54c\ub9bc \uc5c6\uc774 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ eftersom du k\u00f6r p\u00e5 en dator med server-klass.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filers>\n\ -classpath <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filer>\n\ en med {0} avgr\u00e4nsad lista \u00f6ver kataloger, JAR-arkiv\n\ och ZIP-arkiv f\u00f6r s\u00f6kning efter klassfiler.\n\ -D<namn>=<v\u00e4rde>\n\ ange en systemegenskap\n\ -verbose[:klass|gc|jni]\n\ visa mer text\n\ -version skriv ut produktversionen och avsluta\n\ -version:<value>\n\ kr\u00e4ver den angivna versionen f\u00f6r att kunna k\u00f6ras\n\ -showversion skriv ut produktversion och forts\u00e4tt\n\ -jre-restrict-search | -jre-no-restrict-search\n\ inkludera/exkludera anv\u00e4ndarens privata JRE-filer i versionss\u00f6kningen\n\ -? -help skriver ut det h\u00e4r hj\u00e4lpmeddelandet\n\ -X skriv ut hj\u00e4lp f\u00f6r alternativ som inte \u00e4r standard\n\ -ea[:<paketnamn>...|:<klassnamn>]\n\ -enableassertions[:<paketnamn>...|:<klassnamn>]\n\ aktivera bekr\u00e4ftelser med angiven precision\n\ -da[:<paketnamn>...|:<klassnamn>]\n\ -disableassertions[:<paketnamn>...|:<klassnamn>]\n\ inaktivera bekr\u00e4ftelser med angiven precision\n\ -esa | -enablesystemassertions\n\ aktivera systembekr\u00e4ftelser\n\ -dsa | -disablesystemassertions\n\ inaktivera systembekr\u00e4ftelser\n\ -agentlib:<biblnamn>[=<alternativ>]\n\ l\u00e4s in det interna agentbiblioteket <biblnamn>, t.ex. -agentlib:hprof\n\ se \u00e4ven, -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:<filnamn>[=<alternativ>]\n\ l\u00e4s in internt agentbibliotek utifr\u00e5n fullst\u00e4ndig s\u00f6kv\u00e4g\n\ -javaagent:<jar-s\u00f6kv\u00e4g>[=<alternativ>]\n\ l\u00e4s in agenten f\u00f6r programmeringsspr\u00e5ket Java, se java.lang.instrument\n\ -splash:<bilds\u00f6kv\u00e4g>\n\ visa v\u00e4lkomstf\u00f6nster med angiven bild\nMer information finns p\u00e5 http://java.sun.com/javase/reference.
+java.launcher.opt.footer =\ -cp <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filers>\n\ -classpath <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filer>\n\ en med {0} avgr\u00e4nsad lista \u00f6ver kataloger, JAR-arkiv\n\ och ZIP-arkiv f\u00f6r s\u00f6kning efter klassfiler.\n\ -D<namn>=<v\u00e4rde>\n\ ange en systemegenskap\n\ -verbose[:klass|gc|jni]\n\ visa mer text\n\ -version skriv ut produktversionen och avsluta\n\ -version:<value>\n\ kr\u00e4ver den angivna versionen f\u00f6r att kunna k\u00f6ras\n\ -showversion skriv ut produktversion och forts\u00e4tt\n\ -jre-restrict-search | -no-jre-restrict-search\n\ inkludera/exkludera anv\u00e4ndarens privata JRE-filer i versionss\u00f6kningen\n\ -? -help skriver ut det h\u00e4r hj\u00e4lpmeddelandet\n\ -X skriv ut hj\u00e4lp f\u00f6r alternativ som inte \u00e4r standard\n\ -ea[:<paketnamn>...|:<klassnamn>]\n\ -enableassertions[:<paketnamn>...|:<klassnamn>]\n\ aktivera bekr\u00e4ftelser med angiven precision\n\ -da[:<paketnamn>...|:<klassnamn>]\n\ -disableassertions[:<paketnamn>...|:<klassnamn>]\n\ inaktivera bekr\u00e4ftelser med angiven precision\n\ -esa | -enablesystemassertions\n\ aktivera systembekr\u00e4ftelser\n\ -dsa | -disablesystemassertions\n\ inaktivera systembekr\u00e4ftelser\n\ -agentlib:<biblnamn>[=<alternativ>]\n\ l\u00e4s in det interna agentbiblioteket <biblnamn>, t.ex. -agentlib:hprof\n\ se \u00e4ven, -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:<filnamn>[=<alternativ>]\n\ l\u00e4s in internt agentbibliotek utifr\u00e5n fullst\u00e4ndig s\u00f6kv\u00e4g\n\ -javaagent:<jar-s\u00f6kv\u00e4g>[=<alternativ>]\n\ l\u00e4s in agenten f\u00f6r programmeringsspr\u00e5ket Java, se java.lang.instrument\n\ -splash:<bilds\u00f6kv\u00e4g>\n\ visa v\u00e4lkomstf\u00f6nster med angiven bild\nMer information finns p\u00e5 http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed k\u00f6rning i blandat l\u00e4ge (standard)\n\ -Xint endast k\u00f6rning i tolkat l\u00e4ge\n\ -Xbootclasspath:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ ange s\u00f6kv\u00e4g f\u00f6r bootstrap-klasser och -resurser\n\ -Xbootclasspath/a:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till p\u00e5 slutet av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xbootclasspath/p:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till i b\u00f6rjan av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xnoclassgc inaktivera skr\u00e4pinsamling f\u00f6r klass\n\ -Xincgc aktivera inkrementell skr\u00e4pinsaming\n\ -Xloggc:<file> logga GC-status till en fil med tidsst\u00e4mpel\n\ -Xbatch inaktivera kompilering i bakgrunden\n\ -Xms<size> st\u00e4ll in ursprunglig heapstorlek f\u00f6r Java\n\ -Xmx<size> st\u00e4ll in st\u00f6rsta heapstorlek f\u00f6r Java\n\ -Xss<size> st\u00e4ll in tr\u00e5dstackens storlek f\u00f6r Java\n\ -Xprof visa profileringsdata om processorn\n\ -Xfuture aktivera de mest rigor\u00f6sa kontrollerna och f\u00f6regrip framtida standardl\u00e4ge\n\ -Xrs minska anv\u00e4ndningen av signaler fr\u00e5n operativsystemet i Java/VM (mer information finns i dokumentationen)\n\ -Xcheck:jni utf\u00f6r ytterligare kontroller f\u00f6r JNI-funktioner\n\ -Xshare:off f\u00f6rs\u00f6k inte att anv\u00e4nda delade klassdata\n\ -Xshare:auto anv\u00e4nd om m\u00f6jligt delade klassdata (standard)\n\ -Xshare:on kr\u00e4v att delade klassdata anv\u00e4nds, skicka fel om s\u00e5 inte \u00e4r fallet.\n\n -X-alternativen betraktas inte som standard och kan \u00e4ndras utan att detta meddelas.\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ \u56e0\u4e3a\u60a8\u662f\u5728\u670d\u52a1\u5668\u7c7b\u8ba1\u7b97\u673a\u4e0a\u8fd0\u884c\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ -classpath <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ \u4e00\u4e2a\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u3001JAR \u5f52\u6863\u6587\u4ef6\n\ \u548c ZIP \u5f52\u6863\u6587\u4ef6\u7684\u5217\u8868\uff0c\u7528\u4e8e\u641c\u7d22\u7c7b\u6587\u4ef6\u3002\n\ -D<name>=<value>\n\ \u8bbe\u7f6e\u7cfb\u7edf\u5c5e\u6027\n\ -verbose[:class|gc|jni]\n\ \u542f\u7528\u8be6\u7ec6\u8f93\u51fa\n\ -version \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u9000\u51fa\n\ -version:<value>\n\ \u8981\u6c42\u8fd0\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u7ee7\u7eed\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u5728\u7248\u672c\u641c\u7d22\u4e2d\u5305\u62ec/\u4e0d\u5305\u62ec\u7528\u6237\u79c1\u6709 JRE\n\ -? -help \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\ -X \u663e\u793a\u6709\u5173\u975e\u6807\u51c6\u9009\u9879\u7684\u5e2e\u52a9\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u542f\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u7981\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -esa | -enablesystemassertions\n\ \u542f\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -dsa | -disablesystemassertions\n\ \u7981\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -agentlib:<libname>[=<options>]\n\ \u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93 <libname>\uff0c\u4f8b\u5982\uff1a-agentlib:hprof\n\ \u53e6\u8bf7\u53c2\u89c1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4ee5\u5168\u8def\u5f84\u540d\u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93\n\ -javaagent:<jarpath>[=<options>]\n\ \u88c5\u5165 Java \u7f16\u7a0b\u8bed\u8a00\u4ee3\u7406\uff0c\u8bf7\u53c2\u89c1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u4f7f\u7528\u6307\u5b9a\u56fe\u50cf\u663e\u793a\u95ea\u73b0\u5c4f\u5e55\n\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 http://java.sun.com/javase/reference\u3002
+java.launcher.opt.footer =\ -cp <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ -classpath <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ \u4e00\u4e2a\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u3001JAR \u5f52\u6863\u6587\u4ef6\n\ \u548c ZIP \u5f52\u6863\u6587\u4ef6\u7684\u5217\u8868\uff0c\u7528\u4e8e\u641c\u7d22\u7c7b\u6587\u4ef6\u3002\n\ -D<name>=<value>\n\ \u8bbe\u7f6e\u7cfb\u7edf\u5c5e\u6027\n\ -verbose[:class|gc|jni]\n\ \u542f\u7528\u8be6\u7ec6\u8f93\u51fa\n\ -version \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u9000\u51fa\n\ -version:<value>\n\ \u8981\u6c42\u8fd0\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u7ee7\u7eed\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \u5728\u7248\u672c\u641c\u7d22\u4e2d\u5305\u62ec/\u4e0d\u5305\u62ec\u7528\u6237\u79c1\u6709 JRE\n\ -? -help \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\ -X \u663e\u793a\u6709\u5173\u975e\u6807\u51c6\u9009\u9879\u7684\u5e2e\u52a9\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u542f\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u7981\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -esa | -enablesystemassertions\n\ \u542f\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -dsa | -disablesystemassertions\n\ \u7981\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -agentlib:<libname>[=<options>]\n\ \u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93 <libname>\uff0c\u4f8b\u5982\uff1a-agentlib:hprof\n\ \u53e6\u8bf7\u53c2\u89c1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4ee5\u5168\u8def\u5f84\u540d\u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93\n\ -javaagent:<jarpath>[=<options>]\n\ \u88c5\u5165 Java \u7f16\u7a0b\u8bed\u8a00\u4ee3\u7406\uff0c\u8bf7\u53c2\u89c1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u4f7f\u7528\u6307\u5b9a\u56fe\u50cf\u663e\u793a\u95ea\u73b0\u5c4f\u5e55\n\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 http://java.sun.com/javase/reference\u3002
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u6a21\u5f0f\u6267\u884c\uff08\u9ed8\u8ba4\uff09\n\ -Xint \u4ec5\u89e3\u91ca\u6a21\u5f0f\u6267\u884c\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u8bbe\u7f6e\u5f15\u5bfc\u7c7b\u548c\u8d44\u6e90\u7684\u641c\u7d22\u8def\u5f84\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u9644\u52a0\u5230\u5f15\u5bfc\u7c7b\u8def\u5f84\u5c3e\u90e8\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u7f6e\u4e8e\u5f15\u5bfc\u7c7b\u8def\u5f84\u524d\u9762\n\ -Xnoclassgc \u7981\u7528\u7c7b\u5783\u573e\u6536\u96c6\n\ -Xincgc \u542f\u7528\u589e\u91cf\u5783\u573e\u6536\u96c6\n\ -Xloggc:<\u6587\u4ef6> \u5c06 GC \u72b6\u6001\u8bb0\u5f55\u5230\u4e00\u4e2a\u5e26\u6709\u65f6\u95f4\u6233\u7684\u6587\u4ef6\n\ -Xbatch \u7981\u7528\u540e\u53f0\u7f16\u8bd1\n\ -Xms<\u5927\u5c0f> \u8bbe\u7f6e\u521d\u59cb Java \u5806\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8bbe\u7f6e\u6700\u5927 Java \u5806\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8bbe\u7f6e Java \u7ebf\u7a0b\u5806\u6808\u5927\u5c0f\n\ -Xprof \u8f93\u51fa CPU \u914d\u7f6e\u6570\u636e\n\ -Xfuture \u542f\u7528\u6700\u4e25\u683c\u7684\u68c0\u67e5\uff0c\u672a\u6765\u53ef\u80fd\u4f1a\u6210\u4e3a\u9ed8\u8ba4\u9009\u9879\n\ -Xrs \u51cf\u5c11 Java/VM \u5bf9\u64cd\u4f5c\u7cfb\u7edf\u4fe1\u53f7\u7684\u4f7f\u7528\uff08\u8bf7\u53c2\u89c1\u6587\u6863\uff09\n\ -Xcheck:jni \u9488\u5bf9 JNI \u529f\u80fd\u6267\u884c\u989d\u5916\u7684\u68c0\u67e5\n\ -Xshare:off \u4e0d\u5c1d\u8bd5\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\n\ -Xshare:auto \u5982\u679c\u53ef\u80fd\u7684\u8bdd\uff0c\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff08\u9ed8\u8ba4\uff09\n\ -Xshare:on \u8981\u6c42\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff0c\u5426\u5219\u4f1a\u5931\u8d25\u3002\n\n-X \u9009\u9879\u662f\u975e\u6807\u51c6\u9009\u9879\uff0c\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n
--- a/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties Tue Nov 02 22:15:35 2010 -0700
@@ -34,7 +34,7 @@
java.launcher.ergo.message2 =\ \u56e0\u70ba\u60a8\u6b63\u57f7\u884c\u65bc\u4f3a\u670d\u5668\u7d1a\u7684\u6a5f\u5668\u4e0a\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ -classpath <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ {0} \u76ee\u9304\u3001JAR \u6b78\u6a94\n\ \u548c ZIP \u6b78\u6a94\u7684\u5206\u9694\u6e05\u55ae\uff0c\u7528\u65bc\u641c\u5c0b\u985e\u5225\u6a94\u6848\u3002\n\ -D<name>=<value>\n\ \u8a2d\u5b9a\u7cfb\u7d71\u7279\u6027\n\ -verbose[:class|gc|jni]\n\ \u555f\u7528\u8a73\u7d30\u8f38\u51fa\n\ -version \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7d50\u675f\n\ -version:<value>\n\ \u9700\u8981\u57f7\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7e7c\u7e8c\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u5728\u7248\u672c\u641c\u5c0b\u4e2d\u5305\u542b/\u6392\u9664\u4f7f\u7528\u8005\u79c1\u7528 JRE\n\ -? -help \u5217\u5370\u6b64\u8aaa\u660e\u8a0a\u606f\n\ -X \u5217\u5370\u6709\u95dc\u975e\u6a19\u6e96\u9078\u9805\u7684\u8aaa\u660e\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u555f\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u505c\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -esa | -enablesystemassertions\n\ \u555f\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -dsa | -disablesystemassertions\n\ \u505c\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -agentlib:<libname>[=<options>]\n\ \u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\u7a0b\u5f0f\u5eab <libname>\uff0c\u4f8b\u5982 -agentlib:hprof\n\ \u53e6\u8acb\u53c3\u95b1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4f9d\u64da\u5b8c\u6574\u8def\u5f91\u540d\u7a31\u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\n\ -javaagent:<jarpath>[=<options>]\n\ \u8f09\u5165 Java \u7a0b\u5f0f\u8a2d\u8a08\u8a9e\u8a00\u4ee3\u7406\u7a0b\u5f0f\uff0c\u8acb\u53c3\u95b1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u986f\u793a\u542b\u6709\u6307\u5b9a\u5f71\u50cf\u7684\u8edf\u9ad4\u8cc7\u8a0a\u756b\u9762\n\u8acb\u53c3\u95b1 http://java.sun.com/javase/reference\uff0c\u4ee5\u53d6\u5f97\u66f4\u591a\u8a73\u7d30\u8cc7\u8a0a\u3002
+java.launcher.opt.footer =\ -cp <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ -classpath <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ {0} \u76ee\u9304\u3001JAR \u6b78\u6a94\n\ \u548c ZIP \u6b78\u6a94\u7684\u5206\u9694\u6e05\u55ae\uff0c\u7528\u65bc\u641c\u5c0b\u985e\u5225\u6a94\u6848\u3002\n\ -D<name>=<value>\n\ \u8a2d\u5b9a\u7cfb\u7d71\u7279\u6027\n\ -verbose[:class|gc|jni]\n\ \u555f\u7528\u8a73\u7d30\u8f38\u51fa\n\ -version \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7d50\u675f\n\ -version:<value>\n\ \u9700\u8981\u57f7\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7e7c\u7e8c\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \u5728\u7248\u672c\u641c\u5c0b\u4e2d\u5305\u542b/\u6392\u9664\u4f7f\u7528\u8005\u79c1\u7528 JRE\n\ -? -help \u5217\u5370\u6b64\u8aaa\u660e\u8a0a\u606f\n\ -X \u5217\u5370\u6709\u95dc\u975e\u6a19\u6e96\u9078\u9805\u7684\u8aaa\u660e\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u555f\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u505c\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -esa | -enablesystemassertions\n\ \u555f\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -dsa | -disablesystemassertions\n\ \u505c\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -agentlib:<libname>[=<options>]\n\ \u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\u7a0b\u5f0f\u5eab <libname>\uff0c\u4f8b\u5982 -agentlib:hprof\n\ \u53e6\u8acb\u53c3\u95b1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4f9d\u64da\u5b8c\u6574\u8def\u5f91\u540d\u7a31\u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\n\ -javaagent:<jarpath>[=<options>]\n\ \u8f09\u5165 Java \u7a0b\u5f0f\u8a2d\u8a08\u8a9e\u8a00\u4ee3\u7406\u7a0b\u5f0f\uff0c\u8acb\u53c3\u95b1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u986f\u793a\u542b\u6709\u6307\u5b9a\u5f71\u50cf\u7684\u8edf\u9ad4\u8cc7\u8a0a\u756b\u9762\n\u8acb\u53c3\u95b1 http://java.sun.com/javase/reference\uff0c\u4ee5\u53d6\u5f97\u66f4\u591a\u8a73\u7d30\u8cc7\u8a0a\u3002
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u57f7\u884c\u6df7\u5408\u6a21\u5f0f (\u9810\u8a2d)\n\ -Xint \u50c5\u57f7\u884c\u89e3\u8b6f\u6a21\u5f0f\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u8a2d\u5b9a\u555f\u52d5\u985e\u5225\u548c\u8cc7\u6e90\u7684\u641c\u5c0b\u8def\u5f91\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u9644\u52a0\u81f3\u555f\u52d5\u985e\u5225\u7684\u672b\u5c3e\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u524d\u7f6e\u65bc\u555f\u52d5\u985e\u5225\u8def\u5f91\u7684\u524d\u9762\n\ -Xnoclassgc \u505c\u7528\u985e\u5225\u56de\u6536\u6536\u96c6\n\ -Xincgc \u555f\u7528\u905e\u589e\u56de\u6536\u6536\u96c6\n\ -Xloggc:<\u6a94\u6848> \u4f7f\u7528\u6642\u9593\u6233\u8a18\u5c07 GC \u72c0\u614b\u8a18\u9304\u81f3\u6a94\u6848\n\ -Xbatch \u505c\u7528\u80cc\u5f71\u7de8\u8b6f\n\ -Xms<\u5927\u5c0f> \u8a2d\u5b9a\u521d\u59cb Java \u5806\u758a\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8a2d\u5b9a\u6700\u5927 Java \u5806\u758a\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8a2d\u5b9a java \u57f7\u884c\u7dd2\u5806\u758a\u5927\u5c0f\n\ -Xprof \u8f38\u51fa cpu \u8a2d\u5b9a\u6a94\u8cc7\u6599\n\ -Xfuture \u555f\u7528\u6700\u56b4\u683c\u7684\u6aa2\u67e5\uff0c\u9810\u671f\u672a\u4f86\u9810\u8a2d\u503c\n\ -Xrs \u964d\u4f4e Java/VM \u7684 OS \u8a0a\u865f\u4f7f\u7528 (\u8acb\u53c3\u95b1\u6587\u4ef6)\n\ -Xcheck:jni \u5c0d JNI \u529f\u80fd\u57f7\u884c\u5176\u4ed6\u6aa2\u67e5\n\ -Xshare:off \u4e0d\u5617\u8a66\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\n\ -Xshare:auto \u5982\u53ef\u80fd\uff0c\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599 (\u9810\u8a2d)\n\ -Xshare:on \u9700\u8981\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\uff0c\u5426\u5247\u6703\u5931\u6557\u3002\n\n-X \u9078\u9805\u70ba\u975e\u6a19\u6e96\u9078\u9805\uff0c\u53ef\u80fd\u6703\u8b8a\u66f4\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n
--- a/jdk/src/share/classes/sun/misc/BootClassLoaderHook.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/misc/BootClassLoaderHook.java Tue Nov 02 22:15:35 2010 -0700
@@ -27,6 +27,8 @@
import java.io.File;
import java.io.IOException;
+import java.net.URLStreamHandlerFactory;
+import sun.misc.URLClassPath;
/**
* BootClassLoaderHook defines an interface for a hook to inject
@@ -94,20 +96,6 @@
}
}
- private static final File[] EMPTY_FILE_ARRAY = new File[0];
-
- /**
- * Returns bootstrap class paths added by the hook.
- */
- public static File[] getBootstrapPaths() {
- BootClassLoaderHook hook = getHook();
- if (hook != null) {
- return hook.getAdditionalBootstrapPaths();
- } else {
- return EMPTY_FILE_ARRAY;
- }
- }
-
/**
* Returns a pathname of a JAR or class that the hook loads
* per this loadClass request; or null.
@@ -133,10 +121,13 @@
public abstract boolean loadLibrary(String libname);
/**
- * Returns additional boot class paths added by the hook that
- * should be searched by the boot class loader.
+ * Returns a bootstrap class path constructed by the hook.
+ *
+ * @param bcp VM's bootstrap class path
+ * @param factory Launcher's URL stream handler
*/
- public abstract File[] getAdditionalBootstrapPaths();
+ public abstract URLClassPath getBootstrapClassPath(URLClassPath bcp,
+ URLStreamHandlerFactory factory);
/**
* Returns true if the current thread is in the process of doing
--- a/jdk/src/share/classes/sun/misc/Launcher.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/misc/Launcher.java Tue Nov 02 22:15:35 2010 -0700
@@ -47,7 +47,6 @@
import java.security.Permission;
import java.security.ProtectionDomain;
import java.security.CodeSource;
-import sun.security.action.GetPropertyAction;
import sun.security.util.SecurityConstants;
import sun.net.www.ParseUtil;
@@ -57,6 +56,8 @@
public class Launcher {
private static URLStreamHandlerFactory factory = new Factory();
private static Launcher launcher = new Launcher();
+ private static String bootClassPath =
+ System.getProperty("sun.boot.class.path");
public static Launcher getLauncher() {
return launcher;
@@ -227,7 +228,8 @@
File dir = new File(urls[i].getPath()).getParentFile();
if (dir != null && !dir.equals(prevDir)) {
// Look in architecture-specific subdirectory first
- String arch = System.getProperty("os.arch");
+ // Read from the saved system properties to avoid deadlock
+ String arch = VM.getSavedProperty("os.arch");
if (arch != null) {
File file = new File(new File(dir, arch), name);
if (file.exists()) {
@@ -377,19 +379,15 @@
}
}
- private static URLClassPath bootstrapClassPath;
-
- public static synchronized URLClassPath getBootstrapClassPath() {
- if (bootstrapClassPath == null) {
- String prop = AccessController.doPrivileged(
- new GetPropertyAction("sun.boot.class.path"));
+ private static class BootClassPathHolder {
+ static final URLClassPath bcp;
+ static {
URL[] urls;
- if (prop != null) {
- final String path = prop;
+ if (bootClassPath != null) {
urls = AccessController.doPrivileged(
new PrivilegedAction<URL[]>() {
public URL[] run() {
- File[] classPath = getClassPath(path);
+ File[] classPath = getClassPath(bootClassPath);
int len = classPath.length;
Set<File> seenDirs = new HashSet<File>();
for (int i = 0; i < len; i++) {
@@ -410,25 +408,16 @@
} else {
urls = new URL[0];
}
-
- bootstrapClassPath = new URLClassPath(urls, factory);
- final File[] additionalBootStrapPaths =
- BootClassLoaderHook.getBootstrapPaths();
- AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
- for (int i=0; i<additionalBootStrapPaths.length; i++) {
- bootstrapClassPath.addURL(
- getFileURL(additionalBootStrapPaths[i]));
- }
- return null;
- }
- });
+ bcp = new URLClassPath(urls, factory);
}
- return bootstrapClassPath;
}
- public static synchronized void flushBootstrapClassPath() {
- bootstrapClassPath = null;
+ public static URLClassPath getBootstrapClassPath() {
+ URLClassPath bcp = BootClassPathHolder.bcp;
+ // if DownloadManager is installed, return the bootstrap class path
+ // maintained by the Java kernel
+ BootClassLoaderHook hook = BootClassLoaderHook.getHook();
+ return hook == null ? bcp : hook.getBootstrapClassPath(bcp, factory);
}
private static URL[] pathToURLs(File[] path) {
--- a/jdk/src/share/classes/sun/misc/VM.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/misc/VM.java Tue Nov 02 22:15:35 2010 -0700
@@ -170,34 +170,23 @@
//
private static long directMemory = 64 * 1024 * 1024;
- // If this method is invoked during VM initialization, it initializes the
- // maximum amount of allocatable direct buffer memory (in bytes) from the
- // system property sun.nio.MaxDirectMemorySize. The system property will
- // be removed when it is accessed.
- //
- // If this method is invoked after the VM is booted, it returns the
- // maximum amount of allocatable direct buffer memory.
+ // Returns the maximum amount of allocatable direct buffer memory.
+ // The directMemory variable is initialized during system initialization
+ // in the saveAndRemoveProperties method.
//
public static long maxDirectMemory() {
- if (booted)
- return directMemory;
-
- Properties p = System.getProperties();
- String s = (String)p.remove("sun.nio.MaxDirectMemorySize");
- System.setProperties(p);
+ return directMemory;
+ }
- if (s != null) {
- if (s.equals("-1")) {
- // -XX:MaxDirectMemorySize not given, take default
- directMemory = Runtime.getRuntime().maxMemory();
- } else {
- long l = Long.parseLong(s);
- if (l > -1)
- directMemory = l;
- }
- }
+ // User-controllable flag that determines if direct buffers should be page
+ // aligned. The "-XX:+PageAlignDirectMemory" option can be used to force
+ // buffers, allocated by ByteBuffer.allocateDirect, to be page aligned.
+ private static boolean pageAlignDirectMemory;
- return directMemory;
+ // Returns {@code true} if the direct buffers should be page aligned. This
+ // variable is initialized by saveAndRemoveProperties.
+ public static boolean isDirectMemoryPageAligned() {
+ return pageAlignDirectMemory;
}
// A user-settable boolean to determine whether ClassLoader.loadClass should
@@ -212,26 +201,87 @@
private static boolean defaultAllowArraySyntax = false;
private static boolean allowArraySyntax = defaultAllowArraySyntax;
- // If this method is invoked during VM initialization, it initializes the
- // allowArraySyntax boolean based on the value of the system property
+ // The allowArraySyntax boolean is initialized during system initialization
+ // in the saveAndRemoveProperties method.
+ //
+ // It is initialized based on the value of the system property
// "sun.lang.ClassLoader.allowArraySyntax". If the system property is not
// provided, the default for 1.5 is "true". In 1.6, the default will be
// "false". If the system property is provided, then the value of
// allowArraySyntax will be equal to "true" if Boolean.parseBoolean()
// returns "true". Otherwise, the field will be set to "false".
//
- // If this method is invoked after the VM is booted, it returns the
- // allowArraySyntax boolean set during initialization.
+ public static boolean allowArraySyntax() {
+ return allowArraySyntax;
+ }
+
+ /**
+ * Returns the system property of the specified key saved at
+ * system initialization time. This method should only be used
+ * for the system properties that are not changed during runtime.
+ * It accesses a private copy of the system properties so
+ * that user's locking of the system properties object will not
+ * cause the library to deadlock.
+ *
+ * Note that the saved system properties do not include
+ * the ones set by sun.misc.Version.init().
+ *
+ */
+ public static String getSavedProperty(String key) {
+ if (savedProps.isEmpty())
+ throw new IllegalStateException("Should be non-empty if initialized");
+
+ return savedProps.getProperty(key);
+ }
+
+ private static final Properties savedProps = new Properties();
+
+ // Save a private copy of the system properties and remove
+ // the system properties that are not intended for public access.
//
- public static boolean allowArraySyntax() {
- if (!booted) {
- String s
- = System.getProperty("sun.lang.ClassLoader.allowArraySyntax");
- allowArraySyntax = (s == null
- ? defaultAllowArraySyntax
- : Boolean.parseBoolean(s));
+ // This method can only be invoked during system initialization.
+ public static void saveAndRemoveProperties(Properties props) {
+ if (booted)
+ throw new IllegalStateException("System initialization has completed");
+
+ savedProps.putAll(props);
+
+ // Set the maximum amount of direct memory. This value is controlled
+ // by the vm option -XX:MaxDirectMemorySize=<size>.
+ // The maximum amount of allocatable direct buffer memory (in bytes)
+ // from the system property sun.nio.MaxDirectMemorySize set by the VM.
+ // The system property will be removed.
+ String s = (String)props.remove("sun.nio.MaxDirectMemorySize");
+ if (s != null) {
+ if (s.equals("-1")) {
+ // -XX:MaxDirectMemorySize not given, take default
+ directMemory = Runtime.getRuntime().maxMemory();
+ } else {
+ long l = Long.parseLong(s);
+ if (l > -1)
+ directMemory = l;
+ }
}
- return allowArraySyntax;
+
+ // Check if direct buffers should be page aligned
+ s = (String)props.remove("sun.nio.PageAlignDirectMemory");
+ if ("true".equals(s))
+ pageAlignDirectMemory = true;
+
+ // Set a boolean to determine whether ClassLoader.loadClass accepts
+ // array syntax. This value is controlled by the system property
+ // "sun.lang.ClassLoader.allowArraySyntax".
+ s = props.getProperty("sun.lang.ClassLoader.allowArraySyntax");
+ allowArraySyntax = (s == null
+ ? defaultAllowArraySyntax
+ : Boolean.parseBoolean(s));
+
+ // Remove other private system properties
+ // used by java.lang.Integer.IntegerCache
+ props.remove("java.lang.Integer.IntegerCache.high");
+
+ // used by java.util.zip.ZipFile
+ props.remove("sun.zip.disableMemoryMapping");
}
// Initialize any miscellenous operating system settings that need to be
--- a/jdk/src/share/classes/sun/net/www/MessageHeader.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/net/www/MessageHeader.java Tue Nov 02 22:15:35 2010 -0700
@@ -196,6 +196,10 @@
}
public synchronized Map<String, List<String>> getHeaders(String[] excludeList) {
+ return filterAndAddHeaders(excludeList, null);
+ }
+
+ public synchronized Map<String, List<String>> filterAndAddHeaders(String[] excludeList, Map<String, List<String>> include) {
boolean skipIt = false;
Map<String, List<String>> m = new HashMap<String, List<String>>();
for (int i = nkeys; --i >= 0;) {
@@ -223,6 +227,19 @@
}
}
+ if (include != null) {
+ Iterator entries = include.entrySet().iterator();
+ while (entries.hasNext()) {
+ Map.Entry entry = (Map.Entry)entries.next();
+ List l = (List)m.get(entry.getKey());
+ if (l == null) {
+ l = new ArrayList();
+ m.put((String)entry.getKey(), l);
+ }
+ l.add(entry.getValue());
+ }
+ }
+
for (String key : m.keySet()) {
m.put(key, Collections.unmodifiableList(m.get(key)));
}
--- a/jdk/src/share/classes/sun/net/www/MimeTable.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/net/www/MimeTable.java Tue Nov 02 22:15:35 2010 -0700
@@ -73,29 +73,32 @@
private static final String filePreamble = "sun.net.www MIME content-types table";
private static final String fileMagic = "#" + filePreamble;
- private static MimeTable defaultInstance = null;
MimeTable() {
load();
}
+ private static class DefaultInstanceHolder {
+ static final MimeTable defaultInstance = getDefaultInstance();
+
+ static MimeTable getDefaultInstance() {
+ return java.security.AccessController.doPrivileged(
+ new java.security.PrivilegedAction<MimeTable>() {
+ public MimeTable run() {
+ MimeTable instance = new MimeTable();
+ URLConnection.setFileNameMap(instance);
+ return instance;
+ }
+ });
+ }
+ }
+
/**
* Get the single instance of this class. First use will load the
* table from a data file.
*/
public static MimeTable getDefaultTable() {
- if (defaultInstance == null) {
- java.security.AccessController.doPrivileged(
- new java.security.PrivilegedAction<Void>() {
- public Void run() {
- defaultInstance = new MimeTable();
- URLConnection.setFileNameMap(defaultInstance);
- return null;
- }
- });
- }
-
- return defaultInstance;
+ return DefaultInstanceHolder.defaultInstance;
}
/**
--- a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Tue Nov 02 22:15:35 2010 -0700
@@ -51,6 +51,9 @@
import java.util.Locale;
import java.util.StringTokenizer;
import java.util.Iterator;
+import java.util.HashSet;
+import java.util.HashMap;
+import java.util.Set;
import sun.net.*;
import sun.net.www.*;
import sun.net.www.http.HttpClient;
@@ -140,6 +143,54 @@
*/
private static int bufSize4ES = 0;
+ /*
+ * Restrict setting of request headers through the public api
+ * consistent with JavaScript XMLHttpRequest2 with a few
+ * exceptions. Disallowed headers are silently ignored for
+ * backwards compatibility reasons rather than throwing a
+ * SecurityException. For example, some applets set the
+ * Host header since old JREs did not implement HTTP 1.1.
+ * Additionally, any header starting with Sec- is
+ * disallowed.
+ *
+ * The following headers are allowed for historical reasons:
+ *
+ * Accept-Charset, Accept-Encoding, Cookie, Cookie2, Date,
+ * Referer, TE, User-Agent, headers beginning with Proxy-.
+ *
+ * The following headers are allowed in a limited form:
+ *
+ * Connection: close
+ *
+ * See http://www.w3.org/TR/XMLHttpRequest2.
+ */
+ private static final boolean allowRestrictedHeaders;
+ private static final Set<String> restrictedHeaderSet;
+ private static final String[] restrictedHeaders = {
+ /* Restricted by XMLHttpRequest2 */
+ //"Accept-Charset",
+ //"Accept-Encoding",
+ "Access-Control-Request-Headers",
+ "Access-Control-Request-Method",
+ "Connection", /* close is allowed */
+ "Content-Length",
+ //"Cookie",
+ //"Cookie2",
+ "Content-Transfer-Encoding",
+ //"Date",
+ //"Expect",
+ "Host",
+ "Keep-Alive",
+ "Origin",
+ // "Referer",
+ // "TE",
+ "Trailer",
+ "Transfer-Encoding",
+ "Upgrade",
+ //"User-Agent",
+ "Via"
+ };
+
static {
maxRedirects = java.security.AccessController.doPrivileged(
new sun.security.action.GetIntegerAction(
@@ -178,7 +229,17 @@
bufSize4ES = 4096; // use the default
}
-
+ allowRestrictedHeaders = ((Boolean)java.security.AccessController.doPrivileged(
+ new sun.security.action.GetBooleanAction(
+ "sun.net.http.allowRestrictedHeaders"))).booleanValue();
+ if (!allowRestrictedHeaders) {
+ restrictedHeaderSet = new HashSet<String>(restrictedHeaders.length);
+ for (int i=0; i < restrictedHeaders.length; i++) {
+ restrictedHeaderSet.add(restrictedHeaders[i].toLowerCase());
+ }
+ } else {
+ restrictedHeaderSet = null;
+ }
}
static final String httpVersion = "HTTP/1.1";
@@ -191,6 +252,15 @@
"Proxy-Authorization",
"Authorization"
};
+
+ // also exclude system cookies when any might be set
+ private static final String[] EXCLUDE_HEADERS2= {
+ "Proxy-Authorization",
+ "Authorization",
+ "Cookie",
+ "Cookie2"
+ };
+
protected HttpClient http;
protected Handler handler;
protected Proxy instProxy;
@@ -213,6 +283,7 @@
/* User set Cookies */
private boolean setUserCookies = true;
private String userCookies = null;
+ private String userCookies2 = null;
/* We only have a single static authenticator for now.
* REMIND: backwards compatibility with JDK 1.1. Should be
@@ -329,6 +400,41 @@
});
}
+ private boolean isRestrictedHeader(String key, String value) {
+ if (allowRestrictedHeaders) {
+ return false;
+ }
+
+ key = key.toLowerCase();
+ if (restrictedHeaderSet.contains(key)) {
+ /*
+ * Exceptions to restricted headers:
+ *
+ * Allow "Connection: close".
+ */
+ if (key.equals("connection") && value.equalsIgnoreCase("close")) {
+ return false;
+ }
+ return true;
+ } else if (key.startsWith("sec-")) {
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * Checks the validity of http message header and whether the header
+ * is restricted and throws IllegalArgumentException if invalid or
+ * restricted.
+ */
+ private boolean isExternalMessageHeaderAllowed(String key, String value) {
+ checkMessageHeader(key, value);
+ if (!isRestrictedHeader(key, value)) {
+ return true;
+ }
+ return false;
+ }
+
/* Logging support */
public static PlatformLogger getHttpLogger() {
return logger;
@@ -463,9 +569,12 @@
"application/x-www-form-urlencoded");
}
+ boolean chunked = false;
+
if (streaming()) {
if (chunkLength != -1) {
requests.set ("Transfer-Encoding", "chunked");
+ chunked = true;
} else { /* fixed content length */
if (fixedContentLengthLong != -1) {
requests.set ("Content-Length",
@@ -485,6 +594,16 @@
}
}
+ if (!chunked) {
+ if (requests.findValue("Transfer-Encoding") != null) {
+ requests.remove("Transfer-Encoding");
+ if (logger.isLoggable(PlatformLogger.WARNING)) {
+ logger.warning(
+ "use streaming mode for chunked encoding");
+ }
+ }
+ }
+
// get applicable cookies based on the uri and request headers
// add them to the existing request headers
setCookieHeader();
@@ -1034,15 +1153,21 @@
// we only want to capture the user defined Cookies once, as
// they cannot be changed by user code after we are connected,
// only internally.
- if (setUserCookies) {
- int k = requests.getKey("Cookie");
- if ( k != -1)
- userCookies = requests.getValue(k);
- setUserCookies = false;
+ synchronized (this) {
+ if (setUserCookies) {
+ int k = requests.getKey("Cookie");
+ if (k != -1)
+ userCookies = requests.getValue(k);
+ k = requests.getKey("Cookie2");
+ if (k != -1)
+ userCookies2 = requests.getValue(k);
+ setUserCookies = false;
+ }
}
// remove old Cookie header before setting new one.
requests.remove("Cookie");
+ requests.remove("Cookie2");
URI uri = ParseUtil.toURI(url);
if (uri != null) {
@@ -1088,6 +1213,13 @@
else
requests.set("Cookie", userCookies);
}
+ if (userCookies2 != null) {
+ int k;
+ if ((k = requests.getKey("Cookie2")) != -1)
+ requests.set("Cookie2", requests.getValue(k) + ";" + userCookies2);
+ else
+ requests.set("Cookie2", userCookies2);
+ }
} // end of getting cookies
}
@@ -2530,8 +2662,9 @@
if (key == null)
throw new NullPointerException ("key is null");
- checkMessageHeader(key, value);
- requests.set(key, value);
+ if (isExternalMessageHeaderAllowed(key, value)) {
+ requests.set(key, value);
+ }
}
/**
@@ -2552,8 +2685,9 @@
if (key == null)
throw new NullPointerException ("key is null");
- checkMessageHeader(key, value);
- requests.add(key, value);
+ if (isExternalMessageHeaderAllowed(key, value)) {
+ requests.add(key, value);
+ }
}
//
@@ -2566,13 +2700,23 @@
}
@Override
- public String getRequestProperty (String key) {
+ public synchronized String getRequestProperty (String key) {
+ if (key == null) {
+ return null;
+ }
+
// don't return headers containing security sensitive information
- if (key != null) {
- for (int i=0; i < EXCLUDE_HEADERS.length; i++) {
- if (key.equalsIgnoreCase(EXCLUDE_HEADERS[i])) {
- return null;
- }
+ for (int i=0; i < EXCLUDE_HEADERS.length; i++) {
+ if (key.equalsIgnoreCase(EXCLUDE_HEADERS[i])) {
+ return null;
+ }
+ }
+ if (!setUserCookies) {
+ if (key.equalsIgnoreCase("Cookie")) {
+ return userCookies;
+ }
+ if (key.equalsIgnoreCase("Cookie2")) {
+ return userCookies2;
}
}
return requests.findValue(key);
@@ -2591,12 +2735,29 @@
* @since 1.4
*/
@Override
- public Map<String, List<String>> getRequestProperties() {
+ public synchronized Map<String, List<String>> getRequestProperties() {
if (connected)
throw new IllegalStateException("Already connected");
// exclude headers containing security-sensitive info
- return requests.getHeaders(EXCLUDE_HEADERS);
+ if (setUserCookies) {
+ return requests.getHeaders(EXCLUDE_HEADERS);
+ }
+ /*
+ * The cookies in the requests message headers may have
+ * been modified. Use the saved user cookies instead.
+ */
+ Map userCookiesMap = null;
+ if (userCookies != null || userCookies2 != null) {
+ userCookiesMap = new HashMap();
+ if (userCookies != null) {
+ userCookiesMap.put("Cookie", userCookies);
+ }
+ if (userCookies2 != null) {
+ userCookiesMap.put("Cookie2", userCookies2);
+ }
+ }
+ return requests.filterAndAddHeaders(EXCLUDE_HEADERS2, userCookiesMap);
}
@Override
--- a/jdk/src/share/classes/sun/security/jca/Providers.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/jca/Providers.java Tue Nov 02 22:15:35 2010 -0700
@@ -159,15 +159,18 @@
* could not be loaded) removed. This is the list we need to
* present to applications.
*/
- public static synchronized ProviderList getFullProviderList() {
- ProviderList list = getThreadProviderList();
- if (list != null) {
- ProviderList newList = list.removeInvalid();
- if (newList != list) {
- changeThreadProviderList(newList);
- list = newList;
+ public static ProviderList getFullProviderList() {
+ ProviderList list;
+ synchronized (Providers.class) {
+ list = getThreadProviderList();
+ if (list != null) {
+ ProviderList newList = list.removeInvalid();
+ if (newList != list) {
+ changeThreadProviderList(newList);
+ list = newList;
+ }
+ return list;
}
- return list;
}
list = getSystemProviderList();
ProviderList newList = list.removeInvalid();
--- a/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java Tue Nov 02 22:15:35 2010 -0700
@@ -35,7 +35,6 @@
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import sun.security.krb5.*;
-import sun.security.jgss.HttpCaller;
import sun.security.krb5.internal.Krb5;
abstract class InitialToken extends Krb5Token {
@@ -217,6 +216,12 @@
int pos = 0;
+ if (checksum == null) {
+ GSSException ge = new GSSException(GSSException.FAILURE, -1,
+ "No cksum in AP_REQ's authenticator");
+ ge.initCause(new KrbException(Krb5.KRB_AP_ERR_INAPP_CKSUM));
+ throw ge;
+ }
checksumBytes = checksum.getBytes();
if ((checksumBytes[0] != CHECKSUM_FIRST_BYTES[0]) ||
--- a/jdk/src/share/classes/sun/security/ssl/Alerts.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/Alerts.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -74,7 +74,7 @@
static final byte alert_insufficient_security = 71;
static final byte alert_internal_error = 80;
static final byte alert_user_canceled = 90;
- static final byte alert_no_negotiation = 100;
+ static final byte alert_no_renegotiation = 100;
// from RFC 3546 (TLS Extensions)
static final byte alert_unsupported_extension = 110;
@@ -132,8 +132,8 @@
return "internal_error";
case alert_user_canceled:
return "user_canceled";
- case alert_no_negotiation:
- return "no_negotiation";
+ case alert_no_renegotiation:
+ return "no_renegotiation";
case alert_unsupported_extension:
return "unsupported_extension";
case alert_certificate_unobtainable:
@@ -203,7 +203,7 @@
case alert_protocol_version:
case alert_internal_error:
case alert_user_canceled:
- case alert_no_negotiation:
+ case alert_no_renegotiation:
default:
e = new SSLException(reason);
break;
--- a/jdk/src/share/classes/sun/security/ssl/CipherSuite.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/CipherSuite.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -126,6 +126,8 @@
macAlg = M_SHA;
} else if (name.endsWith("_NULL")) {
macAlg = M_NULL;
+ } else if (name.endsWith("_SCSV")) {
+ macAlg = M_NULL;
} else {
throw new IllegalArgumentException
("Unknown MAC algorithm for ciphersuite " + name);
@@ -160,6 +162,10 @@
return allowed && keyExchange.isAvailable() && cipher.isAvailable();
}
+ boolean isNegotiable() {
+ return this != C_SCSV && isAvailable();
+ }
+
/**
* Compares CipherSuites based on their priority. Has the effect of
* sorting CipherSuites when put in a sorted collection, which is
@@ -268,7 +274,10 @@
// Kerberos cipher suites
K_KRB5 ("KRB5", true),
- K_KRB5_EXPORT("KRB5_EXPORT", true);
+ K_KRB5_EXPORT("KRB5_EXPORT", true),
+
+ // renegotiation protection request signaling cipher suite
+ K_SCSV ("SCSV", true);
// name of the key exchange algorithm, e.g. DHE_DSS
final String name;
@@ -352,7 +361,8 @@
this.exportable = true;
}
- BulkCipher(String transformation, int keySize, int ivSize, boolean allowed) {
+ BulkCipher(String transformation, int keySize,
+ int ivSize, boolean allowed) {
this.transformation = transformation;
this.algorithm = transformation.split("/")[0];
this.description = this.algorithm + "/" + (keySize << 3);
@@ -370,7 +380,8 @@
*
* @exception NoSuchAlgorithmException if anything goes wrong
*/
- CipherBox newCipher(ProtocolVersion version, SecretKey key, IvParameterSpec iv,
+ CipherBox newCipher(ProtocolVersion version,
+ SecretKey key, IvParameterSpec iv,
boolean encrypt) throws NoSuchAlgorithmException {
return CipherBox.newCipherBox(version, this, key, iv, encrypt);
}
@@ -407,8 +418,9 @@
if (b == null) {
try {
SecretKey key = new SecretKeySpec
- (new byte[cipher.expandedKeySize], cipher.algorithm);
- IvParameterSpec iv = new IvParameterSpec(new byte[cipher.ivSize]);
+ (new byte[cipher.expandedKeySize], cipher.algorithm);
+ IvParameterSpec iv =
+ new IvParameterSpec(new byte[cipher.ivSize]);
cipher.newCipher(ProtocolVersion.DEFAULT, key, iv, true);
b = Boolean.TRUE;
} catch (NoSuchAlgorithmException e) {
@@ -460,18 +472,28 @@
}
// export strength ciphers
- final static BulkCipher B_NULL = new BulkCipher("NULL", 0, 0, 0, true);
- final static BulkCipher B_RC4_40 = new BulkCipher(CIPHER_RC4, 5, 16, 0, true);
- final static BulkCipher B_RC2_40 = new BulkCipher("RC2", 5, 16, 8, false);
- final static BulkCipher B_DES_40 = new BulkCipher(CIPHER_DES, 5, 8, 8, true);
+ final static BulkCipher B_NULL =
+ new BulkCipher("NULL", 0, 0, 0, true);
+ final static BulkCipher B_RC4_40 =
+ new BulkCipher(CIPHER_RC4, 5, 16, 0, true);
+ final static BulkCipher B_RC2_40 =
+ new BulkCipher("RC2", 5, 16, 8, false);
+ final static BulkCipher B_DES_40 =
+ new BulkCipher(CIPHER_DES, 5, 8, 8, true);
// domestic strength ciphers
- final static BulkCipher B_RC4_128 = new BulkCipher(CIPHER_RC4, 16, 0, true);
- final static BulkCipher B_DES = new BulkCipher(CIPHER_DES, 8, 8, true);
- final static BulkCipher B_3DES = new BulkCipher(CIPHER_3DES, 24, 8, true);
- final static BulkCipher B_IDEA = new BulkCipher("IDEA", 16, 8, false);
- final static BulkCipher B_AES_128 = new BulkCipher(CIPHER_AES, 16, 16, true);
- final static BulkCipher B_AES_256 = new BulkCipher(CIPHER_AES, 32, 16, true);
+ final static BulkCipher B_RC4_128 =
+ new BulkCipher(CIPHER_RC4, 16, 0, true);
+ final static BulkCipher B_DES =
+ new BulkCipher(CIPHER_DES, 8, 8, true);
+ final static BulkCipher B_3DES =
+ new BulkCipher(CIPHER_3DES, 24, 8, true);
+ final static BulkCipher B_IDEA =
+ new BulkCipher("IDEA", 16, 8, false);
+ final static BulkCipher B_AES_128 =
+ new BulkCipher(CIPHER_AES, 16, 16, true);
+ final static BulkCipher B_AES_256 =
+ new BulkCipher(CIPHER_AES, 32, 16, true);
// MACs
final static MacAlg M_NULL = new MacAlg("NULL", 0);
@@ -487,93 +509,159 @@
// N: ciphersuites only allowed if we are not in FIPS mode
final boolean N = (SunJSSE.isFIPS() == false);
-add("SSL_NULL_WITH_NULL_NULL", 0x0000, 1, K_NULL, B_NULL, F);
+ add("SSL_NULL_WITH_NULL_NULL",
+ 0x0000, 1, K_NULL, B_NULL, F);
// Definition of the CipherSuites that are enabled by default.
// They are listed in preference order, most preferred first.
int p = DEFAULT_SUITES_PRIORITY * 2;
-add("SSL_RSA_WITH_RC4_128_MD5", 0x0004, --p, K_RSA, B_RC4_128, N);
-add("SSL_RSA_WITH_RC4_128_SHA", 0x0005, --p, K_RSA, B_RC4_128, N);
-add("TLS_RSA_WITH_AES_128_CBC_SHA", 0x002f, --p, K_RSA, B_AES_128, T);
-add("TLS_RSA_WITH_AES_256_CBC_SHA", 0x0035, --p, K_RSA, B_AES_256, T);
+ add("SSL_RSA_WITH_RC4_128_MD5",
+ 0x0004, --p, K_RSA, B_RC4_128, N);
+ add("SSL_RSA_WITH_RC4_128_SHA",
+ 0x0005, --p, K_RSA, B_RC4_128, N);
+ add("TLS_RSA_WITH_AES_128_CBC_SHA",
+ 0x002f, --p, K_RSA, B_AES_128, T);
+ add("TLS_RSA_WITH_AES_256_CBC_SHA",
+ 0x0035, --p, K_RSA, B_AES_256, T);
-add("TLS_ECDH_ECDSA_WITH_RC4_128_SHA", 0xC002, --p, K_ECDH_ECDSA, B_RC4_128, N);
-add("TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", 0xC004, --p, K_ECDH_ECDSA, B_AES_128, T);
-add("TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", 0xC005, --p, K_ECDH_ECDSA, B_AES_256, T);
-add("TLS_ECDH_RSA_WITH_RC4_128_SHA", 0xC00C, --p, K_ECDH_RSA, B_RC4_128, N);
-add("TLS_ECDH_RSA_WITH_AES_128_CBC_SHA", 0xC00E, --p, K_ECDH_RSA, B_AES_128, T);
-add("TLS_ECDH_RSA_WITH_AES_256_CBC_SHA", 0xC00F, --p, K_ECDH_RSA, B_AES_256, T);
+ add("TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+ 0xC002, --p, K_ECDH_ECDSA, B_RC4_128, N);
+ add("TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+ 0xC004, --p, K_ECDH_ECDSA, B_AES_128, T);
+ add("TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
+ 0xC005, --p, K_ECDH_ECDSA, B_AES_256, T);
+ add("TLS_ECDH_RSA_WITH_RC4_128_SHA",
+ 0xC00C, --p, K_ECDH_RSA, B_RC4_128, N);
+ add("TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+ 0xC00E, --p, K_ECDH_RSA, B_AES_128, T);
+ add("TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
+ 0xC00F, --p, K_ECDH_RSA, B_AES_256, T);
-add("TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", 0xC007, --p, K_ECDHE_ECDSA,B_RC4_128, N);
-add("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", 0xC009, --p, K_ECDHE_ECDSA,B_AES_128, T);
-add("TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", 0xC00A, --p, K_ECDHE_ECDSA,B_AES_256, T);
-add("TLS_ECDHE_RSA_WITH_RC4_128_SHA", 0xC011, --p, K_ECDHE_RSA, B_RC4_128, N);
-add("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", 0xC013, --p, K_ECDHE_RSA, B_AES_128, T);
-add("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", 0xC014, --p, K_ECDHE_RSA, B_AES_256, T);
+ add("TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+ 0xC007, --p, K_ECDHE_ECDSA,B_RC4_128, N);
+ add("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ 0xC009, --p, K_ECDHE_ECDSA,B_AES_128, T);
+ add("TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ 0xC00A, --p, K_ECDHE_ECDSA,B_AES_256, T);
+ add("TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+ 0xC011, --p, K_ECDHE_RSA, B_RC4_128, N);
+ add("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ 0xC013, --p, K_ECDHE_RSA, B_AES_128, T);
+ add("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ 0xC014, --p, K_ECDHE_RSA, B_AES_256, T);
-add("TLS_DHE_RSA_WITH_AES_128_CBC_SHA", 0x0033, --p, K_DHE_RSA, B_AES_128, T);
-add("TLS_DHE_RSA_WITH_AES_256_CBC_SHA", 0x0039, --p, K_DHE_RSA, B_AES_256, T);
-add("TLS_DHE_DSS_WITH_AES_128_CBC_SHA", 0x0032, --p, K_DHE_DSS, B_AES_128, T);
-add("TLS_DHE_DSS_WITH_AES_256_CBC_SHA", 0x0038, --p, K_DHE_DSS, B_AES_256, T);
+ add("TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
+ 0x0033, --p, K_DHE_RSA, B_AES_128, T);
+ add("TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
+ 0x0039, --p, K_DHE_RSA, B_AES_256, T);
+ add("TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
+ 0x0032, --p, K_DHE_DSS, B_AES_128, T);
+ add("TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
+ 0x0038, --p, K_DHE_DSS, B_AES_256, T);
-add("SSL_RSA_WITH_3DES_EDE_CBC_SHA", 0x000a, --p, K_RSA, B_3DES, T);
-add("TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA", 0xC003, --p, K_ECDH_ECDSA, B_3DES, T);
-add("TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA", 0xC00D, --p, K_ECDH_RSA, B_3DES, T);
-add("TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", 0xC008, --p, K_ECDHE_ECDSA,B_3DES, T);
-add("TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", 0xC012, --p, K_ECDHE_RSA, B_3DES, T);
-add("SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA", 0x0016, --p, K_DHE_RSA, B_3DES, T);
-add("SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA", 0x0013, --p, K_DHE_DSS, B_3DES, N);
+ add("SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+ 0x000a, --p, K_RSA, B_3DES, T);
+ add("TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ 0xC003, --p, K_ECDH_ECDSA, B_3DES, T);
+ add("TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+ 0xC00D, --p, K_ECDH_RSA, B_3DES, T);
+ add("TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ 0xC008, --p, K_ECDHE_ECDSA,B_3DES, T);
+ add("TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
+ 0xC012, --p, K_ECDHE_RSA, B_3DES, T);
+ add("SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
+ 0x0016, --p, K_DHE_RSA, B_3DES, T);
+ add("SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
+ 0x0013, --p, K_DHE_DSS, B_3DES, N);
-add("SSL_RSA_WITH_DES_CBC_SHA", 0x0009, --p, K_RSA, B_DES, N);
-add("SSL_DHE_RSA_WITH_DES_CBC_SHA", 0x0015, --p, K_DHE_RSA, B_DES, N);
-add("SSL_DHE_DSS_WITH_DES_CBC_SHA", 0x0012, --p, K_DHE_DSS, B_DES, N);
-add("SSL_RSA_EXPORT_WITH_RC4_40_MD5", 0x0003, --p, K_RSA_EXPORT, B_RC4_40, N);
-add("SSL_RSA_EXPORT_WITH_DES40_CBC_SHA", 0x0008, --p, K_RSA_EXPORT, B_DES_40, N);
-add("SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", 0x0014, --p, K_DHE_RSA, B_DES_40, N);
-add("SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", 0x0011, --p, K_DHE_DSS, B_DES_40, N);
+ add("SSL_RSA_WITH_DES_CBC_SHA",
+ 0x0009, --p, K_RSA, B_DES, N);
+ add("SSL_DHE_RSA_WITH_DES_CBC_SHA",
+ 0x0015, --p, K_DHE_RSA, B_DES, N);
+ add("SSL_DHE_DSS_WITH_DES_CBC_SHA",
+ 0x0012, --p, K_DHE_DSS, B_DES, N);
+ add("SSL_RSA_EXPORT_WITH_RC4_40_MD5",
+ 0x0003, --p, K_RSA_EXPORT, B_RC4_40, N);
+ add("SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
+ 0x0008, --p, K_RSA_EXPORT, B_DES_40, N);
+ add("SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
+ 0x0014, --p, K_DHE_RSA, B_DES_40, N);
+ add("SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+ 0x0011, --p, K_DHE_DSS, B_DES_40, N);
+
+ // Renegotiation protection request Signalling Cipher Suite Value (SCSV)
+ add("TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
+ 0x00ff, --p, K_SCSV, B_NULL, T);
// Definition of the CipherSuites that are supported but not enabled
// by default.
// They are listed in preference order, preferred first.
p = DEFAULT_SUITES_PRIORITY;
-// Anonymous key exchange and the NULL ciphers
-add("SSL_RSA_WITH_NULL_MD5", 0x0001, --p, K_RSA, B_NULL, N);
-add("SSL_RSA_WITH_NULL_SHA", 0x0002, --p, K_RSA, B_NULL, N);
-add("TLS_ECDH_ECDSA_WITH_NULL_SHA", 0xC001, --p, K_ECDH_ECDSA, B_NULL, N);
-add("TLS_ECDH_RSA_WITH_NULL_SHA", 0xC00B, --p, K_ECDH_RSA, B_NULL, N);
-add("TLS_ECDHE_ECDSA_WITH_NULL_SHA", 0xC006, --p, K_ECDHE_ECDSA,B_NULL, N);
-add("TLS_ECDHE_RSA_WITH_NULL_SHA", 0xC010, --p, K_ECDHE_RSA, B_NULL, N);
+ // Anonymous key exchange and the NULL ciphers
+ add("SSL_RSA_WITH_NULL_MD5",
+ 0x0001, --p, K_RSA, B_NULL, N);
+ add("SSL_RSA_WITH_NULL_SHA",
+ 0x0002, --p, K_RSA, B_NULL, N);
+ add("TLS_ECDH_ECDSA_WITH_NULL_SHA",
+ 0xC001, --p, K_ECDH_ECDSA, B_NULL, N);
+ add("TLS_ECDH_RSA_WITH_NULL_SHA",
+ 0xC00B, --p, K_ECDH_RSA, B_NULL, N);
+ add("TLS_ECDHE_ECDSA_WITH_NULL_SHA",
+ 0xC006, --p, K_ECDHE_ECDSA,B_NULL, N);
+ add("TLS_ECDHE_RSA_WITH_NULL_SHA",
+ 0xC010, --p, K_ECDHE_RSA, B_NULL, N);
-add("SSL_DH_anon_WITH_RC4_128_MD5", 0x0018, --p, K_DH_ANON, B_RC4_128, N);
-add("TLS_DH_anon_WITH_AES_128_CBC_SHA", 0x0034, --p, K_DH_ANON, B_AES_128, N);
-add("TLS_DH_anon_WITH_AES_256_CBC_SHA", 0x003a, --p, K_DH_ANON, B_AES_256, N);
-add("SSL_DH_anon_WITH_3DES_EDE_CBC_SHA", 0x001b, --p, K_DH_ANON, B_3DES, N);
-add("SSL_DH_anon_WITH_DES_CBC_SHA", 0x001a, --p, K_DH_ANON, B_DES, N);
+ add("SSL_DH_anon_WITH_RC4_128_MD5",
+ 0x0018, --p, K_DH_ANON, B_RC4_128, N);
+ add("TLS_DH_anon_WITH_AES_128_CBC_SHA",
+ 0x0034, --p, K_DH_ANON, B_AES_128, N);
+ add("TLS_DH_anon_WITH_AES_256_CBC_SHA",
+ 0x003a, --p, K_DH_ANON, B_AES_256, N);
+ add("SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
+ 0x001b, --p, K_DH_ANON, B_3DES, N);
+ add("SSL_DH_anon_WITH_DES_CBC_SHA",
+ 0x001a, --p, K_DH_ANON, B_DES, N);
-add("TLS_ECDH_anon_WITH_RC4_128_SHA", 0xC016, --p, K_ECDH_ANON, B_RC4_128, N);
-add("TLS_ECDH_anon_WITH_AES_128_CBC_SHA", 0xC018, --p, K_ECDH_ANON, B_AES_128, T);
-add("TLS_ECDH_anon_WITH_AES_256_CBC_SHA", 0xC019, --p, K_ECDH_ANON, B_AES_256, T);
-add("TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA", 0xC017, --p, K_ECDH_ANON, B_3DES, T);
+ add("TLS_ECDH_anon_WITH_RC4_128_SHA",
+ 0xC016, --p, K_ECDH_ANON, B_RC4_128, N);
+ add("TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
+ 0xC018, --p, K_ECDH_ANON, B_AES_128, T);
+ add("TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
+ 0xC019, --p, K_ECDH_ANON, B_AES_256, T);
+ add("TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
+ 0xC017, --p, K_ECDH_ANON, B_3DES, T);
-add("SSL_DH_anon_EXPORT_WITH_RC4_40_MD5", 0x0017, --p, K_DH_ANON, B_RC4_40, N);
-add("SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA", 0x0019, --p, K_DH_ANON, B_DES_40, N);
+ add("SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
+ 0x0017, --p, K_DH_ANON, B_RC4_40, N);
+ add("SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
+ 0x0019, --p, K_DH_ANON, B_DES_40, N);
-add("TLS_ECDH_anon_WITH_NULL_SHA", 0xC015, --p, K_ECDH_ANON, B_NULL, N);
+ add("TLS_ECDH_anon_WITH_NULL_SHA",
+ 0xC015, --p, K_ECDH_ANON, B_NULL, N);
-// Supported Kerberos ciphersuites from RFC2712
-add("TLS_KRB5_WITH_RC4_128_SHA", 0x0020, --p, K_KRB5, B_RC4_128, N);
-add("TLS_KRB5_WITH_RC4_128_MD5", 0x0024, --p, K_KRB5, B_RC4_128, N);
-add("TLS_KRB5_WITH_3DES_EDE_CBC_SHA", 0x001f, --p, K_KRB5, B_3DES, N);
-add("TLS_KRB5_WITH_3DES_EDE_CBC_MD5", 0x0023, --p, K_KRB5, B_3DES, N);
-add("TLS_KRB5_WITH_DES_CBC_SHA", 0x001e, --p, K_KRB5, B_DES, N);
-add("TLS_KRB5_WITH_DES_CBC_MD5", 0x0022, --p, K_KRB5, B_DES, N);
-add("TLS_KRB5_EXPORT_WITH_RC4_40_SHA", 0x0028, --p, K_KRB5_EXPORT, B_RC4_40, N);
-add("TLS_KRB5_EXPORT_WITH_RC4_40_MD5", 0x002b, --p, K_KRB5_EXPORT, B_RC4_40, N);
-add("TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA", 0x0026, --p, K_KRB5_EXPORT, B_DES_40, N);
-add("TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5", 0x0029, --p, K_KRB5_EXPORT, B_DES_40, N);
-
+ // Supported Kerberos ciphersuites from RFC2712
+ add("TLS_KRB5_WITH_RC4_128_SHA",
+ 0x0020, --p, K_KRB5, B_RC4_128, N);
+ add("TLS_KRB5_WITH_RC4_128_MD5",
+ 0x0024, --p, K_KRB5, B_RC4_128, N);
+ add("TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
+ 0x001f, --p, K_KRB5, B_3DES, N);
+ add("TLS_KRB5_WITH_3DES_EDE_CBC_MD5",
+ 0x0023, --p, K_KRB5, B_3DES, N);
+ add("TLS_KRB5_WITH_DES_CBC_SHA",
+ 0x001e, --p, K_KRB5, B_DES, N);
+ add("TLS_KRB5_WITH_DES_CBC_MD5",
+ 0x0022, --p, K_KRB5, B_DES, N);
+ add("TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
+ 0x0028, --p, K_KRB5_EXPORT, B_RC4_40, N);
+ add("TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
+ 0x002b, --p, K_KRB5_EXPORT, B_RC4_40, N);
+ add("TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
+ 0x0026, --p, K_KRB5_EXPORT, B_DES_40, N);
+ add("TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
+ 0x0029, --p, K_KRB5_EXPORT, B_DES_40, N);
// Register the names of a few additional CipherSuites.
// Makes them show up as names instead of numbers in
@@ -618,4 +706,6 @@
// ciphersuite SSL_NULL_WITH_NULL_NULL
final static CipherSuite C_NULL = CipherSuite.valueOf(0, 0);
+ // ciphersuite TLS_EMPTY_RENEGOTIATION_INFO_SCSV
+ final static CipherSuite C_SCSV = CipherSuite.valueOf(0x00, 0xff);
}
--- a/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,8 +51,9 @@
// null if not yet checked.
private volatile Boolean containsEC;
- // for use by buildAvailableCache() only
- private CipherSuiteList(Collection<CipherSuite> cipherSuites) {
+ // for use by buildAvailableCache() and
+ // Handshaker.getKickstartMessage() only
+ CipherSuiteList(Collection<CipherSuite> cipherSuites) {
this.cipherSuites = cipherSuites;
}
@@ -221,15 +222,18 @@
// SortedSet automatically arranges ciphersuites in default
// preference order
Set<CipherSuite> cipherSuites = new TreeSet<CipherSuite>();
- Collection<CipherSuite> allowedCipherSuites = CipherSuite.allowedCipherSuites();
+ Collection<CipherSuite> allowedCipherSuites =
+ CipherSuite.allowedCipherSuites();
for (CipherSuite c : allowedCipherSuites) {
if ((c.allowed == false) || (c.priority < minPriority)) {
continue;
}
+
if (c.isAvailable()) {
cipherSuites.add(c);
}
}
+
return new CipherSuiteList(cipherSuites);
}
--- a/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -94,16 +94,24 @@
*/
ClientHandshaker(SSLSocketImpl socket, SSLContextImpl context,
ProtocolList enabledProtocols,
- ProtocolVersion activeProtocolVersion) {
- super(socket, context, enabledProtocols, true, true);
- this.activeProtocolVersion = activeProtocolVersion;
+ ProtocolVersion activeProtocolVersion,
+ boolean isInitialHandshake, boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
+
+ super(socket, context, enabledProtocols, true, true,
+ activeProtocolVersion, isInitialHandshake, secureRenegotiation,
+ clientVerifyData, serverVerifyData);
}
ClientHandshaker(SSLEngineImpl engine, SSLContextImpl context,
ProtocolList enabledProtocols,
- ProtocolVersion activeProtocolVersion) {
- super(engine, context, enabledProtocols, true, true);
- this.activeProtocolVersion = activeProtocolVersion;
+ ProtocolVersion activeProtocolVersion,
+ boolean isInitialHandshake, boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
+
+ super(engine, context, enabledProtocols, true, true,
+ activeProtocolVersion, isInitialHandshake, secureRenegotiation,
+ clientVerifyData, serverVerifyData);
}
/*
@@ -279,10 +287,11 @@
// sent the "client hello" but the server's not seen it.
//
if (state < HandshakeMessage.ht_client_hello) {
- if (!renegotiable) { // renegotiation is not allowed.
+ if (!secureRenegotiation && !allowUnsafeRenegotiation) {
+ // renegotiation is not allowed.
if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
- // response with a no_negotiation warning,
- warningSE(Alerts.alert_no_negotiation);
+ // response with a no_renegotiation warning,
+ warningSE(Alerts.alert_no_renegotiation);
// invalidate the handshake so that the caller can
// dispose this object.
@@ -293,26 +302,24 @@
// and the next handshake message will become incomplete.
//
// However, according to SSL/TLS specifications, no more
- // handshake message could immediately follow ClientHello
- // or HelloRequest. But in case of any improper messages,
- // we'd better check to ensure there is no remaining bytes
- // in the handshake input stream.
- if (input.available() > 0) {
- fatalSE(Alerts.alert_unexpected_message,
- "HelloRequest followed by an unexpected " +
- "handshake message");
- }
-
+ // handshake message should immediately follow ClientHello
+ // or HelloRequest. So just let it be.
} else {
// For SSLv3, send the handshake_failure fatal error.
- // Note that SSLv3 does not define a no_negotiation alert
- // like TLSv1. However we cannot ignore the message
+ // Note that SSLv3 does not define a no_renegotiation
+ // alert like TLSv1. However we cannot ignore the message
// simply, otherwise the other side was waiting for a
// response that would never come.
fatalSE(Alerts.alert_handshake_failure,
- "renegotiation is not allowed");
+ "Renegotiation is not allowed");
}
} else {
+ if (!secureRenegotiation) {
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println(
+ "Warning: continue with insecure renegotiation");
+ }
+ }
kickstart();
}
}
@@ -347,6 +354,68 @@
// Handshake streams
setVersion(mesgVersion);
+ // check the "renegotiation_info" extension
+ RenegotiationInfoExtension serverHelloRI = (RenegotiationInfoExtension)
+ mesg.extensions.get(ExtensionType.EXT_RENEGOTIATION_INFO);
+ if (serverHelloRI != null) {
+ if (isInitialHandshake) {
+ // verify the length of the "renegotiated_connection" field
+ if (!serverHelloRI.isEmpty()) {
+ // abort the handshake with a fatal handshake_failure alert
+ fatalSE(Alerts.alert_handshake_failure,
+ "The renegotiation_info field is not empty");
+ }
+
+ secureRenegotiation = true;
+ } else {
+ // For a legacy renegotiation, the client MUST verify that
+ // it does not contain the "renegotiation_info" extension.
+ if (!secureRenegotiation) {
+ fatalSE(Alerts.alert_handshake_failure,
+ "Unexpected renegotiation indication extension");
+ }
+
+ // verify the client_verify_data and server_verify_data values
+ byte[] verifyData =
+ new byte[clientVerifyData.length + serverVerifyData.length];
+ System.arraycopy(clientVerifyData, 0, verifyData,
+ 0, clientVerifyData.length);
+ System.arraycopy(serverVerifyData, 0, verifyData,
+ clientVerifyData.length, serverVerifyData.length);
+ if (!Arrays.equals(verifyData,
+ serverHelloRI.getRenegotiatedConnection())) {
+ fatalSE(Alerts.alert_handshake_failure,
+ "Incorrect verify data in ServerHello " +
+ "renegotiation_info message");
+ }
+ }
+ } else {
+ // no renegotiation indication extension
+ if (isInitialHandshake) {
+ if (!allowLegacyHelloMessages) {
+ // abort the handshake with a fatal handshake_failure alert
+ fatalSE(Alerts.alert_handshake_failure,
+ "Failed to negotiate the use of secure renegotiation");
+ }
+
+ secureRenegotiation = false;
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println("Warning: No renegotiation " +
+ "indication extension in ServerHello");
+ }
+ } else {
+ // For a secure renegotiation, the client must abort the
+ // handshake if no "renegotiation_info" extension is present.
+ if (secureRenegotiation) {
+ fatalSE(Alerts.alert_handshake_failure,
+ "No renegotiation indication extension");
+ }
+
+ // we have already allowed unsafe renegotation before request
+ // the renegotiation.
+ }
+ }
+
//
// Save server nonce, we always use it to compute connection
// keys and it's also used to create the master secret if we're
@@ -354,10 +423,11 @@
//
svr_random = mesg.svr_random;
- if (isEnabled(mesg.cipherSuite) == false) {
+ if (isNegotiable(mesg.cipherSuite) == false) {
fatalSE(Alerts.alert_illegal_parameter,
- "Server selected disabled ciphersuite " + cipherSuite);
+ "Server selected improper ciphersuite " + cipherSuite);
}
+
setCipherSuite(mesg.cipherSuite);
if (mesg.compression_method != 0) {
@@ -452,7 +522,8 @@
for (HelloExtension ext : mesg.extensions.list()) {
ExtensionType type = ext.type;
if ((type != ExtensionType.EXT_ELLIPTIC_CURVES)
- && (type != ExtensionType.EXT_EC_POINT_FORMATS)) {
+ && (type != ExtensionType.EXT_EC_POINT_FORMATS)
+ && (type != ExtensionType.EXT_RENEGOTIATION_INFO)) {
fatalSE(Alerts.alert_unsupported_extension,
"Server sent an unsupported extension: " + type);
}
@@ -869,6 +940,13 @@
}
/*
+ * save server verify data for secure renegotiation
+ */
+ if (secureRenegotiation) {
+ serverVerifyData = mesg.getVerifyData();
+ }
+
+ /*
* OK, it verified. If we're doing the fast handshake, add that
* "Finished" message to the hash of handshake messages, then send
* our own change_cipher_spec and Finished message for the server
@@ -921,6 +999,13 @@
sendChangeCipherSpec(mesg, finishedTag);
/*
+ * save client verify data for secure renegotiation
+ */
+ if (secureRenegotiation) {
+ clientVerifyData = mesg.getVerifyData();
+ }
+
+ /*
* Update state machine so server MUST send 'finished' next.
* (In "long" handshake case; in short case, we're responding
* to its message.)
@@ -933,12 +1018,15 @@
* Returns a ClientHello message to kickstart renegotiations
*/
HandshakeMessage getKickstartMessage() throws SSLException {
- ClientHello mesg = new ClientHello(sslContext.getSecureRandom(),
- protocolVersion);
+ // session ID of the ClientHello message
+ SessionId sessionId = SSLSessionImpl.nullSession.getSessionId();
+
+ // a list of cipher suites sent by the client
+ CipherSuiteList cipherSuites = enabledCipherSuites;
+
+ // set the max protocol version this client is supporting.
maxProtocolVersion = protocolVersion;
- clnt_random = mesg.clnt_random;
-
//
// Try to resume an existing session. This might be mandatory,
// given certain API options.
@@ -962,9 +1050,9 @@
if (session != null) {
CipherSuite sessionSuite = session.getSuite();
ProtocolVersion sessionVersion = session.getProtocolVersion();
- if (isEnabled(sessionSuite) == false) {
+ if (isNegotiable(sessionSuite) == false) {
if (debug != null && Debug.isOn("session")) {
- System.out.println("%% can't resume, cipher disabled");
+ System.out.println("%% can't resume, unavailable cipher");
}
session = null;
}
@@ -984,9 +1072,8 @@
+ " from port " + getLocalPortSE());
}
}
- mesg.sessionId = session.getSessionId();
- mesg.protocolVersion = sessionVersion;
+ sessionId = session.getSessionId();
maxProtocolVersion = sessionVersion;
// Update SSL version number in underlying SSL socket and
@@ -995,33 +1082,78 @@
setVersion(sessionVersion);
}
- //
- // don't say much beyond the obvious if we _must_ resume.
- //
+ /*
+ * Force use of the previous session ciphersuite, and
+ * add the SCSV if enabled.
+ */
if (!enableNewSession) {
if (session == null) {
throw new SSLException(
"Can't reuse existing SSL client session");
}
- mesg.setCipherSuites(new CipherSuiteList(sessionSuite));
- return mesg;
- }
- }
- if (session == null) {
- if (enableNewSession) {
- mesg.sessionId = SSLSessionImpl.nullSession.getSessionId();
- } else {
- throw new SSLException("No existing session to resume.");
+
+ Collection<CipherSuite> cipherList =
+ new ArrayList<CipherSuite>(2);
+ cipherList.add(sessionSuite);
+ if (!secureRenegotiation &&
+ cipherSuites.contains(CipherSuite.C_SCSV)) {
+ cipherList.add(CipherSuite.C_SCSV);
+ } // otherwise, renegotiation_info extension will be used
+
+ cipherSuites = new CipherSuiteList(cipherList);
}
}
- //
- // All we have left to do is fill out the cipher suites.
- // (If this changes, change the 'return' above!)
- //
- mesg.setCipherSuites(enabledCipherSuites);
+ if (session == null && !enableNewSession) {
+ throw new SSLException("No existing session to resume");
+ }
+
+ // exclude SCSV for secure renegotiation
+ if (secureRenegotiation && cipherSuites.contains(CipherSuite.C_SCSV)) {
+ Collection<CipherSuite> cipherList =
+ new ArrayList<CipherSuite>(cipherSuites.size() - 1);
+ for (CipherSuite suite : cipherSuites.collection()) {
+ if (suite != CipherSuite.C_SCSV) {
+ cipherList.add(suite);
+ }
+ }
+
+ cipherSuites = new CipherSuiteList(cipherList);
+ }
- return mesg;
+ // make sure there is a negotiable cipher suite.
+ boolean negotiable = false;
+ for (CipherSuite suite : cipherSuites.collection()) {
+ if (isNegotiable(suite)) {
+ negotiable = true;
+ break;
+ }
+ }
+
+ if (!negotiable) {
+ throw new SSLException("No negotiable cipher suite");
+ }
+
+ // create the ClientHello message
+ ClientHello clientHelloMessage = new ClientHello(
+ sslContext.getSecureRandom(), maxProtocolVersion,
+ sessionId, cipherSuites);
+
+ // reset the client random cookie
+ clnt_random = clientHelloMessage.clnt_random;
+
+ /*
+ * need to set the renegotiation_info extension for:
+ * 1: secure renegotiation
+ * 2: initial handshake and no SCSV in the ClientHello
+ * 3: insecure renegotiation and no SCSV in the ClientHello
+ */
+ if (secureRenegotiation ||
+ !cipherSuites.contains(CipherSuite.C_SCSV)) {
+ clientHelloMessage.addRenegotiationInfoExtension(clientVerifyData);
+ }
+
+ return clientHelloMessage;
}
/*
--- a/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -172,9 +172,7 @@
* Server can ask the client to initiate a new handshake, e.g. to change
* session parameters after a connection has been (re)established.
*/
-static final
-class HelloRequest extends HandshakeMessage
-{
+static final class HelloRequest extends HandshakeMessage {
int messageType() { return ht_hello_request; }
HelloRequest() { }
@@ -210,10 +208,7 @@
* Until we know how to parse it, we will just read what we know
* about, and let our caller handle the jumps over unknown data.
*/
-static final
-class ClientHello extends HandshakeMessage
-{
- int messageType() { return ht_client_hello; }
+static final class ClientHello extends HandshakeMessage {
ProtocolVersion protocolVersion;
RandomCookie clnt_random;
@@ -225,37 +220,20 @@
private final static byte[] NULL_COMPRESSION = new byte[] {0};
- ClientHello(SecureRandom generator, ProtocolVersion protocolVersion) {
- this.protocolVersion = protocolVersion;
- clnt_random = new RandomCookie(generator);
- compression_methods = NULL_COMPRESSION;
- // sessionId, cipher_suites TBS later
- }
+ ClientHello(SecureRandom generator, ProtocolVersion protocolVersion,
+ SessionId sessionId, CipherSuiteList cipherSuites) {
- CipherSuiteList getCipherSuites() {
- return cipherSuites;
- }
+ this.protocolVersion = protocolVersion;
+ this.sessionId = sessionId;
+ this.cipherSuites = cipherSuites;
- // Set the ciphersuites.
- // This method may only be called once.
- void setCipherSuites(CipherSuiteList cipherSuites) {
- this.cipherSuites = cipherSuites;
if (cipherSuites.containsEC()) {
extensions.add(SupportedEllipticCurvesExtension.DEFAULT);
extensions.add(SupportedEllipticPointFormatsExtension.DEFAULT);
}
- }
- int messageLength() {
- /*
- * Add fixed size parts of each field...
- * version + random + session + cipher + compress
- */
- return (2 + 32 + 1 + 2 + 1
- + sessionId.length() /* ... + variable parts */
- + (cipherSuites.size() * 2)
- + compression_methods.length)
- + extensions.length();
+ clnt_random = new RandomCookie(generator);
+ compression_methods = NULL_COMPRESSION;
}
ClientHello(HandshakeInStream s, int messageLength) throws IOException {
@@ -269,6 +247,34 @@
}
}
+ CipherSuiteList getCipherSuites() {
+ return cipherSuites;
+ }
+
+ // add renegotiation_info extension
+ void addRenegotiationInfoExtension(byte[] clientVerifyData) {
+ HelloExtension renegotiationInfo = new RenegotiationInfoExtension(
+ clientVerifyData, new byte[0]);
+ extensions.add(renegotiationInfo);
+ }
+
+ @Override
+ int messageType() { return ht_client_hello; }
+
+ @Override
+ int messageLength() {
+ /*
+ * Add fixed size parts of each field...
+ * version + random + session + cipher + compress
+ */
+ return (2 + 32 + 1 + 2 + 1
+ + sessionId.length() /* ... + variable parts */
+ + (cipherSuites.size() * 2)
+ + compression_methods.length)
+ + extensions.length();
+ }
+
+ @Override
void send(HandshakeOutStream s) throws IOException {
s.putInt8(protocolVersion.major);
s.putInt8(protocolVersion.minor);
@@ -279,6 +285,7 @@
extensions.send(s);
}
+ @Override
void print(PrintStream s) throws IOException {
s.println("*** ClientHello, " + protocolVersion);
@@ -315,7 +322,6 @@
CipherSuite cipherSuite;
byte compression_method;
HelloExtensions extensions = new HelloExtensions();
- int extensionLength;
ServerHello() {
// empty
@@ -1425,8 +1431,6 @@
*/
static final class Finished extends HandshakeMessage {
- int messageType() { return ht_finished; }
-
// constant for a Finished message sent by the client
final static int CLIENT = 1;
@@ -1468,7 +1472,7 @@
* both client and server are fully in sync, and that the handshake
* computations have been successful.
*/
- boolean verify(ProtocolVersion protocolVersion,
+ boolean verify(ProtocolVersion protocolVersion,
HandshakeHash handshakeHash, int sender, SecretKey master) {
byte[] myFinished = getFinished(protocolVersion, handshakeHash,
sender, master);
@@ -1542,14 +1546,25 @@
CertificateVerify.updateDigest(md, pad1, pad2, masterSecret);
}
+ // get the verify_data of the finished message
+ byte[] getVerifyData() {
+ return verifyData;
+ }
+
+ @Override
+ int messageType() { return ht_finished; }
+
+ @Override
int messageLength() {
return verifyData.length;
}
+ @Override
void send(HandshakeOutStream out) throws IOException {
out.write(verifyData);
}
+ @Override
void print(PrintStream s) throws IOException {
s.println("*** Finished");
if (debug != null && Debug.isOn("verbose")) {
@@ -1557,7 +1572,6 @@
s.println("***");
}
}
-
}
//
--- a/jdk/src/share/classes/sun/security/ssl/Handshaker.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/Handshaker.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -66,6 +66,14 @@
// the currently active protocol version during a renegotiation
ProtocolVersion activeProtocolVersion;
+ // security parameters for secure renegotiation.
+ boolean secureRenegotiation;
+ byte[] clientVerifyData;
+ byte[] serverVerifyData;
+
+ // is it an initial negotiation or a renegotiation?
+ boolean isInitialHandshake;
+
// list of enabled protocols
ProtocolList enabledProtocols;
@@ -128,31 +136,66 @@
static final Debug debug = Debug.getInstance("ssl");
// By default, disable the unsafe legacy session renegotiation
- static final boolean renegotiable = Debug.getBooleanProperty(
+ static final boolean allowUnsafeRenegotiation = Debug.getBooleanProperty(
"sun.security.ssl.allowUnsafeRenegotiation", false);
+ // For maximum interoperability and backward compatibility, RFC 5746
+ // allows server (or client) to accept ClientHello (or ServerHello)
+ // message without the secure renegotiation_info extension or SCSV.
+ //
+ // For maximum security, RFC 5746 also allows server (or client) to
+ // reject such message with a fatal "handshake_failure" alert.
+ //
+ // By default, allow such legacy hello messages.
+ static final boolean allowLegacyHelloMessages = Debug.getBooleanProperty(
+ "sun.security.ssl.allowLegacyHelloMessages", true);
+
// need to dispose the object when it is invalidated
boolean invalidated;
Handshaker(SSLSocketImpl c, SSLContextImpl context,
ProtocolList enabledProtocols, boolean needCertVerify,
- boolean isClient) {
+ boolean isClient, ProtocolVersion activeProtocolVersion,
+ boolean isInitialHandshake, boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
this.conn = c;
- init(context, enabledProtocols, needCertVerify, isClient);
+ init(context, enabledProtocols, needCertVerify, isClient,
+ activeProtocolVersion, isInitialHandshake, secureRenegotiation,
+ clientVerifyData, serverVerifyData);
}
Handshaker(SSLEngineImpl engine, SSLContextImpl context,
ProtocolList enabledProtocols, boolean needCertVerify,
- boolean isClient) {
+ boolean isClient, ProtocolVersion activeProtocolVersion,
+ boolean isInitialHandshake, boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
this.engine = engine;
- init(context, enabledProtocols, needCertVerify, isClient);
+ init(context, enabledProtocols, needCertVerify, isClient,
+ activeProtocolVersion, isInitialHandshake, secureRenegotiation,
+ clientVerifyData, serverVerifyData);
}
private void init(SSLContextImpl context, ProtocolList enabledProtocols,
- boolean needCertVerify, boolean isClient) {
+ boolean needCertVerify, boolean isClient,
+ ProtocolVersion activeProtocolVersion,
+ boolean isInitialHandshake, boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
+
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println(
+ "Allow unsafe renegotiation: " + allowUnsafeRenegotiation +
+ "\nAllow legacy hello messages: " + allowLegacyHelloMessages +
+ "\nIs initial handshake: " + isInitialHandshake +
+ "\nIs secure renegotiation: " + secureRenegotiation);
+ }
this.sslContext = context;
this.isClient = isClient;
+ this.activeProtocolVersion = activeProtocolVersion;
+ this.isInitialHandshake = isInitialHandshake;
+ this.secureRenegotiation = secureRenegotiation;
+ this.clientVerifyData = clientVerifyData;
+ this.serverVerifyData = serverVerifyData;
enableNewSession = true;
invalidated = false;
@@ -353,8 +396,8 @@
* changed due to change in JCE providers since it was enabled).
* Does not check if the required server certificates are available.
*/
- boolean isEnabled(CipherSuite s) {
- return enabledCipherSuites.contains(s) && s.isAvailable();
+ boolean isNegotiable(CipherSuite s) {
+ return enabledCipherSuites.contains(s) && s.isNegotiable();
}
/**
@@ -459,6 +502,27 @@
}
/*
+ * Returns true if renegotiation is in use for this connection.
+ */
+ boolean isSecureRenegotiation() {
+ return secureRenegotiation;
+ }
+
+ /*
+ * Returns the verify_data from the Finished message sent by the client.
+ */
+ byte[] getClientVerifyData() {
+ return clientVerifyData;
+ }
+
+ /*
+ * Returns the verify_data from the Finished message sent by the server.
+ */
+ byte[] getServerVerifyData() {
+ return serverVerifyData;
+ }
+
+ /*
* This routine is fed SSL handshake records when they become available,
* and processes messages found therein.
*/
--- a/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -81,7 +81,10 @@
} else if (extType == ExtensionType.EXT_ELLIPTIC_CURVES) {
extension = new SupportedEllipticCurvesExtension(s, extlen);
} else if (extType == ExtensionType.EXT_EC_POINT_FORMATS) {
- extension = new SupportedEllipticPointFormatsExtension(s, extlen);
+ extension =
+ new SupportedEllipticPointFormatsExtension(s, extlen);
+ } else if (extType == ExtensionType.EXT_RENEGOTIATION_INFO) {
+ extension = new RenegotiationInfoExtension(s, extlen);
} else {
extension = new UnknownExtension(s, extlen, extType);
}
@@ -89,7 +92,8 @@
len -= extlen + 4;
}
if (len != 0) {
- throw new SSLProtocolException("Error parsing extensions: extra data");
+ throw new SSLProtocolException(
+ "Error parsing extensions: extra data");
}
}
@@ -162,7 +166,8 @@
return name;
}
- static List<ExtensionType> knownExtensions = new ArrayList<ExtensionType>(8);
+ static List<ExtensionType> knownExtensions =
+ new ArrayList<ExtensionType>(9);
static ExtensionType get(int id) {
for (ExtensionType ext : knownExtensions) {
@@ -180,17 +185,44 @@
}
// extensions defined in RFC 3546
- final static ExtensionType EXT_SERVER_NAME = e( 0, "server_name");
- final static ExtensionType EXT_MAX_FRAGMENT_LENGTH = e( 1, "max_fragment_length");
- final static ExtensionType EXT_CLIENT_CERTIFICATE_URL = e( 2, "client_certificate_url");
- final static ExtensionType EXT_TRUSTED_CA_KEYS = e( 3, "trusted_ca_keys");
- final static ExtensionType EXT_TRUNCATED_HMAC = e( 4, "truncated_hmac");
- final static ExtensionType EXT_STATUS_REQUEST = e( 5, "status_request");
+ final static ExtensionType EXT_SERVER_NAME =
+ e(0x0000, "server_name"); // IANA registry value: 0
+ final static ExtensionType EXT_MAX_FRAGMENT_LENGTH =
+ e(0x0001, "max_fragment_length"); // IANA registry value: 1
+ final static ExtensionType EXT_CLIENT_CERTIFICATE_URL =
+ e(0x0002, "client_certificate_url"); // IANA registry value: 2
+ final static ExtensionType EXT_TRUSTED_CA_KEYS =
+ e(0x0003, "trusted_ca_keys"); // IANA registry value: 3
+ final static ExtensionType EXT_TRUNCATED_HMAC =
+ e(0x0004, "truncated_hmac"); // IANA registry value: 4
+ final static ExtensionType EXT_STATUS_REQUEST =
+ e(0x0005, "status_request"); // IANA registry value: 5
+
+ // extensions defined in RFC 4681
+ final static ExtensionType EXT_USER_MAPPING =
+ e(0x0006, "user_mapping"); // IANA registry value: 6
+
+ // extensions defined in RFC 5081
+ final static ExtensionType EXT_CERT_TYPE =
+ e(0x0009, "cert_type"); // IANA registry value: 9
// extensions defined in RFC 4492 (ECC)
- final static ExtensionType EXT_ELLIPTIC_CURVES = e(10, "elliptic_curves");
- final static ExtensionType EXT_EC_POINT_FORMATS = e(11, "ec_point_formats");
+ final static ExtensionType EXT_ELLIPTIC_CURVES =
+ e(0x000A, "elliptic_curves"); // IANA registry value: 10
+ final static ExtensionType EXT_EC_POINT_FORMATS =
+ e(0x000B, "ec_point_formats"); // IANA registry value: 11
+ // extensions defined in RFC 5054
+ final static ExtensionType EXT_SRP =
+ e(0x000C, "srp"); // IANA registry value: 12
+
+ // extensions defined in RFC 5246
+ final static ExtensionType EXT_SIGNATURE_ALGORITHMS =
+ e(0x000D, "signature_algorithms"); // IANA registry value: 13
+
+ // extensions defined in RFC 5746
+ final static ExtensionType EXT_RENEGOTIATION_INFO =
+ e(0xff01, "renegotiation_info"); // IANA registry value: 65281
}
abstract class HelloExtension {
@@ -238,9 +270,11 @@
}
}
-// Support for the server_name extension is incomplete. Parsing is implemented
-// so that we get nicer debug output, but we neither send it nor do we do
-// act on it if we receive it.
+/*
+ * Support for the server_name extension is incomplete. Parsing is implemented
+ * so that we get nicer debug output, but we neither send it nor do we do
+ * act on it if we receive it.
+ */
final class ServerNameExtension extends HelloExtension {
final static int NAME_HOST_NAME = 0;
@@ -268,9 +302,9 @@
final String hostname;
ServerName(HandshakeInStream s) throws IOException {
- length = s.getInt16();
- type = s.getInt8();
- data = s.getBytes16();
+ length = s.getInt16(); // ServerNameList length
+ type = s.getInt8(); // NameType
+ data = s.getBytes16(); // HostName (length read in getBytes16)
if (type == NAME_HOST_NAME) {
hostname = new String(data, "UTF8");
} else {
@@ -549,3 +583,85 @@
return "Extension " + type + ", formats: " + list;
}
}
+
+/*
+ * For secure renegotiation, RFC5746 defines a new TLS extension,
+ * "renegotiation_info" (with extension type 0xff01), which contains a
+ * cryptographic binding to the enclosing TLS connection (if any) for
+ * which the renegotiation is being performed. The "extension data"
+ * field of this extension contains a "RenegotiationInfo" structure:
+ *
+ * struct {
+ * opaque renegotiated_connection<0..255>;
+ * } RenegotiationInfo;
+ */
+final class RenegotiationInfoExtension extends HelloExtension {
+ private final byte[] renegotiated_connection;
+
+ RenegotiationInfoExtension(byte[] clientVerifyData,
+ byte[] serverVerifyData) {
+ super(ExtensionType.EXT_RENEGOTIATION_INFO);
+
+ if (clientVerifyData.length != 0) {
+ renegotiated_connection =
+ new byte[clientVerifyData.length + serverVerifyData.length];
+ System.arraycopy(clientVerifyData, 0, renegotiated_connection,
+ 0, clientVerifyData.length);
+
+ if (serverVerifyData.length != 0) {
+ System.arraycopy(serverVerifyData, 0, renegotiated_connection,
+ clientVerifyData.length, serverVerifyData.length);
+ }
+ } else {
+ // ignore both the client and server verify data.
+ renegotiated_connection = new byte[0];
+ }
+ }
+
+ RenegotiationInfoExtension(HandshakeInStream s, int len)
+ throws IOException {
+ super(ExtensionType.EXT_RENEGOTIATION_INFO);
+
+ // check the extension length
+ if (len < 1) {
+ throw new SSLProtocolException("Invalid " + type + " extension");
+ }
+
+ int renegoInfoDataLen = s.getInt8();
+ if (renegoInfoDataLen + 1 != len) { // + 1 = the byte we just read
+ throw new SSLProtocolException("Invalid " + type + " extension");
+ }
+
+ renegotiated_connection = new byte[renegoInfoDataLen];
+ if (renegoInfoDataLen != 0) {
+ s.read(renegotiated_connection, 0, renegoInfoDataLen);
+ }
+ }
+
+
+ // Length of the encoded extension, including the type and length fields
+ int length() {
+ return 5 + renegotiated_connection.length;
+ }
+
+ void send(HandshakeOutStream s) throws IOException {
+ s.putInt16(type.id);
+ s.putInt16(renegotiated_connection.length + 1);
+ s.putBytes8(renegotiated_connection);
+ }
+
+ boolean isEmpty() {
+ return renegotiated_connection.length == 0;
+ }
+
+ byte[] getRenegotiatedConnection() {
+ return renegotiated_connection;
+ }
+
+ public String toString() {
+ return "Extension " + type + ", renegotiated_connection: " +
+ (renegotiated_connection.length == 0 ? "<empty>" :
+ Debug.toString(renegotiated_connection));
+ }
+
+}
--- a/jdk/src/share/classes/sun/security/ssl/OutputRecord.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/OutputRecord.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -343,6 +343,9 @@
* example, Netscape Commerce 1.0 servers. The V3 message is in the
* header and the bytes passed as parameter. This routine translates
* the V3 message into an equivalent V2 one.
+ *
+ * Note that the translation will strip off all hello extensions as
+ * SSL V2.0 does not support hello extension.
*/
private void V3toV2ClientHello(byte v3Msg []) throws SSLException {
int v3SessionIdLenOffset = 2 + 32; // version + nonce
@@ -361,12 +364,21 @@
int v3CipherSpecOffset = v3CipherSpecLenOffset + 2; // skip length
int v2CipherSpecLen = 0;
count = 11;
+ boolean containsRenegoInfoSCSV = false;
for (int i = 0; i < cipherSpecs; i++) {
byte byte1, byte2;
byte1 = v3Msg[v3CipherSpecOffset++];
byte2 = v3Msg[v3CipherSpecOffset++];
v2CipherSpecLen += V3toV2CipherSuite(byte1, byte2);
+ if (!containsRenegoInfoSCSV &&
+ byte1 == (byte)0x00 && byte2 == (byte)0xFF) {
+ containsRenegoInfoSCSV = true;
+ }
+ }
+
+ if (!containsRenegoInfoSCSV) {
+ v2CipherSpecLen += V3toV2CipherSuite((byte)0x00, (byte)0xFF);
}
/*
--- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -275,6 +275,12 @@
private CipherBox readCipher, writeCipher;
// NOTE: compression state would be saved here
+ /*
+ * security parameters for secure renegotiation.
+ */
+ private boolean secureRenegotiation;
+ private byte[] clientVerifyData;
+ private byte[] serverVerifyData;
/*
* READ ME * READ ME * READ ME * READ ME * READ ME * READ ME *
@@ -356,6 +362,11 @@
writeCipher = CipherBox.NULL;
writeMAC = MAC.NULL;
+ // default security parameters for secure renegotiation
+ secureRenegotiation = false;
+ clientVerifyData = new byte[0];
+ serverVerifyData = new byte[0];
+
enabledCipherSuites = CipherSuiteList.getDefault();
enabledProtocols = ProtocolList.getDefault();
@@ -434,11 +445,14 @@
}
if (roleIsServer) {
handshaker = new ServerHandshaker(this, sslContext,
- enabledProtocols, doClientAuth,
- connectionState == cs_RENEGOTIATE, protocolVersion);
+ enabledProtocols, doClientAuth,
+ protocolVersion, connectionState == cs_HANDSHAKE,
+ secureRenegotiation, clientVerifyData, serverVerifyData);
} else {
handshaker = new ClientHandshaker(this, sslContext,
- enabledProtocols, protocolVersion);
+ enabledProtocols,
+ protocolVersion, connectionState == cs_HANDSHAKE,
+ secureRenegotiation, clientVerifyData, serverVerifyData);
}
handshaker.enabledCipherSuites = enabledCipherSuites;
handshaker.setEnableSessionCreation(enableSessionCreation);
@@ -640,8 +654,16 @@
break;
case cs_DATA:
- if (!Handshaker.renegotiable) {
- throw new SSLHandshakeException("renegotiation is not allowed");
+ if (!secureRenegotiation && !Handshaker.allowUnsafeRenegotiation) {
+ throw new SSLHandshakeException(
+ "Insecure renegotiation is not allowed");
+ }
+
+ if (!secureRenegotiation) {
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println(
+ "Warning: Using insecure renegotiation");
+ }
}
// initialize the handshaker, move to cs_RENEGOTIATE
@@ -978,6 +1000,12 @@
connectionState = cs_DATA;
}
} else if (handshaker.isDone()) {
+ // reset the parameters for secure renegotiation.
+ secureRenegotiation =
+ handshaker.isSecureRenegotiation();
+ clientVerifyData = handshaker.getClientVerifyData();
+ serverVerifyData = handshaker.getServerVerifyData();
+
sess = handshaker.getSession();
if (!writer.hasOutboundData()) {
hsStatus = HandshakeStatus.FINISHED;
--- a/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -307,8 +307,9 @@
try {
ServerHandshaker handshaker = tmp.getServerHandshaker();
- for (Iterator t = enabledCipherSuites.iterator(); t.hasNext(); ) {
- CipherSuite suite = (CipherSuite)t.next();
+ for (Iterator<CipherSuite> t = enabledCipherSuites.iterator();
+ t.hasNext();) {
+ CipherSuite suite = t.next();
if (handshaker.trySetCipherSuite(suite)) {
checkedEnabled = true;
return;
--- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -275,9 +275,9 @@
* This is necessary so that processing of close_notify alerts
* from the peer are handled properly.
*/
- private Object handshakeLock;
- ReentrantLock writeLock;
- private Object readLock;
+ final private Object handshakeLock = new Object();
+ final ReentrantLock writeLock = new ReentrantLock();
+ final private Object readLock = new Object();
private InputRecord inrec;
@@ -289,6 +289,13 @@
// NOTE: compression state would be saved here
/*
+ * security parameters for secure renegotiation.
+ */
+ private boolean secureRenegotiation;
+ private byte[] clientVerifyData;
+ private byte[] serverVerifyData;
+
+ /*
* The authentication context holds all information used to establish
* who this end of the connection is (certificate chains, private keys,
* etc) and who is trusted (e.g. as CAs or websites).
@@ -528,11 +535,13 @@
writeCipher = CipherBox.NULL;
writeMAC = MAC.NULL;
+ // initial security parameters for secure renegotiation
+ secureRenegotiation = false;
+ clientVerifyData = new byte[0];
+ serverVerifyData = new byte[0];
+
enabledCipherSuites = CipherSuiteList.getDefault();
enabledProtocols = ProtocolList.getDefault();
- handshakeLock = new Object();
- writeLock = new ReentrantLock();
- readLock = new Object();
inrec = null;
// save the acc
@@ -914,6 +923,12 @@
connectionState = cs_DATA;
}
} else if (handshaker.isDone()) {
+ // reset the parameters for secure renegotiation.
+ secureRenegotiation =
+ handshaker.isSecureRenegotiation();
+ clientVerifyData = handshaker.getClientVerifyData();
+ serverVerifyData = handshaker.getServerVerifyData();
+
sess = handshaker.getSession();
handshaker = null;
connectionState = cs_DATA;
@@ -1091,11 +1106,14 @@
}
if (roleIsServer) {
handshaker = new ServerHandshaker(this, sslContext,
- enabledProtocols, doClientAuth,
- connectionState == cs_RENEGOTIATE, protocolVersion);
+ enabledProtocols, doClientAuth,
+ protocolVersion, connectionState == cs_HANDSHAKE,
+ secureRenegotiation, clientVerifyData, serverVerifyData);
} else {
handshaker = new ClientHandshaker(this, sslContext,
- enabledProtocols, protocolVersion);
+ enabledProtocols,
+ protocolVersion, connectionState == cs_HANDSHAKE,
+ secureRenegotiation, clientVerifyData, serverVerifyData);
}
handshaker.enabledCipherSuites = enabledCipherSuites;
handshaker.setEnableSessionCreation(enableSessionCreation);
@@ -1200,8 +1218,16 @@
break;
case cs_DATA:
- if (!Handshaker.renegotiable) {
- throw new SSLHandshakeException("renegotiation is not allowed");
+ if (!secureRenegotiation && !Handshaker.allowUnsafeRenegotiation) {
+ throw new SSLHandshakeException(
+ "Insecure renegotiation is not allowed");
+ }
+
+ if (!secureRenegotiation) {
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println(
+ "Warning: Using insecure renegotiation");
+ }
}
// initialize the handshaker, move to cs_RENEGOTIATE
--- a/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -69,9 +69,6 @@
// flag to check for clientCertificateVerify message
private boolean needClientVerify = false;
- // indicate a renegotiation handshaking
- private boolean isRenegotiation = false;
-
/*
* For exportable ciphersuites using non-exportable key sizes, we use
* ephemeral RSA keys. We could also do anonymous RSA in the same way
@@ -100,13 +97,15 @@
*/
ServerHandshaker(SSLSocketImpl socket, SSLContextImpl context,
ProtocolList enabledProtocols, byte clientAuth,
- boolean isRenegotiation, ProtocolVersion activeProtocolVersion) {
+ ProtocolVersion activeProtocolVersion, boolean isInitialHandshake,
+ boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
super(socket, context, enabledProtocols,
- (clientAuth != SSLEngineImpl.clauth_none), false);
+ (clientAuth != SSLEngineImpl.clauth_none), false,
+ activeProtocolVersion, isInitialHandshake, secureRenegotiation,
+ clientVerifyData, serverVerifyData);
doClientAuth = clientAuth;
- this.isRenegotiation = isRenegotiation;
- this.activeProtocolVersion = activeProtocolVersion;
}
/*
@@ -114,13 +113,15 @@
*/
ServerHandshaker(SSLEngineImpl engine, SSLContextImpl context,
ProtocolList enabledProtocols, byte clientAuth,
- boolean isRenegotiation, ProtocolVersion activeProtocolVersion) {
+ ProtocolVersion activeProtocolVersion,
+ boolean isInitialHandshake, boolean secureRenegotiation,
+ byte[] clientVerifyData, byte[] serverVerifyData) {
super(engine, context, enabledProtocols,
- (clientAuth != SSLEngineImpl.clauth_none), false);
+ (clientAuth != SSLEngineImpl.clauth_none), false,
+ activeProtocolVersion, isInitialHandshake, secureRenegotiation,
+ clientVerifyData, serverVerifyData);
doClientAuth = clientAuth;
- this.isRenegotiation = isRenegotiation;
- this.activeProtocolVersion = activeProtocolVersion;
}
/*
@@ -269,41 +270,122 @@
mesg.print(System.out);
}
- // if it is a renegotiation request and renegotiation is not allowed
- if (isRenegotiation && !renegotiable) {
- if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
- // response with a no_negotiation warning,
- warningSE(Alerts.alert_no_negotiation);
+ // Does the message include security renegotiation indication?
+ boolean renegotiationIndicated = false;
- // invalidate the handshake so that the caller can
- // dispose this object.
- invalidated = true;
+ // check the TLS_EMPTY_RENEGOTIATION_INFO_SCSV
+ CipherSuiteList cipherSuites = mesg.getCipherSuites();
+ if (cipherSuites.contains(CipherSuite.C_SCSV)) {
+ renegotiationIndicated = true;
+ if (isInitialHandshake) {
+ secureRenegotiation = true;
+ } else {
+ // abort the handshake with a fatal handshake_failure alert
+ if (secureRenegotiation) {
+ fatalSE(Alerts.alert_handshake_failure,
+ "The SCSV is present in a secure renegotiation");
+ } else {
+ fatalSE(Alerts.alert_handshake_failure,
+ "The SCSV is present in a insecure renegotiation");
+ }
+ }
+ }
- // If there is still unread block in the handshake
- // input stream, it would be truncated with the disposal
- // and the next handshake message will become incomplete.
- //
- // However, according to SSL/TLS specifications, no more
- // handshake message could immediately follow ClientHello
- // or HelloRequest. But in case of any improper messages,
- // we'd better check to ensure there is no remaining bytes
- // in the handshake input stream.
- if (input.available() > 0) {
- fatalSE(Alerts.alert_unexpected_message,
- "ClientHello followed by an unexpected " +
- "handshake message");
+ // check the "renegotiation_info" extension
+ RenegotiationInfoExtension clientHelloRI = (RenegotiationInfoExtension)
+ mesg.extensions.get(ExtensionType.EXT_RENEGOTIATION_INFO);
+ if (clientHelloRI != null) {
+ renegotiationIndicated = true;
+ if (isInitialHandshake) {
+ // verify the length of the "renegotiated_connection" field
+ if (!clientHelloRI.isEmpty()) {
+ // abort the handshake with a fatal handshake_failure alert
+ fatalSE(Alerts.alert_handshake_failure,
+ "The renegotiation_info field is not empty");
+ }
+ secureRenegotiation = true;
+ } else {
+ if (!secureRenegotiation) {
+ // unexpected RI extension for insecure renegotiation,
+ // abort the handshake with a fatal handshake_failure alert
+ fatalSE(Alerts.alert_handshake_failure,
+ "The renegotiation_info is present in a insecure " +
+ "renegotiation");
}
- return;
- } else {
- // For SSLv3, send the handshake_failure fatal error.
- // Note that SSLv3 does not define a no_negotiation alert
- // like TLSv1. However we cannot ignore the message
- // simply, otherwise the other side was waiting for a
- // response that would never come.
- fatalSE(Alerts.alert_handshake_failure,
- "renegotiation is not allowed");
+ // verify the client_verify_data value
+ if (!Arrays.equals(clientVerifyData,
+ clientHelloRI.getRenegotiatedConnection())) {
+ fatalSE(Alerts.alert_handshake_failure,
+ "Incorrect verify data in ClientHello " +
+ "renegotiation_info message");
+ }
+ }
+ } else if (!isInitialHandshake && secureRenegotiation) {
+ // if the connection's "secure_renegotiation" flag is set to TRUE
+ // and the "renegotiation_info" extension is not present, abort
+ // the handshake.
+ fatalSE(Alerts.alert_handshake_failure,
+ "Inconsistent secure renegotiation indication");
+ }
+
+ // if there is no security renegotiation indication or the previous
+ // handshake is insecure.
+ if (!renegotiationIndicated || !secureRenegotiation) {
+ if (isInitialHandshake) {
+ if (!allowLegacyHelloMessages) {
+ // abort the handshake with a fatal handshake_failure alert
+ fatalSE(Alerts.alert_handshake_failure,
+ "Failed to negotiate the use of secure renegotiation");
+ }
+
+ // continue with legacy ClientHello
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println("Warning: No renegotiation " +
+ "indication in ClientHello, allow legacy ClientHello");
+ }
+ } else if (!allowUnsafeRenegotiation) {
+ // abort the handshake
+ if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
+ // response with a no_renegotiation warning,
+ warningSE(Alerts.alert_no_renegotiation);
+
+ // invalidate the handshake so that the caller can
+ // dispose this object.
+ invalidated = true;
+
+ // If there is still unread block in the handshake
+ // input stream, it would be truncated with the disposal
+ // and the next handshake message will become incomplete.
+ //
+ // However, according to SSL/TLS specifications, no more
+ // handshake message could immediately follow ClientHello
+ // or HelloRequest. But in case of any improper messages,
+ // we'd better check to ensure there is no remaining bytes
+ // in the handshake input stream.
+ if (input.available() > 0) {
+ fatalSE(Alerts.alert_unexpected_message,
+ "ClientHello followed by an unexpected " +
+ "handshake message");
+ }
+
+ return;
+ } else {
+ // For SSLv3, send the handshake_failure fatal error.
+ // Note that SSLv3 does not define a no_renegotiation
+ // alert like TLSv1. However we cannot ignore the message
+ // simply, otherwise the other side was waiting for a
+ // response that would never come.
+ fatalSE(Alerts.alert_handshake_failure,
+ "Renegotiation is not allowed");
+ }
+ } else { // !isInitialHandshake && allowUnsafeRenegotiation
+ // continue with unsafe renegotiation.
+ if (debug != null && Debug.isOn("handshake")) {
+ System.out.println(
+ "Warning: continue with insecure renegotiation");
+ }
}
}
@@ -454,7 +536,7 @@
// verify that the ciphersuite from the cached session
// is in the list of client requested ciphersuites and
// we have it enabled
- if ((isEnabled(suite) == false) ||
+ if ((isNegotiable(suite) == false) ||
(mesg.getCipherSuites().contains(suite) == false)) {
resumingSession = false;
} else {
@@ -484,8 +566,8 @@
if (!enableNewSession) {
throw new SSLException("Client did not resume a session");
}
- supportedCurves = (SupportedEllipticCurvesExtension)mesg.extensions.get
- (ExtensionType.EXT_ELLIPTIC_CURVES);
+ supportedCurves = (SupportedEllipticCurvesExtension)
+ mesg.extensions.get(ExtensionType.EXT_ELLIPTIC_CURVES);
chooseCipherSuite(mesg);
session = new SSLSessionImpl(protocolVersion, cipherSuite,
sslContext.getSecureRandom(),
@@ -498,6 +580,21 @@
m1.sessionId = session.getSessionId();
m1.compression_method = session.getCompression();
+ if (secureRenegotiation) {
+ // For ServerHellos that are initial handshakes, then the
+ // "renegotiated_connection" field in "renegotiation_info"
+ // extension is of zero length.
+ //
+ // For ServerHellos that are renegotiating, this field contains
+ // the concatenation of client_verify_data and server_verify_data.
+ //
+ // Note that for initial handshakes, both the clientVerifyData
+ // variable and serverVerifyData variable are of zero length.
+ HelloExtension serverHelloRI = new RenegotiationInfoExtension(
+ clientVerifyData, serverVerifyData);
+ m1.extensions.add(serverHelloRI);
+ }
+
if (debug != null && Debug.isOn("handshake")) {
m1.print(System.out);
System.out.println("Cipher suite: " + session.getSuite());
@@ -686,11 +783,13 @@
*/
private void chooseCipherSuite(ClientHello mesg) throws IOException {
for (CipherSuite suite : mesg.getCipherSuites().collection()) {
- if (isEnabled(suite) == false) {
+ if (isNegotiable(suite) == false) {
continue;
}
+
if (doClientAuth == SSLEngineImpl.clauth_required) {
- if ((suite.keyExchange == K_DH_ANON) || (suite.keyExchange == K_ECDH_ANON)) {
+ if ((suite.keyExchange == K_DH_ANON) ||
+ (suite.keyExchange == K_ECDH_ANON)) {
continue;
}
}
@@ -728,7 +827,7 @@
return true;
}
- if (suite.isAvailable() == false) {
+ if (suite.isNegotiable() == false) {
return false;
}
@@ -1136,6 +1235,13 @@
}
/*
+ * save client verify data for secure renegotiation
+ */
+ if (secureRenegotiation) {
+ clientVerifyData = mesg.getVerifyData();
+ }
+
+ /*
* OK, it verified. If we're doing the full handshake, add that
* "Finished" message to the hash of handshake messages, then send
* the change_cipher_spec and Finished message.
@@ -1185,6 +1291,13 @@
sendChangeCipherSpec(mesg, finishedTag);
/*
+ * save server verify data for secure renegotiation
+ */
+ if (secureRenegotiation) {
+ serverVerifyData = mesg.getVerifyData();
+ }
+
+ /*
* Update state machine so client MUST send 'finished' next
* The update should only take place if it is not in the fast
* handshake mode since the server has to wait for a finished
--- a/jdk/src/share/classes/sun/tools/jar/CommandLine.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/tools/jar/CommandLine.java Tue Nov 02 22:15:35 2010 -0700
@@ -36,7 +36,7 @@
/**
* Various utility methods for processing Java tool command line arguments.
*
- * <p><b>This is NOT part of any API suppored by Sun Microsystems. If
+ * <p><b>This is NOT part of any API supported by Oracle. If
* you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
--- a/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java Tue Nov 02 22:15:35 2010 -0700
@@ -84,7 +84,7 @@
* static. This could be non-static later, so that they could have
* different sets for each locale sensitive services.
*/
- private static List<Locale> availableJRELocales = null;
+ private static volatile List<Locale> availableJRELocales = null;
/**
* Provider locales for this locale sensitive service.
@@ -252,12 +252,16 @@
*
* @return list of the available JRE locales
*/
- private synchronized List<Locale> getJRELocales() {
+ private List<Locale> getJRELocales() {
if (availableJRELocales == null) {
- Locale[] allLocales = LocaleData.getAvailableLocales();
- availableJRELocales = new ArrayList<Locale>(allLocales.length);
- for (Locale locale : allLocales) {
- availableJRELocales.add(getLookupLocale(locale));
+ synchronized (LocaleServiceProviderPool.class) {
+ if (availableJRELocales == null) {
+ Locale[] allLocales = LocaleData.getAvailableLocales();
+ availableJRELocales = new ArrayList<Locale>(allLocales.length);
+ for (Locale locale : allLocales) {
+ availableJRELocales.add(getLookupLocale(locale));
+ }
+ }
}
}
return availableJRELocales;
--- a/jdk/src/share/native/common/check_code.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/common/check_code.c Tue Nov 02 22:15:35 2010 -0700
@@ -2940,7 +2940,7 @@
if (verify_verbose) {
jio_fprintf(stdout, " [");
for (i = handler_info_length; --i >= 0; handler_info++)
- if (handler_info->start <= inumber && handler_info->end > inumber)
+ if (handler_info->start <= (int)inumber && handler_info->end > (int)inumber)
jio_fprintf(stdout, "%d* ", handler_info->handler);
for (i = 0; i < successors_count; i++)
jio_fprintf(stdout, "%d ", successors[i]);
@@ -3011,7 +3011,8 @@
instruction_data_type *this_idata = &idata[to_inumber];
register_info_type old_reg_info;
stack_info_type old_stack_info;
- flag_type old_and_flags, old_or_flags;
+ flag_type old_and_flags = 0;
+ flag_type old_or_flags = 0;
#endif
#ifdef DEBUG
--- a/jdk/src/share/native/common/jdk_util.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/common/jdk_util.c Tue Nov 02 22:15:35 2010 -0700
@@ -76,7 +76,7 @@
}
- memset(info, 0, sizeof(info_size));
+ memset(info, 0, info_size);
info->jdk_version = ((jdk_major_version & 0xFF) << 24) |
((jdk_minor_version & 0xFF) << 16) |
((jdk_micro_version & 0xFF) << 8) |
--- a/jdk/src/share/native/common/jni_util.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/common/jni_util.c Tue Nov 02 22:15:35 2010 -0700
@@ -433,7 +433,7 @@
for (i=0; i<len; i++) {
jchar unicode = str[i];
if (unicode <= 0x00ff)
- result[i] = unicode;
+ result[i] = (char)unicode;
else
result[i] = '?';
}
@@ -498,7 +498,7 @@
for (i=0; i<len; i++) {
jchar unicode = str[i];
if (unicode <= 0x007f )
- result[i] = unicode;
+ result[i] = (char)unicode;
else
result[i] = '?';
}
@@ -569,7 +569,7 @@
for (i=0; i<len; i++) {
jchar c = str[i];
if (c < 256)
- result[i] = c;
+ result[i] = (char)c;
else switch(c) {
case 0x20AC: result[i] = (char)0x80; break;
case 0x201A: result[i] = (char)0x82; break;
--- a/jdk/src/share/native/java/lang/Class.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/lang/Class.c Tue Nov 02 22:15:35 2010 -0700
@@ -102,8 +102,8 @@
char *clname;
jclass cls = 0;
char buf[128];
- int len;
- int unicode_len;
+ jsize len;
+ jsize unicode_len;
if (classname == NULL) {
JNU_ThrowNullPointerException(env, 0);
@@ -112,7 +112,7 @@
len = (*env)->GetStringUTFLength(env, classname);
unicode_len = (*env)->GetStringLength(env, classname);
- if (len >= sizeof(buf)) {
+ if (len >= (jsize)sizeof(buf)) {
clname = malloc(len + 1);
if (clname == NULL) {
JNU_ThrowOutOfMemoryError(env, NULL);
--- a/jdk/src/share/native/java/lang/ClassLoader.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/lang/ClassLoader.c Tue Nov 02 22:15:35 2010 -0700
@@ -331,7 +331,7 @@
if (handle) {
const char *onLoadSymbols[] = JNI_ONLOAD_SYMBOLS;
JNI_OnLoad_t JNI_OnLoad;
- int i;
+ unsigned int i;
for (i = 0; i < sizeof(onLoadSymbols) / sizeof(char *); i++) {
JNI_OnLoad = (JNI_OnLoad_t)
JVM_FindLibraryEntry(handle, onLoadSymbols[i]);
@@ -369,7 +369,7 @@
cause = (*env)->ExceptionOccurred(env);
if (cause) {
(*env)->ExceptionClear(env);
- (*env)->SetLongField(env, this, handleID, (jlong)NULL);
+ (*env)->SetLongField(env, this, handleID, (jlong)0);
(*env)->Throw(env, cause);
}
goto done;
@@ -392,7 +392,7 @@
const char *onUnloadSymbols[] = JNI_ONUNLOAD_SYMBOLS;
void *handle;
JNI_OnUnload_t JNI_OnUnload;
- int i;
+ unsigned int i;
if (!initIDs(env))
return;
--- a/jdk/src/share/native/java/lang/System.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/lang/System.c Tue Nov 02 22:15:35 2010 -0700
@@ -109,7 +109,7 @@
#error "ERROR: No override of JAVA_SPECIFICATION_VENDOR is allowed"
#else
#define JAVA_SPECIFICATION_VENDOR "Oracle Corporation"
-#endif
+#endif
static int fmtdefault; // boolean value
jobject fillI18nProps(JNIEnv *env, jobject props, char *baseKey,
--- a/jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Tue Nov 02 22:15:35 2010 -0700
@@ -46,11 +46,13 @@
#define __LOp(x) *(1+(int*)x)
#endif
+#ifndef __P
#ifdef __STDC__
#define __P(p) p
#else
#define __P(p) ()
#endif
+#endif
/*
* ANSI/POSIX
--- a/jdk/src/share/native/java/lang/reflect/Proxy.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/lang/reflect/Proxy.c Tue Nov 02 22:15:35 2010 -0700
@@ -82,9 +82,9 @@
goto free_body;
if (name != NULL) {
- int len = (*env)->GetStringUTFLength(env, name);
- int unicode_len = (*env)->GetStringLength(env, name);
- if (len >= sizeof(buf)) {
+ jsize len = (*env)->GetStringUTFLength(env, name);
+ jsize unicode_len = (*env)->GetStringLength(env, name);
+ if (len >= (jsize)sizeof(buf)) {
utfName = malloc(len + 1);
if (utfName == NULL) {
JNU_ThrowOutOfMemoryError(env, NULL);
--- a/jdk/src/share/native/java/nio/Bits.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/nio/Bits.c Tue Nov 02 22:15:35 2010 -0700
@@ -72,7 +72,7 @@
jlong srcPos, jlong dstAddr, jlong length)
{
jbyte *bytes;
- size_t i, size;
+ size_t size;
jshort *srcShort, *dstShort, *endShort;
jshort tmpShort;
@@ -83,7 +83,7 @@
if (length > MBYTE)
size = MBYTE;
else
- size = length;
+ size = (size_t)length;
GETCRITICAL(bytes, env, src);
@@ -107,7 +107,7 @@
jobject dst, jlong dstPos, jlong length)
{
jbyte *bytes;
- size_t i, size;
+ size_t size;
jshort *srcShort, *dstShort, *endShort;
jshort tmpShort;
@@ -118,7 +118,7 @@
if (length > MBYTE)
size = MBYTE;
else
- size = length;
+ size = (size_t)length;
GETCRITICAL(bytes, env, dst);
@@ -142,7 +142,7 @@
jlong srcPos, jlong dstAddr, jlong length)
{
jbyte *bytes;
- size_t i, size;
+ size_t size;
jint *srcInt, *dstInt, *endInt;
jint tmpInt;
@@ -153,7 +153,7 @@
if (length > MBYTE)
size = MBYTE;
else
- size = length;
+ size = (size_t)length;
GETCRITICAL(bytes, env, src);
@@ -177,7 +177,7 @@
jobject dst, jlong dstPos, jlong length)
{
jbyte *bytes;
- size_t i, size;
+ size_t size;
jint *srcInt, *dstInt, *endInt;
jint tmpInt;
@@ -188,7 +188,7 @@
if (length > MBYTE)
size = MBYTE;
else
- size = length;
+ size = (size_t)length;
GETCRITICAL(bytes, env, dst);
@@ -212,7 +212,7 @@
jlong srcPos, jlong dstAddr, jlong length)
{
jbyte *bytes;
- size_t i, size;
+ size_t size;
jlong *srcLong, *dstLong, *endLong;
jlong tmpLong;
@@ -223,7 +223,7 @@
if (length > MBYTE)
size = MBYTE;
else
- size = length;
+ size = (size_t)length;
GETCRITICAL(bytes, env, src);
@@ -247,7 +247,7 @@
jobject dst, jlong dstPos, jlong length)
{
jbyte *bytes;
- size_t i, size;
+ size_t size;
jlong *srcLong, *dstLong, *endLong;
jlong tmpLong;
@@ -258,7 +258,7 @@
if (length > MBYTE)
size = MBYTE;
else
- size = length;
+ size = (size_t)length;
GETCRITICAL(bytes, env, dst);
--- a/jdk/src/share/native/java/util/zip/Inflater.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/java/util/zip/Inflater.c Tue Nov 02 22:15:35 2010 -0700
@@ -38,6 +38,8 @@
#include "zlib.h"
#include "java_util_zip_Inflater.h"
+#define MIN2(x, y) ((x) < (y) ? (x) : (y))
+
#define ThrowDataFormatException(env, msg) \
JNU_ThrowByName(env, "java/util/zip/DataFormatException", msg)
@@ -116,13 +118,27 @@
jbyte *in_buf;
jbyte *out_buf;
int ret;
+ /*
+ * Avoid excess copying.
+ * zlib stream usually has a few bytes of overhead for header info
+ * (depends on the underlying data)
+ *
+ * (a) 5 bytes per 16KB
+ * (b) 6 bytes for entire stream
+ * (c) 4 bytes for gzip header
+ * (d) 2 bytes for crc
+ *
+ * Use 20 bytes as the "safe cutoff" number.
+ */
+ jint in_len = MIN2(this_len, len + 20);
+ jint consumed;
- in_buf = (jbyte *) malloc(this_len);
+ in_buf = (jbyte *) malloc(in_len);
if (in_buf == 0) {
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+ (*env)->GetByteArrayRegion(env, this_buf, this_off, in_len, in_buf);
out_buf = (jbyte *) malloc(len);
if (out_buf == 0) {
@@ -133,7 +149,7 @@
strm->next_in = (Bytef *) in_buf;
strm->next_out = (Bytef *) out_buf;
- strm->avail_in = this_len;
+ strm->avail_in = in_len;
strm->avail_out = len;
ret = inflate(strm, Z_PARTIAL_FLUSH);
@@ -148,16 +164,16 @@
(*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
/* fall through */
case Z_OK:
- this_off += this_len - strm->avail_in;
- (*env)->SetIntField(env, this, offID, this_off);
- (*env)->SetIntField(env, this, lenID, strm->avail_in);
+ consumed = in_len - strm->avail_in;
+ (*env)->SetIntField(env, this, offID, this_off + consumed);
+ (*env)->SetIntField(env, this, lenID, this_len - consumed);
return len - strm->avail_out;
case Z_NEED_DICT:
(*env)->SetBooleanField(env, this, needDictID, JNI_TRUE);
/* Might have consumed some input here! */
- this_off += this_len - strm->avail_in;
- (*env)->SetIntField(env, this, offID, this_off);
- (*env)->SetIntField(env, this, lenID, strm->avail_in);
+ consumed = in_len - strm->avail_in;
+ (*env)->SetIntField(env, this, offID, this_off + consumed);
+ (*env)->SetIntField(env, this, lenID, this_len - consumed);
return 0;
case Z_BUF_ERROR:
return 0;
--- a/jdk/src/share/native/sun/awt/image/BufImgSurfaceData.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/awt/image/BufImgSurfaceData.c Tue Nov 02 22:15:35 2010 -0700
@@ -48,9 +48,12 @@
static jfieldID rgbID;
static jfieldID mapSizeID;
-static jfieldID CMpDataID;
+static jfieldID colorDataID;
+static jfieldID pDataID;
static jfieldID allGrayID;
+static jclass clsICMCD;
+static jmethodID initICMCDmID;
/*
* Class: sun_awt_image_BufImgSurfaceData
* Method: initIDs
@@ -58,18 +61,23 @@
*/
JNIEXPORT void JNICALL
Java_sun_awt_image_BufImgSurfaceData_initIDs
- (JNIEnv *env, jclass bisd, jclass icm)
+(JNIEnv *env, jclass bisd, jclass icm, jclass cd)
{
if (sizeof(BufImgRIPrivate) > SD_RASINFO_PRIVATE_SIZE) {
JNU_ThrowInternalError(env, "Private RasInfo structure too large!");
return;
}
+ clsICMCD = (*env)->NewWeakGlobalRef(env, cd);
+ initICMCDmID = (*env)->GetMethodID(env, cd, "<init>", "(J)V");
+ pDataID = (*env)->GetFieldID(env, cd, "pData", "J");
+
rgbID = (*env)->GetFieldID(env, icm, "rgb", "[I");
allGrayID = (*env)->GetFieldID(env, icm, "allgrayopaque", "Z");
mapSizeID = (*env)->GetFieldID(env, icm, "map_size", "I");
- CMpDataID = (*env)->GetFieldID(env, icm, "pData", "J");
- if (allGrayID == 0 || rgbID == 0 || mapSizeID == 0 || CMpDataID == 0) {
+ colorDataID = (*env)->GetFieldID(env, icm, "colorData",
+ "Lsun/awt/image/BufImgSurfaceData$ICMColorData;");
+ if (allGrayID == 0 || rgbID == 0 || mapSizeID == 0 || pDataID == 0|| colorDataID == 0 || initICMCDmID == 0) {
JNU_ThrowInternalError(env, "Could not get field IDs");
}
}
@@ -81,18 +89,9 @@
*/
JNIEXPORT void JNICALL
Java_sun_awt_image_BufImgSurfaceData_freeNativeICMData
- (JNIEnv *env, jclass sd, jobject icm)
+ (JNIEnv *env, jclass sd, jlong pData)
{
- jlong pData;
- ColorData *cdata;
-
- if (JNU_IsNull(env, icm)) {
- JNU_ThrowNullPointerException(env, "IndexColorModel cannot be null");
- return;
- }
-
- pData = (*env)->GetLongField (env, icm, CMpDataID);
- cdata = (ColorData *)pData;
+ ColorData *cdata = (ColorData*)jlong_to_ptr(pData);
freeICMColorData(cdata);
}
@@ -263,32 +262,48 @@
static ColorData *BufImg_SetupICM(JNIEnv *env,
BufImgSDOps *bisdo)
{
- ColorData *cData;
+ ColorData *cData = NULL;
+ jobject colorData;
if (JNU_IsNull(env, bisdo->icm)) {
return (ColorData *) NULL;
}
- cData = (ColorData *) JNU_GetLongFieldAsPtr(env, bisdo->icm, CMpDataID);
+ colorData = (*env)->GetObjectField(env, bisdo->icm, colorDataID);
- if (cData == NULL) {
- cData = (ColorData*)calloc(1, sizeof(ColorData));
+ if (JNU_IsNull(env, colorData)) {
+ if (JNU_IsNull(env, clsICMCD)) {
+ // we are unable to create a wrapper object
+ return (ColorData*)NULL;
+ }
+ } else {
+ cData = (ColorData*)JNU_GetLongFieldAsPtr(env, colorData, pDataID);
+ }
+
+ if (cData != NULL) {
+ return cData;
+ }
+
+ cData = (ColorData*)calloc(1, sizeof(ColorData));
- if (cData != NULL) {
- jboolean allGray
- = (*env)->GetBooleanField(env, bisdo->icm, allGrayID);
- int *pRgb = (int *)
- ((*env)->GetPrimitiveArrayCritical(env, bisdo->lutarray, NULL));
- cData->img_clr_tbl = initCubemap(pRgb, bisdo->lutsize, 32);
- if (allGray == JNI_TRUE) {
- initInverseGrayLut(pRgb, bisdo->lutsize, cData);
- }
- (*env)->ReleasePrimitiveArrayCritical(env, bisdo->lutarray, pRgb,
- JNI_ABORT);
+ if (cData != NULL) {
+ jboolean allGray
+ = (*env)->GetBooleanField(env, bisdo->icm, allGrayID);
+ int *pRgb = (int *)
+ ((*env)->GetPrimitiveArrayCritical(env, bisdo->lutarray, NULL));
+ cData->img_clr_tbl = initCubemap(pRgb, bisdo->lutsize, 32);
+ if (allGray == JNI_TRUE) {
+ initInverseGrayLut(pRgb, bisdo->lutsize, cData);
+ }
+ (*env)->ReleasePrimitiveArrayCritical(env, bisdo->lutarray, pRgb,
+ JNI_ABORT);
- initDitherTables(cData);
+ initDitherTables(cData);
- JNU_SetLongFieldFromPtr(env, bisdo->icm, CMpDataID, cData);
+ if (JNU_IsNull(env, colorData)) {
+ jlong pData = ptr_to_jlong(cData);
+ colorData = (*env)->NewObjectA(env, clsICMCD, initICMCDmID, (jvalue *)&pData);
+ (*env)->SetObjectField(env, bisdo->icm, colorDataID, colorData);
}
}
--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c Tue Nov 02 22:15:35 2010 -0700
@@ -2614,7 +2614,8 @@
JSAMPROW scanLinePtr;
int i, j;
int pixelStride;
- unsigned char *in, *out, *pixelLimit;
+ unsigned char *in, *out, *pixelLimit, *scanLineLimit;
+ unsigned int scanLineSize, pixelBufferSize;
int targetLine;
pixelBufferPtr pb;
sun_jpeg_error_ptr jerr;
@@ -2650,19 +2651,25 @@
}
+ scanLineSize = destWidth * numBands;
if ((inCs < 0) || (inCs > JCS_YCCK) ||
(outCs < 0) || (outCs > JCS_YCCK) ||
(numBands < 1) || (numBands > MAX_BANDS) ||
(srcWidth < 0) ||
(destWidth < 0) || (destWidth > srcWidth) ||
(destHeight < 0) ||
- (stepX < 0) || (stepY < 0))
+ (stepX < 0) || (stepY < 0) ||
+ ((scanLineSize / numBands) < destWidth)) /* destWidth causes an integer overflow */
{
JNU_ThrowByName(env, "javax/imageio/IIOException",
"Invalid argument to native writeImage");
return JNI_FALSE;
}
+ if (stepX > srcWidth) {
+ stepX = srcWidth;
+ }
+
bandSize = (*env)->GetIntArrayElements(env, bandSizes, NULL);
for (i = 0; i < numBands; i++) {
@@ -2710,7 +2717,7 @@
}
// Allocate a 1-scanline buffer
- scanLinePtr = (JSAMPROW)malloc(destWidth*numBands);
+ scanLinePtr = (JSAMPROW)malloc(scanLineSize);
if (scanLinePtr == NULL) {
RELEASE_ARRAYS(env, data, (const JOCTET *)(dest->next_output_byte));
JNU_ThrowByName( env,
@@ -2718,6 +2725,7 @@
"Writing JPEG Stream");
return data->abortFlag;
}
+ scanLineLimit = scanLinePtr + scanLineSize;
/* Establish the setjmp return context for sun_jpeg_error_exit to use. */
jerr = (sun_jpeg_error_ptr) cinfo->err;
@@ -2866,6 +2874,8 @@
}
targetLine = 0;
+ pixelBufferSize = srcWidth * numBands;
+ pixelStride = numBands * stepX;
// for each line in destHeight
while ((data->abortFlag == JNI_FALSE)
@@ -2886,9 +2896,9 @@
in = data->pixelBuf.buf.bp;
out = scanLinePtr;
- pixelLimit = in + srcWidth*numBands;
- pixelStride = numBands*stepX;
- for (; in < pixelLimit; in += pixelStride) {
+ pixelLimit = in + ((pixelBufferSize > data->pixelBuf.byteBufferLength) ?
+ data->pixelBuf.byteBufferLength : pixelBufferSize);
+ for (; (in < pixelLimit) && (out < scanLineLimit); in += pixelStride) {
for (i = 0; i < numBands; i++) {
if (scale !=NULL && scale[i] != NULL) {
*out++ = scale[i][*(in+i)];
--- a/jdk/src/share/native/sun/awt/libpng/pngrtran.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/awt/libpng/pngrtran.c Tue Nov 02 22:15:35 2010 -0700
@@ -3993,7 +3993,7 @@
#ifdef PNG_FLOATING_POINT_SUPPORTED
#if defined(PNG_READ_GAMMA_SUPPORTED)
-const static int png_gamma_shift[] =
+static PNG_CONST int png_gamma_shift[] =
{0x10, 0x21, 0x42, 0x84, 0x110, 0x248, 0x550, 0xff0, 0x00};
/* We build the 8- or 16-bit gamma tables here. Note that for 16-bit
--- a/jdk/src/share/native/sun/awt/libpng/pngrutil.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/awt/libpng/pngrutil.c Tue Nov 02 22:15:35 2010 -0700
@@ -209,7 +209,7 @@
png_charp chunkdata, png_size_t chunklength,
png_size_t prefix_size, png_size_t *newlength)
{
- const static char msg[] = "Error decoding compressed text";
+ static PNG_CONST char msg[] = "Error decoding compressed text";
png_charp text;
png_size_t text_size;
--- a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Tue Nov 02 22:15:35 2010 -0700
@@ -51,7 +51,7 @@
#define NSEXT_LOOP 0x01 // Loop Count field code
// convert libungif samples to our ones
-#define MAKE_QUAD_GIF(c,a) MAKE_QUAD((c).Red, (c).Green, (c).Blue, (a))
+#define MAKE_QUAD_GIF(c,a) MAKE_QUAD((c).Red, (c).Green, (c).Blue, (unsigned)(a))
/* stdio FILE* and memory input functions for libungif */
int
@@ -165,7 +165,7 @@
{
int flag = pExtension[0];
- frameDelay = (pExtension[2] << 8) | pExtension[1];
+ frameDelay = (((int)pExtension[2]) << 8) | pExtension[1];
if (frameDelay < 10)
frameDelay = 10;
if (flag & GIF_TRANSPARENT) {
@@ -191,7 +191,7 @@
iSubCode = pExtension[0] & 0x07;
if (iSubCode == NSEXT_LOOP) {
splash->loopCount =
- (pExtension[1] | (pExtension[2] << 8)) - 1;
+ (pExtension[1] | (((int)pExtension[2]) << 8)) - 1;
}
}
break;
--- a/jdk/src/share/native/sun/management/Flag.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/management/Flag.c Tue Nov 02 22:15:35 2010 -0700
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <jni.h>
#include "management.h"
#include "sun_management_Flag.h"
@@ -80,8 +81,6 @@
Java_sun_management_Flag_getFlags
(JNIEnv *env, jclass cls, jobjectArray names, jobjectArray flags, jint count)
{
- char errmsg[128];
-
jint num_flags, i, index;
jmmVMGlobal* globals;
size_t gsize;
--- a/jdk/src/share/native/sun/misc/VM.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/misc/VM.c Tue Nov 02 22:15:35 2010 -0700
@@ -23,6 +23,8 @@
* questions.
*/
+#include <string.h>
+
#include "jni.h"
#include "jni_util.h"
#include "jlong.h"
@@ -113,7 +115,6 @@
JNIEXPORT void JNICALL
Java_sun_misc_VM_initialize(JNIEnv *env, jclass cls) {
- char errmsg[128];
GetJvmVersionInfo_fp func_p;
if (!JDK_InitJvmHandle()) {
@@ -123,8 +124,6 @@
func_p = (GetJvmVersionInfo_fp) JDK_FindJvmEntry("JVM_GetVersionInfo");
if (func_p != NULL) {
- char errmsg[100];
- jfieldID fid;
jvm_version_info info;
memset(&info, 0, sizeof(info));
--- a/jdk/src/share/native/sun/misc/VMSupport.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/misc/VMSupport.c Tue Nov 02 22:15:35 2010 -0700
@@ -38,8 +38,6 @@
JNIEXPORT jobject JNICALL
Java_sun_misc_VMSupport_initAgentProperties(JNIEnv *env, jclass cls, jobject props)
{
- char errmsg[128];
-
if (InitAgentProperties_fp == NULL) {
if (!JDK_InitJvmHandle()) {
JNU_ThrowInternalError(env,
--- a/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -114,8 +114,7 @@
{
CK_SESSION_HANDLE ckSessionHandle;
CK_RV rv;
- CK_BYTE IBUF[MAX_STACK_BUFFER_LEN];
- CK_BYTE OBUF[MAX_STACK_BUFFER_LEN];
+
CK_BYTE_PTR inBufP;
CK_BYTE_PTR outBufP;
CK_ULONG ckEncryptedPartLen;
@@ -125,50 +124,27 @@
ckSessionHandle = jLongToCKULong(jSessionHandle);
- if (jInLen > MAX_STACK_BUFFER_LEN) {
- inBufP = (CK_BYTE_PTR)malloc((size_t)jInLen);
- if (inBufP == NULL) {
- JNU_ThrowOutOfMemoryError(env, 0);
+ inBufP = (*env)->GetPrimitiveArrayCritical(env, jIn, NULL);
+ if (inBufP == NULL) { return 0; }
+
+ outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL);
+ if (outBufP == NULL) {
+ // Make sure to release inBufP
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
return 0;
- }
- } else {
- inBufP = IBUF;
- }
- (*env)->GetByteArrayRegion(env, jIn, jInOfs, jInLen, (jbyte *)inBufP);
- if ((*env)->ExceptionCheck(env)) {
- if (inBufP != IBUF) { free(inBufP); }
- return 0;
}
ckEncryptedPartLen = jOutLen;
- if (jOutLen > MAX_STACK_BUFFER_LEN) {
- outBufP = (CK_BYTE_PTR)malloc((size_t)jOutLen);
- if (outBufP == NULL) {
- if (inBufP != IBUF) {
- free(inBufP);
- }
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- } else {
- outBufP = OBUF;
- }
- rv = (*ckpFunctions->C_Encrypt)(ckSessionHandle, inBufP, jInLen,
- outBufP, &ckEncryptedPartLen);
+ rv = (*ckpFunctions->C_Encrypt)(ckSessionHandle,
+ (CK_BYTE_PTR)(inBufP + jInOfs), jInLen,
+ (CK_BYTE_PTR)(outBufP + jOutOfs),
+ &ckEncryptedPartLen);
- if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) {
- if (ckEncryptedPartLen > 0) {
- (*env)->SetByteArrayRegion(env, jOut, jOutOfs, ckEncryptedPartLen,
- (jbyte *)outBufP);
- }
- }
- if (inBufP != IBUF) {
- free(inBufP);
- }
- if (outBufP != OBUF) {
- free(outBufP);
- }
+ (*env)->ReleasePrimitiveArrayCritical(env, jOut, outBufP, JNI_ABORT);
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
+
+ ckAssertReturnValueOK(env, rv);
return ckEncryptedPartLen;
}
#endif
@@ -193,8 +169,7 @@
{
CK_SESSION_HANDLE ckSessionHandle;
CK_RV rv;
- CK_BYTE IBUF[MAX_STACK_BUFFER_LEN];
- CK_BYTE OBUF[MAX_STACK_BUFFER_LEN];
+
CK_BYTE_PTR inBufP;
CK_BYTE_PTR outBufP;
CK_ULONG ckEncryptedPartLen;
@@ -205,64 +180,45 @@
ckSessionHandle = jLongToCKULong(jSessionHandle);
if (directIn != 0) {
- inBufP = (CK_BYTE_PTR)(directIn + jInOfs);
+ inBufP = (CK_BYTE_PTR) directIn;
} else {
- if (jInLen > MAX_STACK_BUFFER_LEN) {
- inBufP = (CK_BYTE_PTR)malloc((size_t)jInLen);
- if (inBufP == NULL) {
- JNU_ThrowOutOfMemoryError(env, 0);
+ inBufP = (*env)->GetPrimitiveArrayCritical(env, jIn, NULL);
+ if (inBufP == NULL) { return 0; }
+ }
+
+ if (directOut != 0) {
+ outBufP = (CK_BYTE_PTR) directOut;
+ } else {
+ outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL);
+ if (outBufP == NULL) {
+ // Make sure to release inBufP
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
return 0;
- }
- } else {
- inBufP = IBUF;
- }
- (*env)->GetByteArrayRegion(env, jIn, jInOfs, jInLen, (jbyte *)inBufP);
- if ((*env)->ExceptionCheck(env)) {
- if (directIn == 0 && inBufP != IBUF) { free(inBufP); }
- return 0;
}
}
ckEncryptedPartLen = jOutLen;
- if (directOut != 0) {
- outBufP = (CK_BYTE_PTR)(directOut + jOutOfs);
- } else {
- if (jOutLen > MAX_STACK_BUFFER_LEN) {
- outBufP = (CK_BYTE_PTR)malloc((size_t)jOutLen);
- if (outBufP == NULL) {
- if (directIn == 0 && inBufP != IBUF) {
- free(inBufP);
- }
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- } else {
- outBufP = OBUF;
- }
- }
//printf("EU: inBufP=%i, jInOfs=%i, jInLen=%i, outBufP=%i\n",
// inBufP, jInOfs, jInLen, outBufP);
rv = (*ckpFunctions->C_EncryptUpdate)(ckSessionHandle,
- inBufP, jInLen,
- outBufP, &ckEncryptedPartLen);
+ (CK_BYTE_PTR)(inBufP + jInOfs), jInLen,
+ (CK_BYTE_PTR)(outBufP + jOutOfs),
+ &ckEncryptedPartLen);
//printf("EU: ckEncryptedPartLen=%i\n", ckEncryptedPartLen);
- if (directIn == 0 && inBufP != IBUF) {
- free(inBufP);
+ if (directIn == 0) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
}
- if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) {
- if (directOut == 0 && ckEncryptedPartLen > 0) {
- (*env)->SetByteArrayRegion(env, jOut, jOutOfs, ckEncryptedPartLen,
- (jbyte *)outBufP);
- }
+ if (directOut == 0) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jOut, outBufP, JNI_ABORT);
}
- if (directOut == 0 && outBufP != OBUF) {
- free(outBufP);
- }
+
+ ckAssertReturnValueOK(env, rv);
+
return ckEncryptedPartLen;
}
#endif
@@ -284,7 +240,6 @@
{
CK_SESSION_HANDLE ckSessionHandle;
CK_RV rv;
- CK_BYTE BUF[MAX_STACK_BUFFER_LEN];
CK_BYTE_PTR outBufP;
CK_ULONG ckLastEncryptedPartLen;
@@ -293,31 +248,29 @@
ckSessionHandle = jLongToCKULong(jSessionHandle);
- ckLastEncryptedPartLen = jOutLen;
if (directOut != 0) {
- outBufP = (CK_BYTE_PTR)(directOut + jOutOfs);
+ outBufP = (CK_BYTE_PTR) directOut;
} else {
- // output length should always be less than MAX_STACK_BUFFER_LEN
- outBufP = BUF;
+ outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL);
+ if (outBufP == NULL) { return 0; }
}
+ ckLastEncryptedPartLen = jOutLen;
+
//printf("EF: outBufP=%i\n", outBufP);
- rv = (*ckpFunctions->C_EncryptFinal)(ckSessionHandle, outBufP,
+ rv = (*ckpFunctions->C_EncryptFinal)(ckSessionHandle,
+ (CK_BYTE_PTR)(outBufP + jOutOfs),
&ckLastEncryptedPartLen);
//printf("EF: ckLastEncryptedPartLen=%i", ckLastEncryptedPartLen);
- if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) {
- if (directOut == 0 && ckLastEncryptedPartLen > 0) {
- (*env)->SetByteArrayRegion(env, jOut, jOutOfs, ckLastEncryptedPartLen,
- (jbyte *)outBufP);
- }
+ if (directOut == 0) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jOut, outBufP, JNI_ABORT);
}
- if (directOut == 0 && outBufP != BUF) {
- free(outBufP);
- }
+ ckAssertReturnValueOK(env, rv);
+
return ckLastEncryptedPartLen;
}
#endif
@@ -381,8 +334,7 @@
{
CK_SESSION_HANDLE ckSessionHandle;
CK_RV rv;
- CK_BYTE IBUF[MAX_STACK_BUFFER_LEN];
- CK_BYTE OBUF[MAX_STACK_BUFFER_LEN];
+
CK_BYTE_PTR inBufP;
CK_BYTE_PTR outBufP;
CK_ULONG ckPartLen;
@@ -392,49 +344,27 @@
ckSessionHandle = jLongToCKULong(jSessionHandle);
- if (jInLen > MAX_STACK_BUFFER_LEN) {
- inBufP = (CK_BYTE_PTR)malloc((size_t)jInLen);
- if (inBufP == NULL) {
- JNU_ThrowOutOfMemoryError(env, 0);
+ inBufP = (*env)->GetPrimitiveArrayCritical(env, jIn, NULL);
+ if (inBufP == NULL) { return 0; }
+
+ outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL);
+ if (outBufP == NULL) {
+ // Make sure to release inBufP
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
return 0;
- }
- } else {
- inBufP = IBUF;
- }
- (*env)->GetByteArrayRegion(env, jIn, jInOfs, jInLen, (jbyte *)inBufP);
- if ((*env)->ExceptionCheck(env)) {
- if (inBufP != IBUF) { free(inBufP); }
- return 0;
}
ckPartLen = jOutLen;
- if (jOutLen > MAX_STACK_BUFFER_LEN) {
- outBufP = (CK_BYTE_PTR)malloc((size_t)jOutLen);
- if (outBufP == NULL) {
- if (inBufP != IBUF) {
- free(inBufP);
- }
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- } else {
- outBufP = OBUF;
- }
- rv = (*ckpFunctions->C_Decrypt)(ckSessionHandle, inBufP, jInLen,
- outBufP, &ckPartLen);
- if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) {
- if (ckPartLen > 0) {
- (*env)->SetByteArrayRegion(env, jOut, jOutOfs, ckPartLen,
- (jbyte *)outBufP);
- }
- }
- if (inBufP != IBUF) {
- free(inBufP);
- }
- if (outBufP != OBUF) {
- free(outBufP);
- }
+ rv = (*ckpFunctions->C_Decrypt)(ckSessionHandle,
+ (CK_BYTE_PTR)(inBufP + jInOfs), jInLen,
+ (CK_BYTE_PTR)(outBufP + jOutOfs),
+ &ckPartLen);
+
+ (*env)->ReleasePrimitiveArrayCritical(env, jOut, outBufP, JNI_ABORT);
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
+
+ ckAssertReturnValueOK(env, rv);
return ckPartLen;
}
@@ -460,8 +390,7 @@
{
CK_SESSION_HANDLE ckSessionHandle;
CK_RV rv;
- CK_BYTE IBUF[MAX_STACK_BUFFER_LEN];
- CK_BYTE OBUF[MAX_STACK_BUFFER_LEN];
+
CK_BYTE_PTR inBufP;
CK_BYTE_PTR outBufP;
CK_ULONG ckDecryptedPartLen;
@@ -472,59 +401,39 @@
ckSessionHandle = jLongToCKULong(jSessionHandle);
if (directIn != 0) {
- inBufP = (CK_BYTE_PTR)(directIn + jInOfs);
+ inBufP = (CK_BYTE_PTR) directIn;
} else {
- if (jInLen > MAX_STACK_BUFFER_LEN) {
- inBufP = (CK_BYTE_PTR)malloc((size_t)jInLen);
- if (inBufP == NULL) {
- JNU_ThrowOutOfMemoryError(env, 0);
+ inBufP = (*env)->GetPrimitiveArrayCritical(env, jIn, NULL);
+ if (inBufP == NULL) { return 0; }
+ }
+
+ if (directOut != 0) {
+ outBufP = (CK_BYTE_PTR) directOut;
+ } else {
+ outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL);
+ if (outBufP == NULL) {
+ // Make sure to release inBufP
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
return 0;
- }
- } else {
- inBufP = IBUF;
- }
- (*env)->GetByteArrayRegion(env, jIn, jInOfs, jInLen, (jbyte *)inBufP);
- if ((*env)->ExceptionCheck(env)) {
- if (directIn == 0 && inBufP != IBUF) { free(inBufP); }
- return 0;
}
}
ckDecryptedPartLen = jOutLen;
- if (directOut != 0) {
- outBufP = (CK_BYTE_PTR)(directOut + jOutOfs);
- } else {
- if (jOutLen > MAX_STACK_BUFFER_LEN) {
- outBufP = (CK_BYTE_PTR)malloc((size_t)jOutLen);
- if (outBufP == NULL) {
- if (directIn == 0 && inBufP != IBUF) {
- free(inBufP);
- }
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- } else {
- outBufP = OBUF;
- }
+
+ rv = (*ckpFunctions->C_DecryptUpdate)(ckSessionHandle,
+ (CK_BYTE_PTR)(inBufP + jInOfs), jInLen,
+ (CK_BYTE_PTR)(outBufP + jOutOfs),
+ &ckDecryptedPartLen);
+ if (directIn == 0) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jIn, inBufP, JNI_ABORT);
}
- rv = (*ckpFunctions->C_DecryptUpdate)(ckSessionHandle, inBufP, jInLen,
- outBufP, &ckDecryptedPartLen);
-
- if (directIn == 0 && inBufP != IBUF) {
- free(inBufP);
+ if (directOut == 0) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jOut, outBufP, JNI_ABORT);
}
- if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) {
- if (directOut == 0 && ckDecryptedPartLen > 0) {
- (*env)->SetByteArrayRegion(env, jOut, jOutOfs, ckDecryptedPartLen,
- (jbyte *)outBufP);
- }
- }
+ ckAssertReturnValueOK(env, rv);
- if (directOut == 0 && outBufP != OBUF) {
- free(outBufP);
- }
return ckDecryptedPartLen;
}
@@ -547,7 +456,6 @@
{
CK_SESSION_HANDLE ckSessionHandle;
CK_RV rv;
- CK_BYTE BUF[MAX_STACK_BUFFER_LEN];
CK_BYTE_PTR outBufP;
CK_ULONG ckLastPartLen;
@@ -556,27 +464,26 @@
ckSessionHandle = jLongToCKULong(jSessionHandle);
- ckLastPartLen = jOutLen;
if (directOut != 0) {
- outBufP = (CK_BYTE_PTR)(directOut + jOutOfs);
+ outBufP = (CK_BYTE_PTR) directOut;
} else {
- // jOutLen should always be less than MAX_STACK_BUFFER_LEN
- outBufP = BUF;
+ outBufP = (*env)->GetPrimitiveArrayCritical(env, jOut, NULL);
+ if (outBufP == NULL) { return 0; }
}
- rv = (*ckpFunctions->C_DecryptFinal)(ckSessionHandle, outBufP,
+ ckLastPartLen = jOutLen;
+
+ rv = (*ckpFunctions->C_DecryptFinal)(ckSessionHandle,
+ (CK_BYTE_PTR)(outBufP + jOutOfs),
&ckLastPartLen);
- if (ckAssertReturnValueOK(env, rv) == CK_ASSERT_OK) {
- if (directOut == 0 && ckLastPartLen > 0) {
- (*env)->SetByteArrayRegion(env, jOut, jOutOfs, ckLastPartLen,
- (jbyte *)outBufP);
- }
+ if (directOut == 0) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jOut, outBufP, JNI_ABORT);
+
}
- if (directOut == 0 && outBufP != BUF) {
- free(outBufP);
- }
+ ckAssertReturnValueOK(env, rv);
+
return ckLastPartLen;
}
#endif
--- a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java Tue Nov 02 22:15:35 2010 -0700
@@ -432,7 +432,7 @@
ActionEvent aev = new ActionEvent(target, ActionEvent.ACTION_PERFORMED,
liveArguments.getActionCommand(),
e.getWhen(), e.getModifiers());
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(aev);
+ XToolkit.postEvent(XToolkit.targetToAppContext(aev.getSource()), aev);
}
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java Tue Nov 02 22:15:35 2010 -0700
@@ -87,11 +87,15 @@
}
void postInit(XCreateWindowParams params) {
+ // The size hints must be set BEFORE mapping the window (see 6895647)
+ updateSizeHints(dimensions);
+
+ // The super method maps the window if it's visible on the shared level
super.postInit(params);
+
// The lines that follow need to be in a postInit, so they
// happen after the X window is created.
initResizability();
- updateSizeHints(dimensions);
XWM.requestWMExtents(getWindow());
content = XContentWindow.createContent(this);
--- a/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Tue Nov 02 22:15:35 2010 -0700
@@ -25,11 +25,15 @@
package sun.awt.X11;
import java.awt.*;
+import java.awt.event.InputEvent;
import java.awt.peer.*;
+
+import sun.awt.AWTAccessor;
+import sun.awt.SunToolkit;
import sun.awt.X11GraphicsConfig;
-import sun.awt.SunToolkit;
class XRobotPeer implements RobotPeer {
+
private X11GraphicsConfig xgc = null;
/*
* native implementation uses some static shared data (pipes, processes)
@@ -40,7 +44,7 @@
XRobotPeer(GraphicsConfiguration gc) {
this.xgc = (X11GraphicsConfig)gc;
SunToolkit tk = (SunToolkit)Toolkit.getDefaultToolkit();
- setup(tk.getNumberOfButtons());
+ setup(tk.getNumberOfButtons(), AWTAccessor.getInputEventAccessor().getButtonDownMasks());
}
public void dispose() {
@@ -83,7 +87,7 @@
return pixelArray;
}
- private static native synchronized void setup(int numberOfButtons);
+ private static native synchronized void setup(int numberOfButtons, int[] buttonDownMasks);
private static native synchronized void mouseMoveImpl(X11GraphicsConfig xgc, int x, int y);
private static native synchronized void mousePressImpl(int buttons);
--- a/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java Tue Nov 02 22:15:35 2010 -0700
@@ -61,6 +61,7 @@
import java.awt.im.InputMethodRequests;
import sun.awt.CausedFocusEvent;
import sun.awt.AWTAccessor;
+import sun.awt.SunToolkit;
class XTextAreaPeer extends XComponentPeer implements TextAreaPeer {
@@ -1318,13 +1319,18 @@
Component source, Point point, MouseEvent template )
{
MouseEvent e = template;
- return new MouseEvent(
+ MouseEvent nme = new MouseEvent(
source,
e.getID(), e.getWhen(),
e.getModifiersEx() | e.getModifiers(),
point.x, point.y,
e.getXOnScreen(), e.getYOnScreen(),
e.getClickCount(), e.isPopupTrigger(), e.getButton() );
+ // Because these MouseEvents are dispatched directly to
+ // their target, we need to mark them as being
+ // system-generated here
+ SunToolkit.setSystemGenerated(nme);
+ return nme;
}
private void setCursor() {
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Tue Nov 02 22:15:35 2010 -0700
@@ -377,22 +377,22 @@
init();
XWM.init();
SunToolkit.setDataTransfererClassName(DATA_TRANSFERER_CLASS_NAME);
- toolkitThread = new Thread(this, "AWT-XAWT");
- toolkitThread.setPriority(Thread.NORM_PRIORITY + 1);
- toolkitThread.setDaemon(true);
- ThreadGroup mainTG = (ThreadGroup)AccessController.doPrivileged(
- new PrivilegedAction() {
- public Object run() {
- ThreadGroup currentTG =
- Thread.currentThread().getThreadGroup();
- ThreadGroup parentTG = currentTG.getParent();
- while (parentTG != null) {
- currentTG = parentTG;
- parentTG = currentTG.getParent();
- }
- return currentTG;
- }
- });
+
+ PrivilegedAction<Thread> action = new PrivilegedAction() {
+ public Thread run() {
+ ThreadGroup currentTG = Thread.currentThread().getThreadGroup();
+ ThreadGroup parentTG = currentTG.getParent();
+ while (parentTG != null) {
+ currentTG = parentTG;
+ parentTG = currentTG.getParent();
+ }
+ Thread thread = new Thread(currentTG, XToolkit.this, "AWT-XAWT");
+ thread.setPriority(Thread.NORM_PRIORITY + 1);
+ thread.setDaemon(true);
+ return thread;
+ }
+ };
+ toolkitThread = AccessController.doPrivileged(action);
toolkitThread.start();
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java Tue Nov 02 22:15:35 2010 -0700
@@ -454,7 +454,7 @@
ActionEvent aev = new ActionEvent(xtiPeer.target, ActionEvent.ACTION_PERFORMED,
xtiPeer.target.getActionCommand(), e.getWhen(),
e.getModifiers());
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(aev);
+ XToolkit.postEvent(XToolkit.targetToAppContext(aev.getSource()), aev);
}
if (xtiPeer.balloon.isVisible()) {
xtiPeer.balloon.hide();
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java Tue Nov 02 22:15:35 2010 -0700
@@ -401,6 +401,8 @@
if (isPostedField == null) {
isPostedField = SunToolkit.getField(AWTEvent.class, "isPosted");
}
+ // The uses of this method imply that the incoming event is system-generated
+ SunToolkit.setSystemGenerated(e);
PeerEvent pe = new PeerEvent(Toolkit.getDefaultToolkit(), new Runnable() {
public void run() {
try {
@@ -779,7 +781,7 @@
xbe.get_x_root(),
xbe.get_y_root(),
1,false,MouseWheelEvent.WHEEL_UNIT_SCROLL,
- 3,button==4 ? -1*clickCount : 1*clickCount);
+ 3,button==4 ? -1 : 1);
postEventToEventQueue(mwe);
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java Tue Nov 02 22:15:35 2010 -0700
@@ -604,7 +604,9 @@
public void handleWindowFocusIn_Dispatch() {
if (EventQueue.isDispatchThread()) {
XKeyboardFocusManagerPeer.setCurrentNativeFocusedWindow((Window) target);
- target.dispatchEvent(new WindowEvent((Window)target, WindowEvent.WINDOW_GAINED_FOCUS));
+ WindowEvent we = new WindowEvent((Window)target, WindowEvent.WINDOW_GAINED_FOCUS);
+ SunToolkit.setSystemGenerated(we);
+ target.dispatchEvent(we);
}
}
--- a/jdk/src/solaris/classes/sun/awt/X11InputMethod.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11InputMethod.java Tue Nov 02 22:15:35 2010 -0700
@@ -96,6 +96,7 @@
private Component awtFocussedComponent = null;
private Component lastXICFocussedComponent = null;
private boolean isLastXICActive = false;
+ private boolean isLastTemporary = false;
private boolean isActive = false;
private boolean isActiveClient = false;
private static Map[] highlightStyles;
@@ -349,7 +350,7 @@
current focussed component, change the XIC focus to the newly
focussed component.
*/
- if (lastXICFocussedComponentPeer != awtFocussedComponentPeer ||
+ if (isLastTemporary || lastXICFocussedComponentPeer != awtFocussedComponentPeer ||
isLastXICActive != haveActiveClient()) {
if (lastXICFocussedComponentPeer != null) {
setXICFocus(lastXICFocussedComponentPeer, false, isLastXICActive);
@@ -401,6 +402,7 @@
*/
lastXICFocussedComponent = awtFocussedComponent;
isLastXICActive = isAc;
+ isLastTemporary = isTemporary;
isActive = false;
}
--- a/jdk/src/solaris/native/java/io/UnixFileSystem_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/java/io/UnixFileSystem_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -119,7 +119,7 @@
jobject file, jint a)
{
jboolean rv = JNI_FALSE;
- int mode;
+ int mode = 0;
switch (a) {
case java_io_FileSystem_ACCESS_READ:
mode = R_OK;
@@ -151,7 +151,8 @@
jboolean rv = JNI_FALSE;
WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) {
- int amode, mode;
+ int amode = 0;
+ int mode;
switch (access) {
case java_io_FileSystem_ACCESS_READ:
if (owneronly)
--- a/jdk/src/solaris/native/java/io/canonicalize_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/java/io/canonicalize_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -246,7 +246,7 @@
if (r != NULL) {
/* Append unresolved subpath to resolved subpath */
int rn = strlen(r);
- if (rn + strlen(p) >= len) {
+ if (rn + (int)strlen(p) >= len) {
/* Buffer overflow */
errno = ENAMETOOLONG;
return -1;
--- a/jdk/src/solaris/native/java/lang/java_props_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/java/lang/java_props_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -46,7 +46,9 @@
#include "java_props.h"
#ifdef __linux__
-#define CODESET _NL_CTYPE_CODESET_NAME
+ #ifndef CODESET
+ #define CODESET _NL_CTYPE_CODESET_NAME
+ #endif
#else
#ifdef ALT_CODESET_KEY
#define CODESET ALT_CODESET_KEY
@@ -289,7 +291,7 @@
java_props_t *
GetJavaProperties(JNIEnv *env)
{
- static java_props_t sprops = {0};
+ static java_props_t sprops;
char *v; /* tmp var */
if (sprops.user_dir) {
--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Tue Nov 02 22:15:35 2010 -0700
@@ -2255,7 +2255,7 @@
{
struct in_addr in;
struct in_addr *inP = ∈
- int len = sizeof(struct in_addr);
+ socklen_t len = sizeof(struct in_addr);
#ifdef __linux__
struct ip_mreqn mreqn;
--- a/jdk/src/solaris/native/sun/awt/awt.h Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/awt/awt.h Tue Nov 02 22:15:35 2010 -0700
@@ -159,20 +159,8 @@
#endif /* DEBUG_AWT_LOCK && !XAWT */
#ifndef HEADLESS
-extern Display *awt_display; /* awt_GraphicsEnv.c */
-extern XtAppContext awt_appContext; /* awt_MToolkit.c */
-extern Widget awt_root_shell;
-extern Pixel awt_defaultBg;
-extern Pixel awt_defaultFg;
-extern int awt_multiclick_time; /* awt_MToolkit.c */
-extern int awt_multiclick_smudge; /* canvas.c */
-extern unsigned int awt_MetaMask; /* awt_MToolkit.c */
-extern unsigned int awt_AltMask;
-extern unsigned int awt_NumLockMask;
-extern unsigned int awt_ModeSwitchMask;
-extern Cursor awt_scrollCursor; /* awt_MToolkit.c */
-extern Boolean awt_ModLockIsShiftLock;
-
+extern Display *awt_display; /* awt_GraphicsEnv.c */
+extern Boolean awt_ModLockIsShiftLock; /* XToolkit.c */
#endif /* !HEADLESS */
#endif /* ! _AWT_ */
--- a/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c Tue Nov 02 22:15:35 2010 -0700
@@ -264,7 +264,7 @@
#ifndef XAWT
px->drawable = XtWindow(cdata->widget);
#else
- px->drawable = JNU_GetLongFieldAsPtr(env, peer, windowID);
+ px->drawable = (*env)->GetLongField(env, peer, windowID);
#endif
px->display = awt_display;
--- a/jdk/src/solaris/native/sun/awt/awt_InputMethod.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c Tue Nov 02 22:15:35 2010 -0700
@@ -46,8 +46,6 @@
#ifdef XAWT
#include <sun_awt_X11_XComponentPeer.h>
#include <sun_awt_X11_XInputMethod.h>
-
-#define XtWindow(w) (w)
#else /* !XAWT */
#include <sun_awt_motif_MComponentPeer.h>
#include <sun_awt_motif_MInputMethod.h>
@@ -670,7 +668,8 @@
int mccr = 0;
char *dsr;
Pixel bg, fg, light, dim;
- int x, y, w, h, bw, depth, off_x, off_y, xx, yy;
+ int x, y, off_x, off_y, xx, yy;
+ unsigned int w, h, bw, depth;
XGCValues values;
unsigned long valuemask = 0; /*ignore XGCvalue and use defaults*/
int screen = 0;
@@ -709,7 +708,7 @@
light = adata->AwtColorMatch(195, 195, 195, adata);
dim = adata->AwtColorMatch(128, 128, 128, adata);
- XGetWindowAttributes(dpy, XtWindow(parent), &xwa);
+ XGetWindowAttributes(dpy, parent, &xwa);
bw = 2; /*xwa.border_width does not have the correct value*/
/*compare the size difference between parent container
@@ -717,7 +716,7 @@
and title bar height (?)*/
XQueryTree( dpy,
- XtWindow(parent),
+ parent,
&rootWindow,
&containerWindow,
&ignoreWindowPtr,
@@ -731,7 +730,7 @@
XGetWindowAttributes(dpy, rootWindow, &xxwa);
XTranslateCoordinates(dpy,
- XtWindow(parent), xwa.root,
+ parent, xwa.root,
xwa.x, xwa.y,
&x, &y,
&child);
@@ -833,9 +832,9 @@
if (statusWindow->parent != parent){
statusWindow->parent = parent;
}
- XGetWindowAttributes(dpy, XtWindow(parent), &xwa);
+ XGetWindowAttributes(dpy, parent, &xwa);
XTranslateCoordinates(dpy,
- XtWindow(parent), xwa.root,
+ parent, xwa.root,
xwa.x, xwa.y,
&x, &y,
&child);
@@ -966,9 +965,9 @@
XWindowAttributes xwa;
int x, y;
Window child;
- XGetWindowAttributes(dpy, XtWindow(shell), &xwa);
+ XGetWindowAttributes(dpy, shell, &xwa);
XTranslateCoordinates(dpy,
- XtWindow(shell), xwa.root,
+ shell, xwa.root,
xwa.x, xwa.y,
&x, &y,
&child);
@@ -1033,7 +1032,7 @@
return False;
}
#ifdef XAWT
- if (w == NULL) {
+ if (!w) {
return False;
}
#else /* !XAWT */
@@ -1148,8 +1147,8 @@
goto err;
pX11IMData->statusWindow = createStatusWindow(w);
pX11IMData->ic_active = XCreateIC(X11im,
- XNClientWindow, XtWindow(w),
- XNFocusWindow, XtWindow(w),
+ XNClientWindow, w,
+ XNFocusWindow, w,
XNInputStyle, active_styles,
XNPreeditAttributes, preedit,
XNStatusAttributes, status,
@@ -1166,8 +1165,8 @@
goto err;
pX11IMData->statusWidget = awt_util_getXICStatusAreaWindow(w);
pX11IMData->ic_active = XCreateIC(X11im,
- XNClientWindow, XtWindow(pX11IMData->statusWidget),
- XNFocusWindow, XtWindow(w),
+ XNClientWindow, pX11IMData->statusWidget,
+ XNFocusWindow, w,
XNInputStyle, active_styles,
XNPreeditAttributes, preedit,
XNStatusAttributes, status,
@@ -1176,8 +1175,8 @@
} else {
#endif /* XAWT */
pX11IMData->ic_active = XCreateIC(X11im,
- XNClientWindow, XtWindow(w),
- XNFocusWindow, XtWindow(w),
+ XNClientWindow, w,
+ XNFocusWindow, w,
XNInputStyle, active_styles,
XNPreeditAttributes, preedit,
NULL);
@@ -1187,15 +1186,15 @@
XFree((void *)preedit);
#endif /* __linux__ */
pX11IMData->ic_passive = XCreateIC(X11im,
- XNClientWindow, XtWindow(w),
- XNFocusWindow, XtWindow(w),
+ XNClientWindow, w,
+ XNFocusWindow, w,
XNInputStyle, passive_styles,
NULL);
} else {
pX11IMData->ic_active = XCreateIC(X11im,
- XNClientWindow, XtWindow(w),
- XNFocusWindow, XtWindow(w),
+ XNClientWindow, w,
+ XNFocusWindow, w,
XNInputStyle, active_styles,
NULL);
pX11IMData->ic_passive = pX11IMData->ic_active;
@@ -1213,7 +1212,7 @@
{
XIMCallback cb;
cb.client_data = (XPointer) pX11IMData->x11inputmethod;
- cb.callback = CommitStringCallback;
+ cb.callback = (XIMProc) CommitStringCallback;
XSetICValues (pX11IMData->ic_active, XNCommitStringCallback, &cb, NULL);
if (pX11IMData->ic_active != pX11IMData->ic_passive) {
XSetICValues (pX11IMData->ic_passive, XNCommitStringCallback, &cb, NULL);
@@ -1510,7 +1509,7 @@
AWT_LOCK();
#ifdef XAWT
- dpy = (Display *)display;
+ dpy = (Display *)jlong_to_ptr(display);
#else
dpy = awt_display;
#endif
@@ -1520,7 +1519,7 @@
*/
#ifdef __linux__
registered = XRegisterIMInstantiateCallback(dpy, NULL, NULL,
- NULL, (XIMProc)OpenXIMCallback, NULL);
+ NULL, (XIDProc)OpenXIMCallback, NULL);
if (!registered) {
/* directly call openXIM callback */
#endif
@@ -1555,7 +1554,7 @@
AWT_LOCK();
#ifdef XAWT
- if (window == NULL) {
+ if (!window) {
#else /* !XAWT */
if (JNU_IsNull(env, comp)) {
#endif /* XAWT */
@@ -1664,7 +1663,7 @@
* On Solaris2.6, setXICWindowFocus() has to be invoked
* before setting focus.
*/
- setXICWindowFocus(pX11IMData->current_ic, XtWindow(cdata->widget));
+ setXICWindowFocus(pX11IMData->current_ic, cdata->widget);
setXICFocus(pX11IMData->current_ic, True);
} else {
destroyX11InputMethodData((JNIEnv *) NULL, pX11IMData);
@@ -1705,7 +1704,7 @@
if (req) {
#ifdef XAWT
- if (w == NULL) {
+ if (!w) {
AWT_UNLOCK();
return;
}
@@ -1738,10 +1737,10 @@
#ifndef XAWT
w = cdata->widget;
#endif /* XAWT */
- setXICWindowFocus(pX11IMData->current_ic, XtWindow(w));
+ setXICWindowFocus(pX11IMData->current_ic, w);
setXICFocus(pX11IMData->current_ic, req);
currentX11InputMethodInstance = pX11IMData->x11inputmethod;
- currentFocusWindow = XtWindow(w);
+ currentFocusWindow = w;
#ifdef __linux__
if (active && pX11IMData->statusWindow && pX11IMData->statusWindow->on)
onoffStatusWindow(pX11IMData, w, True);
--- a/jdk/src/solaris/native/sun/awt/awt_Robot.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c Tue Nov 02 22:15:35 2010 -0700
@@ -165,41 +165,34 @@
// this should be called from XRobotPeer constructor
JNIEXPORT void JNICALL
-Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls, jint numberOfButtons) {
+Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls, jint numberOfButtons, jintArray buttonDownMasks)
+{
int32_t xtestAvailable;
+ jint *tmp;
+ int i;
DTRACE_PRINTLN("RobotPeer: setup()");
num_buttons = numberOfButtons;
-
- jclass inputEventClazz = (*env)->FindClass(env, "java/awt/event/InputEvent");
- jmethodID getButtonDownMasksID = (*env)->GetStaticMethodID(env, inputEventClazz, "getButtonDownMasks", "()[I");
- jintArray obj = (jintArray)(*env)->CallStaticObjectMethod(env, inputEventClazz, getButtonDownMasksID);
- jint * tmp = (*env)->GetIntArrayElements(env, obj, JNI_FALSE);
-
- masks = (jint *)malloc(sizeof(jint) * num_buttons);
+ tmp = (*env)->GetIntArrayElements(env, buttonDownMasks, JNI_FALSE);
+ masks = (jint *)malloc(sizeof(jint) * num_buttons);
if (masks == (jint *) NULL) {
JNU_ThrowOutOfMemoryError((JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2), NULL);
- goto finally;
+ (*env)->ReleaseIntArrayElements(env, buttonDownMasks, tmp, 0);
+ return;
}
-
- int i;
for (i = 0; i < num_buttons; i++) {
masks[i] = tmp[i];
}
- (*env)->ReleaseIntArrayElements(env, obj, tmp, 0);
- (*env)->DeleteLocalRef(env, obj);
+ (*env)->ReleaseIntArrayElements(env, buttonDownMasks, tmp, 0);
AWT_LOCK();
xtestAvailable = isXTestAvailable();
DTRACE_PRINTLN1("RobotPeer: XTest available = %d", xtestAvailable);
if (!xtestAvailable) {
JNU_ThrowByName(env, "java/awt/AWTException", "java.awt.Robot requires your X server support the XTEST extension version 2.2");
- AWT_UNLOCK();
- return;
}
- finally:
AWT_UNLOCK();
}
--- a/jdk/src/solaris/native/sun/awt/awt_UNIXToolkit.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/awt/awt_UNIXToolkit.c Tue Nov 02 22:15:35 2010 -0700
@@ -112,7 +112,7 @@
/* Copy the data array into a Java structure so we can pass it back. */
jbyteArray data = (*env)->NewByteArray(env, (row_stride * height));
(*env)->SetByteArrayRegion(env, data, 0, (row_stride * height),
- pixbuf_data);
+ (jbyte *)pixbuf_data);
/* Release the pixbuf. */
(*fp_g_object_unref)(pixbuf);
--- a/jdk/src/solaris/native/sun/net/sdp/SdpSupport.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/net/sdp/SdpSupport.c Tue Nov 02 22:15:35 2010 -0700
@@ -68,7 +68,7 @@
*/
if (ipv6_available()) {
JNU_ThrowIOException(env, "IPv6 not supported");
- return;
+ return -1;
}
s = socket(AF_INET_SDP, SOCK_STREAM, 0);
#else
--- a/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c Tue Nov 02 22:15:35 2010 -0700
@@ -158,7 +158,7 @@
char *phost = NULL;
char *mode = NULL;
int pport = 0;
- int use_proxy;
+ int use_proxy = 0;
int use_same_proxy = 0;
const char* urlhost;
jobject isa = NULL;
--- a/jdk/src/solaris/native/sun/nio/ch/Net.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/nio/ch/Net.c Tue Nov 02 22:15:35 2010 -0700
@@ -298,7 +298,8 @@
struct linger linger;
u_char carg;
void *arg;
- int arglen, n;
+ socklen_t arglen;
+ int n;
/* Option value is an int except for a few specific cases */
@@ -317,7 +318,7 @@
}
if (mayNeedConversion) {
- n = NET_GetSockOpt(fdval(env, fdo), level, opt, arg, &arglen);
+ n = NET_GetSockOpt(fdval(env, fdo), level, opt, arg, (int*)&arglen);
} else {
n = getsockopt(fdval(env, fdo), level, opt, arg, &arglen);
}
@@ -527,7 +528,7 @@
Java_sun_nio_ch_Net_getInterface4(JNIEnv* env, jobject this, jobject fdo)
{
struct in_addr in;
- int arglen = sizeof(struct in_addr);
+ socklen_t arglen = sizeof(struct in_addr);
int n;
n = getsockopt(fdval(env, fdo), IPPROTO_IP, IP_MULTICAST_IF, (void*)&in, &arglen);
@@ -556,7 +557,7 @@
Java_sun_nio_ch_Net_getInterface6(JNIEnv* env, jobject this, jobject fdo)
{
int index;
- int arglen = sizeof(index);
+ socklen_t arglen = sizeof(index);
int n;
n = getsockopt(fdval(env, fdo), IPPROTO_IPV6, IPV6_MULTICAST_IF, (void*)&index, &arglen);
--- a/jdk/src/solaris/native/sun/nio/ch/SctpNet.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/nio/ch/SctpNet.c Tue Nov 02 22:15:35 2010 -0700
@@ -537,7 +537,7 @@
int result;
struct linger linger;
void *arg;
- unsigned int arglen;
+ int arglen;
if (mapSocketOption(opt, &klevel, &kopt) < 0) {
JNU_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException",
--- a/jdk/src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c Tue Nov 02 22:15:35 2010 -0700
@@ -40,10 +40,10 @@
jobject this, int fd)
{
int error = 0;
- int n = sizeof(error);
+ socklen_t arglen = sizeof(error);
int result;
- result = getsockopt(fd, SOL_SOCKET, SO_ERROR, &error, &n);
+ result = getsockopt(fd, SOL_SOCKET, SO_ERROR, &error, &arglen);
if (result < 0) {
JNU_ThrowIOExceptionWithLastError(env, "getsockopt");
} else {
--- a/jdk/src/solaris/native/sun/xawt/XlibWrapper.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/xawt/XlibWrapper.c Tue Nov 02 22:15:35 2010 -0700
@@ -484,8 +484,8 @@
(JNIEnv *env, jclass clazz, jlong lib_major_in_out, jlong lib_minor_in_out)
{
AWT_CHECK_HAVE_LOCK();
- *((int *)lib_major_in_out) = XkbMajorVersion;
- *((int *)lib_minor_in_out) = XkbMinorVersion;
+ *((int *)jlong_to_ptr(lib_major_in_out)) = XkbMajorVersion;
+ *((int *)jlong_to_ptr(lib_minor_in_out)) = XkbMinorVersion;
return XkbLibraryVersion((int *)jlong_to_ptr(lib_major_in_out), (int *)jlong_to_ptr(lib_minor_in_out));
}
@@ -1229,7 +1229,6 @@
(JNIEnv *env, jclass clazz, jlong display)
{
int xx;
- AWT_CHECK_HAVE_LOCK();
static jboolean result = JNI_FALSE;
int32_t minKeyCode, maxKeyCode, keySymsPerKeyCode;
@@ -1237,6 +1236,8 @@
int32_t i;
int32_t kanaCount = 0;
+ AWT_CHECK_HAVE_LOCK();
+
// There's no direct way to determine whether the keyboard has
// a kana lock key. From available keyboard mapping tables, it looks
// like only keyboards with the kana lock key can produce keysyms
@@ -1337,12 +1338,14 @@
JNIEXPORT jint JNICALL Java_sun_awt_X11_XlibWrapper_XInternAtoms
(JNIEnv *env, jclass clazz, jlong display, jobjectArray names_arr, jboolean only_if_exists, jlong atoms)
{
-
int length = (*env)->GetArrayLength(env, names_arr);
char ** names = (char**)malloc(length*sizeof(char*));
jboolean copy;
int index, name_index = 0;
int status;
+
+ AWT_CHECK_HAVE_LOCK();
+
for (index = 0; index < length; index++) {
jstring str = (*env)->GetObjectArrayElement(env, names_arr, index);
if (!JNU_IsNull(env, str)) {
@@ -1352,7 +1355,6 @@
(*env)->DeleteLocalRef(env, str);
}
}
- AWT_CHECK_HAVE_LOCK();
status = XInternAtoms((Display*)jlong_to_ptr(display), names, name_index, only_if_exists, (Atom*) jlong_to_ptr(atoms));
for (index = 0; index < length; index++) {
free(names[index]);
@@ -2186,12 +2188,12 @@
Java_sun_awt_X11_XlibWrapper_SetZOrder
(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong above)
{
- AWT_CHECK_HAVE_LOCK();
+ unsigned int value_mask = CWStackMode;
XWindowChanges wc;
wc.sibling = (Window)jlong_to_ptr(above);
- unsigned int value_mask = CWStackMode;
+ AWT_CHECK_HAVE_LOCK();
if (above == 0) {
wc.stack_mode = Above;
@@ -2219,6 +2221,7 @@
jboolean isCopy = JNI_FALSE;
size_t worstBufferSize = (size_t)((width / 2 + 1) * height);
RECT_T * pRect;
+ int numrects;
AWT_CHECK_HAVE_LOCK();
@@ -2237,7 +2240,7 @@
/* Note: the values[0] and values[1] are supposed to contain the width
* and height (see XIconInfo.getIntData() for details). So, we do +2.
*/
- int numrects = BitmapToYXBandedRectangles(32, (int)width, (int)height,
+ numrects = BitmapToYXBandedRectangles(32, (int)width, (int)height,
(unsigned char *)(values + 2), pRect);
XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
--- a/jdk/src/solaris/native/sun/xawt/awt_Desktop.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/solaris/native/sun/xawt/awt_Desktop.c Tue Nov 02 22:15:35 2010 -0700
@@ -28,12 +28,15 @@
typedef int gboolean;
-gboolean (*gnome_url_show) (const char *url, void **error);
+typedef gboolean (GNOME_URL_SHOW_TYPE)(const char *, void **);
+typedef gboolean (GNOME_VFS_INIT_TYPE)(void);
+
+GNOME_URL_SHOW_TYPE *gnome_url_show;
+GNOME_VFS_INIT_TYPE *gnome_vfs_init;
int init(){
void *vfs_handle;
void *gnome_handle;
- gboolean (*gnome_vfs_init) (void);
const char *errmsg;
vfs_handle = dlopen("libgnomevfs-2.so.0", RTLD_LAZY);
@@ -44,7 +47,7 @@
return 0;
}
dlerror(); /* Clear errors */
- gnome_vfs_init = dlsym(vfs_handle, "gnome_vfs_init");
+ gnome_vfs_init = (GNOME_VFS_INIT_TYPE*)dlsym(vfs_handle, "gnome_vfs_init");
if ((errmsg = dlerror()) != NULL) {
#ifdef INTERNAL_BUILD
fprintf(stderr, "can not find symble gnome_vfs_init\n");
@@ -62,7 +65,7 @@
return 0;
}
dlerror(); /* Clear errors */
- gnome_url_show = dlsym(gnome_handle, "gnome_url_show");
+ gnome_url_show = (GNOME_URL_SHOW_TYPE*)dlsym(gnome_handle, "gnome_url_show");
if ((errmsg = dlerror()) != NULL) {
#ifdef INTERNAL_BUILD
fprintf(stderr, "can not find symble gnome_url_show\n");
@@ -94,14 +97,15 @@
(JNIEnv *env, jobject obj, jbyteArray url_j)
{
gboolean success;
-
- const char* url_c = (*env)->GetByteArrayElements(env, url_j, NULL);
+ const char* url_c;
- if (gnome_url_show == NULL) return JNI_FALSE;
+ if (gnome_url_show == NULL) {
+ return JNI_FALSE;
+ }
+ url_c = (char*)(*env)->GetByteArrayElements(env, url_j, NULL);
// call gnome_url_show(const char* , GError**)
success = (*gnome_url_show)(url_c, NULL);
-
(*env)->ReleaseByteArrayElements(env, url_j, (signed char*)url_c, 0);
return success ? JNI_TRUE : JNI_FALSE;
--- a/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java Tue Nov 02 22:15:35 2010 -0700
@@ -487,13 +487,8 @@
newDev.addDisplayChangedListener(this);
}
- SunToolkit.executeOnEventHandlerThread((Component)target,
- new Runnable() {
- public void run() {
- AWTAccessor.getComponentAccessor().
+ AWTAccessor.getComponentAccessor().
setGraphicsConfiguration((Component)target, winGraphicsConfig);
- }
- });
}
/**
--- a/jdk/src/windows/native/common/jni_util_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/common/jni_util_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -79,7 +79,7 @@
}
jstring nativeNewStringPlatform(JNIEnv *env, const char *str) {
- static String_char_constructor = NULL;
+ static jmethodID String_char_constructor;
if (useNativeConverter(env)) {
// use native Unicode conversion so Kernel isn't required during
// System.initProperties
--- a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -434,7 +434,9 @@
a = GetFileAttributesW(pathbuf);
}
}
- if (a != INVALID_FILE_ATTRIBUTES) {
+ if ((a != INVALID_FILE_ATTRIBUTES) &&
+ ((a & FILE_ATTRIBUTE_DIRECTORY) == 0))
+ {
if (enable)
a = a & ~FILE_ATTRIBUTE_READONLY;
else
@@ -796,9 +798,10 @@
}
}
- if (a != INVALID_FILE_ATTRIBUTES) {
+ if ((a != INVALID_FILE_ATTRIBUTES) &&
+ ((a & FILE_ATTRIBUTE_DIRECTORY) == 0)) {
if (SetFileAttributesW(pathbuf, a | FILE_ATTRIBUTE_READONLY))
- rv = JNI_TRUE;
+ rv = JNI_TRUE;
}
free(pathbuf);
return rv;
@@ -812,7 +815,7 @@
jint drive)
{
jstring ret = NULL;
- jchar *p = _wgetdcwd(drive, NULL, MAX_PATH);
+ jchar *p = currentDir(drive);
jchar *pf = p;
if (p == NULL) return NULL;
if (iswalpha(*p) && (p[1] == L':')) p += 2;
--- a/jdk/src/windows/native/java/io/io_util_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/java/io/io_util_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -66,6 +66,25 @@
return pathToNTPath(env, path, JNI_FALSE);
}
+/* Returns the working directory for the given drive, or NULL */
+WCHAR*
+currentDir(int di) {
+ UINT dt;
+ WCHAR root[4];
+ // verify drive is valid as _wgetdcwd in the VC++ 2010 runtime
+ // library does not handle invalid drives.
+ root[0] = L'A' + (WCHAR)(di - 1);
+ root[1] = L':';
+ root[2] = L'\\';
+ root[3] = L'\0';
+ dt = GetDriveTypeW(root);
+ if (dt == DRIVE_UNKNOWN || dt == DRIVE_NO_ROOT_DIR) {
+ return NULL;
+ } else {
+ return _wgetdcwd(di, NULL, MAX_PATH);
+ }
+}
+
/* We cache the length of current working dir here to avoid
calling _wgetcwd() every time we need to resolve a relative
path. This piece of code needs to be revisited if chdir
@@ -83,7 +102,7 @@
if ((d >= L'a') && (d <= L'z')) di = d - L'a' + 1;
else if ((d >= L'A') && (d <= L'Z')) di = d - L'A' + 1;
else return 0; /* invalid drive name. */
- dir = _wgetdcwd(di, NULL, MAX_PATH);
+ dir = currentDir(di);
if (dir != NULL){
dirlen = wcslen(dir);
free(dir);
--- a/jdk/src/windows/native/java/io/io_util_md.h Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/java/io/io_util_md.h Tue Nov 02 22:15:35 2010 -0700
@@ -33,6 +33,7 @@
WCHAR* pathToNTPath(JNIEnv *env, jstring path, jboolean throwFNFE);
WCHAR* fileToNTPath(JNIEnv *env, jobject file, jfieldID id);
WCHAR* getPrefixed(const WCHAR* path, int pathlen);
+WCHAR* currentDir(int di);
int currentDirLength(const WCHAR* path, int pathlen);
void fileOpen(JNIEnv *env, jobject this, jstring path, jfieldID fid, int flags);
int handleAvailable(jlong fd, jlong *pbytes);
--- a/jdk/src/windows/native/java/lang/java_props_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/java/lang/java_props_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -489,7 +489,7 @@
break;
}
sprintf(buf, "%d.%d", ver.dwMajorVersion, ver.dwMinorVersion);
- sprops.os_version = strdup(buf);
+ sprops.os_version = _strdup(buf);
#if _M_IA64
sprops.os_arch = "ia64";
#elif _M_AMD64
@@ -500,7 +500,7 @@
sprops.os_arch = "unknown";
#endif
- sprops.patch_level = strdup(ver.szCSDVersion);
+ sprops.patch_level = _strdup(ver.szCSDVersion);
sprops.desktop = "windows";
}
--- a/jdk/src/windows/native/java/util/TimeZone_md.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/java/util/TimeZone_md.c Tue Nov 02 22:15:35 2010 -0700
@@ -26,6 +26,7 @@
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
+#include "jvm.h"
#include "TimeZone_md.h"
#define VALUE_UNKNOWN 0
@@ -463,7 +464,7 @@
/*
* Found the time zone in the mapping table.
*/
- javaTZName = strdup(items[TZ_JAVA_NAME]);
+ javaTZName = _strdup(items[TZ_JAVA_NAME]);
break;
}
/*
@@ -473,7 +474,7 @@
strncpy(bestMatch, items[TZ_JAVA_NAME], MAX_ZONE_CHAR);
} else if (country != NULL && strcmp(items[TZ_REGION], country) == 0) {
if (value_type == VALUE_MAPID) {
- javaTZName = strdup(items[TZ_JAVA_NAME]);
+ javaTZName = _strdup(items[TZ_JAVA_NAME]);
break;
}
strncpy(bestMatch, items[TZ_JAVA_NAME], MAX_ZONE_CHAR);
@@ -490,7 +491,7 @@
fclose(fp);
if (javaTZName == NULL && bestMatch[0] != '\0') {
- javaTZName = strdup(bestMatch);
+ javaTZName = _strdup(bestMatch);
}
return javaTZName;
@@ -515,7 +516,7 @@
if (result != VALUE_UNKNOWN) {
if (result == VALUE_GMTOFFSET) {
- std_timezone = strdup(winZoneName);
+ std_timezone = _strdup(winZoneName);
} else {
std_timezone = matchJavaTZ(java_home_dir, result,
winZoneName, winMapID, country);
--- a/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c Tue Nov 02 22:15:35 2010 -0700
@@ -84,7 +84,6 @@
jobject remote_ia;
int remote_port;
jobject isa;
- jobject ia;
int addrlen = sizeof(sa);
memset((char *)&sa, 0, sizeof(sa));
--- a/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c Tue Nov 02 22:15:35 2010 -0700
@@ -223,7 +223,7 @@
jboolean discarded = JNI_FALSE;
int n;
do {
- n = recv(s, &data, sizeof(data), MSG_OOB);
+ n = recv(s, (char*)&data, sizeof(data), MSG_OOB);
if (n > 0) {
discarded = JNI_TRUE;
}
--- a/jdk/src/windows/native/sun/windows/WPrinterJob.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/WPrinterJob.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -639,7 +639,7 @@
if( ::ExtEscape( hDC, GETTECHNOLOGY, 0, NULL, MAX_PATH,
(LPSTR)szTechnology ) <= 0 )
return FALSE;
- strupr( szTechnology );
+ _strupr_s(szTechnology, MAX_PATH);
if(!strstr( szTechnology, "POSTSCRIPT" ) == NULL )
return TRUE;
--- a/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -246,7 +246,7 @@
UINT height = abs(bi.bmiHeader.biHeight);
BYTE * buf = (BYTE*)safe_Malloc(bi.bmiHeader.biSizeImage);
- bi.bmiHeader.biHeight = -height;
+ bi.bmiHeader.biHeight = -(INT)height;
::GetDIBits(hdc, hBitmap, 0, height, buf,
reinterpret_cast<BITMAPINFO*>(&bi), DIB_RGB_COLORS);
@@ -305,7 +305,7 @@
UINT height = abs(bi.bmiHeader.biHeight);
BYTE * buf = (BYTE*)safe_Malloc(bi.bmiHeader.biSizeImage);
- bi.bmiHeader.biHeight = -height;
+ bi.bmiHeader.biHeight = -(INT)height;
::GetDIBits(hdc, hSrcBitmap, 0, height, buf,
reinterpret_cast<BITMAPINFO*>(&bi), DIB_RGB_COLORS);
--- a/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -238,7 +238,7 @@
// when running on XP. However this can't be referenced at compile time
// with the older SDK, so there use 'lfMessageFont' plus its size.
if (!IS_WINVISTA) {
-#if defined(_MSC_VER) && (_MSC_VER >= 1600) {
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
ncmetrics.cbSize = offsetof(NONCLIENTMETRICS, iPaddedBorderWidth);
#else
ncmetrics.cbSize = offsetof(NONCLIENTMETRICS,lfMessageFont) + sizeof(LOGFONT);
--- a/jdk/src/windows/native/sun/windows/awt_Dialog.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_Dialog.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -304,7 +304,15 @@
UINT flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE;
if (isBlocked) {
- ::SetWindowPos(dialog, blocker, 0, 0, 0, 0, flags);
+ // Fix for 6829546: if blocker is a top-most window, but window isn't, then
+ // calling ::SetWindowPos(dialog, blocker, ...) makes window top-most as well
+ BOOL isBlockerTopmost = (::GetWindowLong(blocker, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0;
+ BOOL isDialogTopmost = (::GetWindowLong(dialog, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0;
+ if (!isBlockerTopmost || isDialogTopmost) {
+ ::SetWindowPos(dialog, blocker, 0, 0, 0, 0, flags);
+ } else {
+ ::SetWindowPos(dialog, HWND_TOP, 0, 0, 0, 0, flags);
+ }
} else {
::SetWindowPos(dialog, HWND_TOP, 0, 0, 0, 0, flags);
// no beep/flash if the mouse was clicked in the taskbar menu
--- a/jdk/src/windows/native/sun/windows/awt_DrawingSurface.h Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_DrawingSurface.h Tue Nov 02 22:15:35 2010 -0700
@@ -159,7 +159,8 @@
void JNICALL DSUnlockAWT(JNIEnv* env);
_JNI_IMPORT_OR_EXPORT_
- jobject JNICALL DSGetComponent(JNIEnv* env, void* platformInfo);
+ jobject JNICALL DSGetComponent(
+ JNIEnv* env, void* platformInfo);
#ifdef __cplusplus
} /* extern "C" */
--- a/jdk/src/windows/native/sun/windows/awt_Font.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_Font.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1189,7 +1189,7 @@
AwtFontCache::Item::Item(const WCHAR* s, HFONT f, AwtFontCache::Item* n )
{
- name = wcsdup(s);
+ name = _wcsdup(s);
font = f;
next = n;
refCount = 1;
@@ -1237,7 +1237,7 @@
free(m_lpszFontName);
m_lpszFontName = NULL;
}
- m_lpszFontName = wcsdup(name);
+ m_lpszFontName = _wcsdup(name);
DASSERT(m_lpszFontName);
}
--- a/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -1050,7 +1050,7 @@
return NULL;
}
- LPTSTR port = wcsdup(info2->pPortName);
+ LPTSTR port = _wcsdup(info2->pPortName);
::GlobalFree(info2);
return port;
}
--- a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -23,16 +23,12 @@
* questions.
*/
+#define _JNI_IMPLEMENTATION_
+
#include "awt.h"
#include <signal.h>
#include <windowsx.h>
-//#if defined(_DEBUG) && defined(_MSC_VER) && _MSC_VER >= 1000
-//#include <crtdbg.h>
-//#endif
-
-#define _JNI_IMPLEMENTATION_
-
#include "awt_DrawingSurface.h"
#include "awt_AWTEvent.h"
#include "awt_Component.h"
@@ -2224,21 +2220,21 @@
WCHAR szVer[128];
DWORD version = ::GetVersion();
- swprintf(szVer, L"0x%x = %ld", version, version);
+ swprintf(szVer, 128, L"0x%x = %ld", version, version);
int l = lstrlen(szVer);
if (IS_WIN2000) {
if (IS_WINXP) {
if (IS_WINVISTA) {
- swprintf(szVer + l, L" (Windows Vista)");
+ swprintf(szVer + l, 128, L" (Windows Vista)");
} else {
- swprintf(szVer + l, L" (Windows XP)");
+ swprintf(szVer + l, 128, L" (Windows XP)");
}
} else {
- swprintf(szVer + l, L" (Windows 2000)");
+ swprintf(szVer + l, 128, L" (Windows 2000)");
}
} else {
- swprintf(szVer + l, L" (Unknown)");
+ swprintf(szVer + l, 128, L" (Unknown)");
}
return JNU_NewStringPlatform(env, szVer);
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -269,7 +269,7 @@
//if the fontPath includes %SystemRoot%
LPWSTR systemRoot = _wgetenv(L"SystemRoot");
if (systemRoot != NULL
- && swprintf(tmpPath, L"%s%s", systemRoot, fontPath + 12) != -1) {
+ && swprintf(tmpPath, MAX_PATH, L"%s%s", systemRoot, fontPath + 12) != -1) {
fontPath = tmpPath;
}
else {
@@ -279,7 +279,7 @@
//else to see if it only inludes "EUDC.TTE"
WCHAR systemRoot[MAX_PATH + 1];
if (GetWindowsDirectory(systemRoot, MAX_PATH + 1) != 0) {
- swprintf(tmpPath, L"%s\\FONTS\\EUDC.TTE", systemRoot);
+ swprintf(tmpPath, MAX_PATH, L"%s\\FONTS\\EUDC.TTE", systemRoot);
fontPath = tmpPath;
}
else {
--- a/jdk/src/windows/native/sun/windows/awt_Window.cpp Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_Window.cpp Tue Nov 02 22:15:35 2010 -0700
@@ -219,7 +219,7 @@
::InitializeCriticalSection(&contentBitmapCS);
- m_windowType = Type::NORMAL;
+ m_windowType = NORMAL;
m_alwaysOnTop = false;
}
@@ -1016,9 +1016,9 @@
}
if (strcmp(valueNative, "UTILITY") == 0) {
- m_windowType = Type::UTILITY;
+ m_windowType = UTILITY;
} else if (strcmp(valueNative, "POPUP") == 0) {
- m_windowType = Type::POPUP;
+ m_windowType = POPUP;
}
env->ReleaseStringUTFChars(value, valueNative);
@@ -1029,10 +1029,10 @@
void AwtWindow::TweakStyle(DWORD & style, DWORD & exStyle)
{
switch (GetType()) {
- case Type::UTILITY:
+ case UTILITY:
exStyle |= WS_EX_TOOLWINDOW;
break;
- case Type::POPUP:
+ case POPUP:
style &= ~WS_OVERLAPPED;
style |= WS_POPUP;
break;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream/BufferOverflowTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test %I% %E%
+ * @bug 6954275
+ * @summary Check that UnsyncByteArrayOutputStream does not
+ * throw ArrayIndexOutOfBoundsException
+ * @compile -XDignore.symbol.file BufferOverflowTest.java
+ * @run main BufferOverflowTest
+ */
+
+import com.sun.org.apache.xml.internal.security.utils.UnsyncByteArrayOutputStream;
+
+public class BufferOverflowTest {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ UnsyncByteArrayOutputStream out = new UnsyncByteArrayOutputStream();
+ out.write(new byte[(8192) << 2 + 1]);
+ System.out.println("PASSED");
+ } catch (ArrayIndexOutOfBoundsException e) {
+ System.err.println("FAILED, got ArrayIndexOutOfBoundsException");
+ throw new Exception(e);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ @test
+ @bug 6829546
+ @summary tests that an always-on-top modal dialog doesn't make any windows always-on-top
+ @author artem.ananiev: area=awt.modal
+ @library ../../regtesthelpers
+ @build Util
+ @run main MakeWindowAlwaysOnTop
+*/
+
+import java.awt.*;
+import java.awt.event.*;
+
+import test.java.awt.regtesthelpers.Util;
+
+public class MakeWindowAlwaysOnTop
+{
+ private static Frame f;
+ private static Dialog d;
+
+ public static void main(String[] args) throws Exception
+ {
+ Robot r = Util.createRobot();
+ Util.waitForIdle(r);
+
+ // Frame
+ f = new Frame("Test frame");
+ f.setBounds(100, 100, 400, 300);
+ f.setBackground(Color.RED);
+ f.setVisible(true);
+ r.delay(100);
+ Util.waitForIdle(r);
+
+ // Dialog
+ d = new Dialog(null, "Modal dialog", Dialog.ModalityType.APPLICATION_MODAL);
+ d.setBounds(500, 500, 160, 160);
+ d.setAlwaysOnTop(true);
+ EventQueue.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ d.setVisible(true);
+ }
+ });
+ // Wait until the dialog is shown
+ EventQueue.invokeAndWait(new Runnable()
+ {
+ public void run()
+ {
+ // Empty
+ }
+ });
+ r.delay(100);
+ Util.waitForIdle(r);
+
+ // Click on the frame to trigger modality
+ Point p = f.getLocationOnScreen();
+ r.mouseMove(p.x + f.getWidth() / 2, p.y + f.getHeight() / 2);
+ Util.waitForIdle(r);
+ r.mousePress(InputEvent.BUTTON1_MASK);
+ Util.waitForIdle(r);
+ r.mouseRelease(InputEvent.BUTTON1_MASK);
+ Util.waitForIdle(r);
+
+ r.delay(100);
+ Util.waitForIdle(r);
+
+ // Dispose dialog
+ d.dispose();
+ r.delay(100);
+ Util.waitForIdle(r);
+
+ // Show another frame at the same location
+ Frame t = new Frame("Check");
+ t.setBounds(100, 100, 400, 300);
+ t.setBackground(Color.BLUE);
+ t.setVisible(true);
+ r.delay(100);
+ Util.waitForIdle(r);
+
+ // Bring it above the first frame
+ t.toFront();
+ r.delay(100);
+ Util.waitForIdle(r);
+
+ Color c = r.getPixelColor(p.x + f.getWidth() / 2, p.y + f.getHeight() / 2);
+ System.out.println("Color = " + c);
+ System.out.flush();
+ // If the color is RED, then the first frame is now always-on-top
+ if (Color.RED.equals(c))
+ {
+ throw new RuntimeException("Test FAILED: the frame is always-on-top");
+ }
+ else if (!Color.BLUE.equals(c))
+ {
+ throw new RuntimeException("Test FAILED: unknown window is on top of the frame");
+ }
+ else
+ {
+ System.out.println("Test PASSED");
+ System.out.flush();
+ }
+
+ // Dispose all the windows
+ t.dispose();
+ f.dispose();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Frame/FrameLocation/FrameLocation.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ @test
+ @bug 6895647
+ @summary X11 Frame locations should be what we set them to
+ @author anthony.petrov@oracle.com: area=awt.toplevel
+ @run main FrameLocation
+ */
+
+import java.awt.*;
+
+public class FrameLocation {
+ private static final int X = 250;
+ private static final int Y = 250;
+
+ public static void main(String[] args) {
+ Frame f = new Frame("test");
+ f.setBounds(X, Y, 250, 250); // the size doesn't matter
+ f.setVisible(true);
+
+ for (int i = 0; i < 10; i++) {
+ // 2 seconds must be enough for the WM to show the window
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException ex) {
+ }
+
+ // Check the location
+ int x = f.getX();
+ int y = f.getY();
+
+ if (x != X || y != Y) {
+ throw new RuntimeException("The frame location is wrong! Current: " + x + ", " + y + "; expected: " + X + ", " + Y);
+ }
+
+ // Emulate what happens when setGraphicsConfiguration() is called
+ synchronized (f.getTreeLock()) {
+ f.removeNotify();
+ f.addNotify();
+ }
+ }
+
+ f.dispose();
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Multiscreen/TranslucencyThrowsExceptionWhenFullScreen/TranslucencyThrowsExceptionWhenFullScreen.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ @test
+ @bug 6838089
+ @summary Translucent windows should throw exception in FS mode
+ @author dmitry.cherepanov@oracle.com: area=awt-multiscreen
+ @run main TranslucencyThrowsExceptionWhenFullScreen
+*/
+
+import java.awt.*;
+import java.lang.reflect.InvocationTargetException;
+
+public class TranslucencyThrowsExceptionWhenFullScreen
+{
+ public static void main(String[] args)
+ throws InvocationTargetException, InterruptedException
+ {
+ EventQueue.invokeAndWait(
+ new Runnable(){
+ public void run() {
+ Frame frame = new Frame();
+ frame.setBounds(100,100,100,100);
+ frame.setVisible(true);
+
+ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ GraphicsDevice[] devices = ge.getScreenDevices();
+ for (GraphicsDevice device : devices) {
+ testGraphicsDevice(device, frame);
+ }
+
+ frame.dispose();
+ }
+ }
+ );
+ }
+
+ private static void testGraphicsDevice(GraphicsDevice device, Frame frame) {
+ device.setFullScreenWindow(frame);
+ try {
+ frame.setOpacity(0.5f);
+ throw new RuntimeException("Test fails, there's no exception for device="+device);
+ } catch(IllegalComponentStateException e) {
+ device.setFullScreenWindow(null);
+ }
+ }
+}
--- a/jdk/test/java/io/File/SetAccess.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/io/File/SetAccess.java Tue Nov 02 22:15:35 2010 -0700
@@ -22,11 +22,12 @@
*/
/* @test
- @bug 4167472 5097703 6216563 6284003
+ @bug 4167472 5097703 6216563 6284003 6728842 6464744
@summary Basic test for setWritable/Readable/Executable methods
*/
import java.io.*;
+import java.nio.file.attribute.*;
public class SetAccess {
public static void main(String[] args) throws Exception {
@@ -49,8 +50,9 @@
}
public static void doTest(File f) throws Exception {
- f.setReadOnly();
if (!System.getProperty("os.name").startsWith("Windows")) {
+ if (!f.setReadOnly())
+ throw new Exception(f + ": setReadOnly Failed");
if (!f.setWritable(true, true) ||
!f.canWrite() ||
permission(f).charAt(2) != 'w')
@@ -119,40 +121,44 @@
throw new Exception(f + ": setReadable(false, true) Failed");
} else {
//Windows platform
- if (!f.setWritable(true, true) || !f.canWrite())
- throw new Exception(f + ": setWritable(true, ture) Failed");
- if (!f.setWritable(true, false) || !f.canWrite())
- throw new Exception(f + ": setWritable(true, false) Failed");
- if (!f.setWritable(true) || !f.canWrite())
- throw new Exception(f + ": setWritable(true, ture) Failed");
- if (!f.setExecutable(true, true) || !f.canExecute())
- throw new Exception(f + ": setExecutable(true, true) Failed");
- if (!f.setExecutable(true, false) || !f.canExecute())
- throw new Exception(f + ": setExecutable(true, false) Failed");
- if (!f.setExecutable(true) || !f.canExecute())
- throw new Exception(f + ": setExecutable(true, true) Failed");
- if (!f.setReadable(true, true) || !f.canRead())
- throw new Exception(f + ": setReadable(true, true) Failed");
- if (!f.setReadable(true, false) || !f.canRead())
- throw new Exception(f + ": setReadable(true, false) Failed");
- if (!f.setReadable(true) || !f.canRead())
- throw new Exception(f + ": setReadable(true, true) Failed");
+ if (f.isFile()) {
+ if (!f.setReadOnly())
+ throw new Exception(f + ": setReadOnly Failed");
+ if (!f.setWritable(true, true) || !f.canWrite())
+ throw new Exception(f + ": setWritable(true, ture) Failed");
+ if (!f.setWritable(true, false) || !f.canWrite())
+ throw new Exception(f + ": setWritable(true, false) Failed");
+ if (!f.setWritable(true) || !f.canWrite())
+ throw new Exception(f + ": setWritable(true, ture) Failed");
+ if (!f.setExecutable(true, true) || !f.canExecute())
+ throw new Exception(f + ": setExecutable(true, true) Failed");
+ if (!f.setExecutable(true, false) || !f.canExecute())
+ throw new Exception(f + ": setExecutable(true, false) Failed");
+ if (!f.setExecutable(true) || !f.canExecute())
+ throw new Exception(f + ": setExecutable(true, true) Failed");
+ if (!f.setReadable(true, true) || !f.canRead())
+ throw new Exception(f + ": setReadable(true, true) Failed");
+ if (!f.setReadable(true, false) || !f.canRead())
+ throw new Exception(f + ": setReadable(true, false) Failed");
+ if (!f.setReadable(true) || !f.canRead())
+ throw new Exception(f + ": setReadable(true, true) Failed");
+ }
if (f.isDirectory()) {
- //All directories on Windows always have read&write access perm,
- //setting a directory to "unwritable" actually means "not deletable"
- if (!f.setWritable(false, true) || !f.canWrite())
- throw new Exception(f + ": setWritable(false, true) Failed");
- if (!f.setWritable(false, false) || !f.canWrite())
- throw new Exception(f + ": setWritable(false, true) Failed");
- if (!f.setWritable(false) || !f.canWrite())
- throw new Exception(f + ": setWritable(false, true) Failed");
+ // setWritable should fail on directories because the DOS readonly
+ // attribute prevents a directory from being deleted.
+ if (f.setWritable(false, true))
+ throw new Exception(f + ": setWritable(false, true) Succeeded");
+ if (f.setWritable(false, false))
+ throw new Exception(f + ": setWritable(false, false) Succeeded");
+ if (f.setWritable(false))
+ throw new Exception(f + ": setWritable(false) Succeeded");
} else {
if (!f.setWritable(false, true) || f.canWrite())
throw new Exception(f + ": setWritable(false, true) Failed");
if (!f.setWritable(false, false) || f.canWrite())
- throw new Exception(f + ": setWritable(false, true) Failed");
+ throw new Exception(f + ": setWritable(false, false) Failed");
if (!f.setWritable(false) || f.canWrite())
- throw new Exception(f + ": setWritable(false, true) Failed");
+ throw new Exception(f + ": setWritable(false) Failed");
}
if (f.setExecutable(false, true))
throw new Exception(f + ": setExecutable(false, true) Failed");
@@ -172,14 +178,8 @@
}
private static String permission(File f) throws Exception {
- byte[] bb = new byte[1024];
- String command = f.isDirectory()?"ls -dl ":"ls -l ";
- int len = Runtime.getRuntime()
- .exec(command + f.getPath())
- .getInputStream()
- .read(bb, 0, 1024);
- if (len > 0)
- return new String(bb, 0, len).substring(0, 10);
- return "";
+ PosixFileAttributes attrs = Attributes.readPosixFileAttributes(f.toPath());
+ String type = attrs.isDirectory() ? "d" : " ";
+ return type + PosixFilePermissions.toString(attrs.permissions());
}
}
--- a/jdk/test/java/io/File/SetReadOnly.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/io/File/SetReadOnly.java Tue Nov 02 22:15:35 2010 -0700
@@ -22,7 +22,7 @@
*/
/* @test
- @bug 4091757 4939819
+ @bug 4091757 4939819 6728842
@summary Basic test for setReadOnly method
*/
@@ -57,17 +57,8 @@
}
if (!f.mkdir())
throw new Exception(f + ": Cannot create directory");
- if (!f.setReadOnly())
- throw new Exception(f + ": Failed on directory");
- // The readonly attribute on Windows does not make a folder read-only
- if (System.getProperty("os.name").startsWith("Windows")) {
- if (!f.canWrite())
- throw new Exception(f + ": Directory is not writeable");
- } else {
- if (f.canWrite())
- throw new Exception(f + ": Directory is writeable");
- }
-
+ if (f.setReadOnly() && f.canWrite())
+ throw new Exception(f + ": Directory is writeable");
if (!f.delete())
throw new Exception(f + ": Cannot delete directory");
--- a/jdk/test/java/io/pathNames/GeneralWin32.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/io/pathNames/GeneralWin32.java Tue Nov 02 22:15:35 2010 -0700
@@ -22,7 +22,7 @@
*/
/* @test
- @bug 4032066 4039597 4046914 4054511 4065189 4109131 4875229
+ @bug 4032066 4039597 4046914 4054511 4065189 4109131 4875229 6983520
@summary General exhaustive test of win32 pathname handling
@author Mark Reinhold
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/ClassLoader/deadlock/GetResource.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.Properties;
+import java.util.concurrent.CyclicBarrier;
+import java.util.concurrent.BrokenBarrierException;
+import java.io.IOException;
+import java.net.URL;
+
+/* @test
+ * @bug 6977738
+ * @summary Test ClassLoader.getResource() that should not deadlock
+ # if another thread is holding the system properties object
+ *
+ * @build GetResource
+ * @run main GetResource
+ */
+
+public class GetResource {
+ CyclicBarrier go = new CyclicBarrier(2);
+ CyclicBarrier done = new CyclicBarrier(2);
+ Thread t1, t2;
+ public GetResource() {
+ t1 = new Thread() {
+ public void run() {
+ Properties prop = System.getProperties();
+ synchronized (prop) {
+ System.out.println("Thread 1 ready");
+ try {
+ go.await();
+ prop.put("property", "value");
+ prop.store(System.out, "");
+ done.await(); // keep holding the lock until t2 finishes
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ } catch (BrokenBarrierException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ System.out.println("Thread 1 exits");
+ }
+ };
+
+ t2 = new Thread() {
+ public void run() {
+ System.out.println("Thread 2 ready");
+ try {
+ go.await(); // wait until t1 holds the lock of the system properties
+
+ URL u1 = Thread.currentThread().getContextClassLoader().getResource("unknownresource");
+ URL u2 = Thread.currentThread().getContextClassLoader().getResource("sun/util/resources/CalendarData.class");
+ if (u2 == null) {
+ throw new RuntimeException("Test failed: resource not found");
+ }
+ done.await();
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ } catch (BrokenBarrierException e) {
+ throw new RuntimeException(e);
+ }
+ System.out.println("Thread 2 exits");
+ }
+ };
+ }
+
+ public void run() throws Exception {
+ t1.start();
+ t2.start();
+ try {
+ t1.join();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ throw e;
+ }
+ try {
+ t2.join();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ throw e;
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ new GetResource().run();
+ }
+}
--- a/jdk/test/java/lang/ProcessBuilder/Basic.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/lang/ProcessBuilder/Basic.java Tue Nov 02 22:15:35 2010 -0700
@@ -1843,9 +1843,11 @@
public void run() {
try { stdout.read(); }
catch (IOException e) {
+ // Check that reader failed because stream was
+ // asynchronously closed.
// e.printStackTrace();
if (EnglishUnix.is() &&
- ! (e.getMessage().matches(".*Bad file descriptor.*")))
+ ! (e.getMessage().matches(".*Bad file.*")))
unexpected(e);
}
catch (Throwable t) { unexpected(t); }}};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/nio/Buffer/LimitDirectMemory.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.nio.ByteBuffer;
+import java.util.Properties;
+
+public class LimitDirectMemory {
+ private static int K = 1024;
+
+ public static void main(String [] args) throws Exception {
+ if (args.length < 2)
+ throw new RuntimeException();
+ boolean throwp = parseThrow(args[0]);
+ int size = parseSize(args[1]);
+ int incr = (args.length > 2 ? parseSize(args[2]) : size);
+
+ Properties p = System.getProperties();
+ if (p.getProperty("sun.nio.MaxDirectMemorySize") != null)
+ throw new RuntimeException("sun.nio.MaxDirectMemorySize defined");
+
+ ByteBuffer [] b = new ByteBuffer[K];
+
+ // Fill up most/all of the direct memory
+ int i = 0;
+ while (size >= incr) {
+ b[i++] = ByteBuffer.allocateDirect(incr);
+ size -= incr;
+ }
+
+ if (throwp) {
+ try {
+ b[i] = ByteBuffer.allocateDirect(incr);
+ throw new RuntimeException("OutOfMemoryError not thrown: "
+ + incr);
+ } catch (OutOfMemoryError e) {
+ e.printStackTrace(System.out);
+ System.out.println("OK - Error thrown as expected ");
+ }
+ } else {
+ b[i] = ByteBuffer.allocateDirect(incr);
+ System.out.println("OK - Error not thrown");
+ }
+ }
+
+ private static boolean parseThrow(String s) {
+ if (s.equals("true")) return true;
+ if (s.equals("false")) return false;
+ throw new RuntimeException("Unrecognized expectation: " + s);
+ }
+
+ private static int parseSize(String size) throws Exception {
+
+ if (size.equals("DEFAULT"))
+ return (int)Runtime.getRuntime().maxMemory();
+ if (size.equals("DEFAULT+1"))
+ return (int)Runtime.getRuntime().maxMemory() + 1;
+ if (size.equals("DEFAULT+1M"))
+ return (int)Runtime.getRuntime().maxMemory() + (1 << 20);
+ if (size.equals("DEFAULT-1"))
+ return (int)Runtime.getRuntime().maxMemory() - 1;
+ if (size.equals("DEFAULT/2"))
+ return (int)Runtime.getRuntime().maxMemory() / 2;
+
+ int idx = 0, len = size.length();
+
+ int result = 1;
+ for (int i = 0; i < len; i++) {
+ if (Character.isDigit(size.charAt(i))) idx++;
+ else break;
+ }
+
+ if (idx == 0)
+ throw new RuntimeException("No digits detected: " + size);
+
+ result = Integer.parseInt(size.substring(0, idx));
+
+ if (idx < len) {
+ for (int i = idx; i < len; i++) {
+ switch(size.charAt(i)) {
+ case 'T': case 't': result *= K; // fall through
+ case 'G': case 'g': result *= K; // fall through
+ case 'M': case 'm': result *= K; // fall through
+ case 'K': case 'k': result *= K;
+ break;
+ default:
+ throw new RuntimeException("Unrecognized size: " + size);
+ }
+ }
+ }
+ return result;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/nio/Buffer/LimitDirectMemory.sh Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# @test
+# @bug 4627316 6743526
+# @summary Test option to limit direct memory allocation
+#
+# @build LimitDirectMemory
+# @run shell LimitDirectMemory.sh
+
+TMP1=tmp_$$
+
+runTest() {
+ echo "Testing: $*"
+ ${TESTJAVA}/bin/java $*
+ if [ $? -eq 0 ]
+ then echo "--- passed as expected"
+ else
+ echo "--- failed"
+ exit 1
+ fi
+}
+
+launchFail() {
+ echo "Testing: -XX:MaxDirectMemorySize=$* -cp ${TESTCLASSES} \
+ LimitDirectMemory true DEFAULT DEFAULT+1M"
+ ${TESTJAVA}/bin/java -XX:MaxDirectMemorySize=$* -cp ${TESTCLASSES} \
+ LimitDirectMemory true DEFAULT DEFAULT+1M > ${TMP1} 2>&1
+ cat ${TMP1}
+ cat ${TMP1} | grep -s "Unrecognized VM option: \'MaxDirectMemorySize="
+ if [ $? -ne 0 ]
+ then echo "--- failed as expected"
+ else
+ echo "--- failed"
+ exit 1
+ fi
+}
+
+# $java LimitDirectMemory throwp fill_direct_memory size_per_buffer
+
+# Memory is properly limited using multiple buffers.
+runTest -XX:MaxDirectMemorySize=10 -cp ${TESTCLASSES} LimitDirectMemory true 10 1
+runTest -XX:MaxDirectMemorySize=1k -cp ${TESTCLASSES} LimitDirectMemory true 1k 100
+runTest -XX:MaxDirectMemorySize=10m -cp ${TESTCLASSES} LimitDirectMemory true 10m 10m
+
+# We can increase the amount of available memory.
+runTest -XX:MaxDirectMemorySize=65M -cp ${TESTCLASSES} \
+ LimitDirectMemory false 64M 65M
+
+# Exactly the default amount of memory is available.
+runTest -cp ${TESTCLASSES} LimitDirectMemory false 10 1
+runTest -Xmx64m -cp ${TESTCLASSES} LimitDirectMemory false 0 DEFAULT
+runTest -Xmx64m -cp ${TESTCLASSES} LimitDirectMemory true 0 DEFAULT+1
+
+# We should be able to eliminate direct memory allocation entirely.
+runTest -XX:MaxDirectMemorySize=0 -cp ${TESTCLASSES} LimitDirectMemory true 0 1
+
+# Setting the system property should not work so we should be able to allocate
+# the default amount.
+runTest -Dsun.nio.MaxDirectMemorySize=1K -Xmx64m -cp ${TESTCLASSES} \
+ LimitDirectMemory false DEFAULT-1 DEFAULT/2
+
+# Various bad values fail to launch the VM.
+launchFail foo
+launchFail 10kmt
+launchFail -1
+
+# Clean-up
+rm ${TMP1}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/nio/channels/Selector/TemporarySelector.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 6645197
+ * @run main/othervm -Xmx5m TemporarySelector
+ * @summary Timed read with socket adaptor throws ClosedSelectorException if temporary selector GC'ed.
+ */
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+
+public class TemporarySelector {
+
+ static volatile boolean done = false;
+
+ public static void main(String[] args) throws Exception {
+
+ Runnable r = new Runnable() {
+ public void run() {
+ while (!done) {
+ System.gc();
+ try {
+ Thread.sleep(1000);
+ } catch (Exception e) {
+ }
+ }
+ }
+ };
+
+ try {
+ // Create a server socket that will open and accept on loopback connection
+ ServerSocketChannel ssc = ServerSocketChannel.open();
+ final ServerSocket ss = ssc.socket();
+ ss.bind(new InetSocketAddress(0));
+ int localPort = ss.getLocalPort();
+
+ // Create a client socket that will connect and read
+ System.out.println("Connecting to server socket");
+ System.out.flush();
+ SocketChannel channel = SocketChannel.open(new InetSocketAddress("localhost", localPort));
+ System.out.println("Connected to server socket");
+ System.out.flush();
+
+ // Create a thread to try and cause the GC to run
+ Thread t = new Thread(r);
+ t.start();
+ byte[] buffer = new byte[500];
+ System.out.println("Reading from socket input stream");
+ System.out.flush();
+ Socket socket = channel.socket();
+ socket.setSoTimeout(10000); // The timeout must be set
+ // to trigger this bug
+ try {
+ socket.getInputStream().read(buffer);
+ } catch (java.net.SocketTimeoutException ste) {
+ // no java.nio.channels.ClosedSelectorException
+ }
+ } finally {
+ done = true;
+ }
+ }
+}
--- a/jdk/test/java/nio/channels/SocketChannel/VectorIO.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/nio/channels/SocketChannel/VectorIO.java Tue Nov 02 22:15:35 2010 -0700
@@ -60,6 +60,7 @@
static void bufferTest(int port) throws Exception {
ByteBuffer[] bufs = new ByteBuffer[testSize];
+ long total = 0L;
for(int i=0; i<testSize; i++) {
String source = "buffer" + i;
if (generator.nextBoolean())
@@ -69,6 +70,7 @@
bufs[i].put(source.getBytes("8859_1"));
bufs[i].flip();
+ total += bufs[i].remaining();
}
// Get a connection to the server
@@ -76,17 +78,20 @@
InetSocketAddress isa = new InetSocketAddress(lh, port);
SocketChannel sc = SocketChannel.open();
sc.connect(isa);
- sc.configureBlocking(false);
+ sc.configureBlocking(generator.nextBoolean());
// Write the data out
- long bytesWritten = 0;
- do {
- bytesWritten = sc.write(bufs);
- } while (bytesWritten > 0);
-
- try {
- Thread.currentThread().sleep(500);
- } catch (InterruptedException ie) { }
+ long rem = total;
+ while (rem > 0L) {
+ long bytesWritten = sc.write(bufs);
+ if (bytesWritten == 0) {
+ if (sc.isBlocking())
+ throw new RuntimeException("write did not block");
+ Thread.sleep(50);
+ } else {
+ rem -= bytesWritten;
+ }
+ }
// Clean up
sc.close();
@@ -115,6 +120,7 @@
}
void bufferTest() throws Exception {
+ long total = 0L;
ByteBuffer[] bufs = new ByteBuffer[testSize];
for(int i=0; i<testSize; i++) {
String source = "buffer" + i;
@@ -122,6 +128,7 @@
bufs[i] = ByteBuffer.allocateDirect(source.length());
else
bufs[i] = ByteBuffer.allocate(source.length());
+ total += bufs[i].capacity();
}
// Get a connection from client
@@ -138,11 +145,21 @@
Thread.sleep(50);
}
+ sc.configureBlocking(generator.nextBoolean());
+
// Read data into multiple buffers
- long bytesRead = 0;
- do {
- bytesRead = sc.read(bufs);
- } while (bytesRead > 0);
+ long avail = total;
+ while (avail > 0) {
+ long bytesRead = sc.read(bufs);
+ if (bytesRead < 0)
+ break;
+ if (bytesRead == 0) {
+ if (sc.isBlocking())
+ throw new RuntimeException("read did not block");
+ Thread.sleep(50);
+ }
+ avail -= bytesRead;
+ }
// Check results
for(int i=0; i<testSize; i++) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/text/Collator/Bug6970930.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6970930
+ * @summary verify that compare() throws NPE instead of IAE when an argument is null.
+ */
+import java.text.*;
+
+public class Bug6970930 {
+
+ private static boolean err = false;
+
+ public static void main(String[] args) {
+ // Check if compare() throws NPE.
+ test1(null, null);
+ test1("\"foo\"", null);
+ test1(null, "\"bar\"");
+
+ if (err) {
+ throw new RuntimeException("Failed.");
+ } else {
+ System.out.println("Passed.");
+ }
+ }
+
+ private static void test1(String s1, String s2) {
+ RuleBasedCollator col = null;
+
+ try {
+ col = new RuleBasedCollator("< a < b");
+ }
+ catch (ParseException e) {
+ err = true;
+ System.err.println(e);
+ }
+
+ try {
+ col.compare("foo", "bar"); // This line is necessary to reproduce the bug.
+ col.compare(s1, s2);
+
+ err = true;
+ System.err.println("No exception was thrown for compare(" +
+ s1 + ", " + s2 + ").");
+ }
+ catch (NullPointerException e) {
+ System.out.println("NPE was thrown as expected for compare(" +
+ s1 + ", " + s2 + ").");
+ }
+ catch (Exception e) {
+ err = true;
+ System.err.println("Unexpected exception was thrown for compare(" +
+ s1 + ", " + s2 + "): " + e);
+ }
+ }
+
+}
--- a/jdk/test/java/util/Arrays/Sorting.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/util/Arrays/Sorting.java Tue Nov 02 22:15:35 2010 -0700
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 6880672 6896573 6899694
+ * @bug 6880672 6896573 6899694 6976036
* @summary Exercise Arrays.sort
* @build Sorting
* @run main Sorting -shortrun
@@ -50,10 +50,10 @@
1, 2, 3, 21, 55, 1000, 10000 };
// Random initial values used in a long run (default)
- private static final long[] LONG_RUN_RANDOMS = {666, 0xC0FFEE, 999};
+ private static final long[] LONG_RUN_RANDOMS = { 666, 0xC0FFEE, 999 };
// Random initial values used in a short run
- private static final long[] SHORT_RUN_RANDOMS = {666};
+ private static final long[] SHORT_RUN_RANDOMS = { 666 };
public static void main(String[] args) {
boolean shortRun = args.length > 0 && args[0].equals("-shortrun");
@@ -82,6 +82,11 @@
reset(random);
for (int length : lengths) {
+ testAndCheckWithInsertionSort(length, random);
+ }
+ reset(random);
+
+ for (int length : lengths) {
testAndCheckWithCheckSum(length, random);
}
reset(random);
@@ -268,9 +273,7 @@
" length = " + length + ", m = " + m);
Object convertedGolden = converter.convert(golden);
Object convertedTest = converter.convert(test);
- // outArray(test);
sortSubArray(convertedTest, fromIndex, toIndex);
- // outArray(test);
checkSubArray(convertedTest, fromIndex, toIndex, m);
}
}
@@ -311,7 +314,7 @@
private static void checkSorted(Pair[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i].getKey() > a[i + 1].getKey()) {
- failed(i, "" + a[i].getKey(), "" + a[i + 1].getKey());
+ failedSort(i, "" + a[i].getKey(), "" + a[i + 1].getKey());
}
}
}
@@ -328,7 +331,7 @@
int value4 = a[i++].getValue();
if (!(key1 == key2 && key2 == key3 && key3 == key4)) {
- failed("On position " + i + " must keys are different " +
+ failed("On position " + i + " keys are different " +
key1 + ", " + key2 + ", " + key3 + ", " + key4);
}
if (!(value1 < value2 && value2 < value3 && value3 < value4)) {
@@ -385,6 +388,35 @@
private int myValue;
}
+
+ private static void testAndCheckWithInsertionSort(int length, long random) {
+ if (length > 1000) {
+ return;
+ }
+ ourDescription = "Check sorting with insertion sort";
+ int[] golden = new int[length];
+
+ for (int m = 1; m < 2 * length; m *= 2) {
+ for (UnsortedBuilder builder : UnsortedBuilder.values()) {
+ builder.build(golden, m);
+ int[] test = golden.clone();
+
+ for (TypeConverter converter : TypeConverter.values()) {
+ out.println("Test 'insertion sort': " + converter + " " +
+ builder + "random = " + random + ", length = " +
+ length + ", m = " + m);
+ Object convertedGolden = converter.convert(golden);
+ Object convertedTest1 = converter.convert(test);
+ Object convertedTest2 = converter.convert(test);
+ sort(convertedTest1);
+ sortByInsertionSort(convertedTest2);
+ compare(convertedTest1, convertedTest2);
+ }
+ }
+ }
+ out.println();
+ }
+
private static void testAndCheckWithCheckSum(int length, long random) {
ourDescription = "Check sorting with check sum";
int[] golden = new int[length];
@@ -460,9 +492,7 @@
builder.build(golden, a, g, z, n, p);
float[] test = golden.clone();
scramble(test);
- // outArray(test);
sort(test);
- // outArray(test);
compare(test, golden, a, n, g);
}
newLine = true;
@@ -500,9 +530,7 @@
builder.build(golden, a, g, z, n, p);
double[] test = golden.clone();
scramble(test);
- // outArray(test);
sort(test);
- // outArray(test);
compare(test, golden, a, n, g);
}
newLine = true;
@@ -721,12 +749,12 @@
for (int i = numNeg; i < numNeg + numNegZero; i++) {
if (NEGATIVE_ZERO != Float.floatToIntBits(a[i])) {
- failed("On position " + i + " must be -0.0f instead of " + a[i]);
+ failed("On position " + i + " must be -0.0 instead of " + a[i]);
}
}
for (int i = 0; i < a.length - numNaN; i++) {
if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
+ failedCompare(i, "" + a[i], "" + b[i]);
}
}
}
@@ -747,12 +775,12 @@
for (int i = numNeg; i < numNeg + numNegZero; i++) {
if (NEGATIVE_ZERO != Double.doubleToLongBits(a[i])) {
- failed("On position " + i + " must be -0.0d instead of " + a[i]);
+ failed("On position " + i + " must be -0.0 instead of " + a[i]);
}
}
for (int i = 0; i < a.length - numNaN; i++) {
if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
+ failedCompare(i, "" + a[i], "" + b[i]);
}
}
}
@@ -841,8 +869,8 @@
int incCount = 1;
int decCount = a.length;
int i = 0;
- int period = m;
- m--;
+ int period = m--;
+
while (true) {
for (int k = 1; k <= period; k++) {
if (i >= a.length) {
@@ -922,6 +950,25 @@
}
}
+ private static void checkWithCheckSum(Object test, Object golden) {
+ checkSorted(test);
+ checkCheckSum(test, golden);
+ }
+
+ private static void failed(String message) {
+ err.format("\n*** TEST FAILED - %s.\n\n%s.\n\n", ourDescription, message);
+ throw new RuntimeException("Test failed - see log file for details");
+ }
+
+ private static void failedSort(int index, String value1, String value2) {
+ failed("Array is not sorted at " + index + "-th position: " +
+ value1 + " and " + value2);
+ }
+
+ private static void failedCompare(int index, String value1, String value2) {
+ failed("On position " + index + " must be " + value2 + " instead of " + value1);
+ }
+
private static void compare(Object test, Object golden) {
if (test instanceof int[]) {
compare((int[]) test, (int[]) golden);
@@ -945,19 +992,68 @@
}
}
- private static void checkWithCheckSum(Object test, Object golden) {
- checkSorted(test);
- checkCheckSum(test, golden);
+ private static void compare(int[] a, int[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
+ }
+
+ private static void compare(long[] a, long[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
+ }
+
+ private static void compare(short[] a, short[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
}
- private static void failed(String message) {
- err.format("\n*** TEST FAILED - %s\n\n%s\n\n", ourDescription, message);
- throw new RuntimeException("Test failed - see log file for details");
+ private static void compare(byte[] a, byte[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
+ }
+
+ private static void compare(char[] a, char[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
}
- private static void failed(int index, String value1, String value2) {
- failed("Array is not sorted at " + index + "-th position: " +
- value1 + " and " + value2);
+ private static void compare(float[] a, float[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
+ }
+
+ private static void compare(double[] a, double[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i] != b[i]) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
+ }
+
+ private static void compare(Integer[] a, Integer[] b) {
+ for (int i = 0; i < a.length; i++) {
+ if (a[i].compareTo(b[i]) != 0) {
+ failedCompare(i, "" + a[i], "" + b[i]);
+ }
+ }
}
private static void checkSorted(Object object) {
@@ -983,82 +1079,10 @@
}
}
- private static void compare(Integer[] a, Integer[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i].intValue() != b[i].intValue()) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(int[] a, int[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(long[] a, long[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(short[] a, short[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(byte[] a, byte[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(char[] a, char[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(float[] a, float[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void compare(double[] a, double[] b) {
- for (int i = 0; i < a.length; i++) {
- if (a[i] != b[i]) {
- failed(i, "" + a[i], "" + b[i]);
- }
- }
- }
-
- private static void checkSorted(Integer[] a) {
- for (int i = 0; i < a.length - 1; i++) {
- if (a[i].intValue() > a[i + 1].intValue()) {
- failed(i, "" + a[i], "" + a[i + 1]);
- }
- }
- }
-
private static void checkSorted(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
@@ -1066,7 +1090,7 @@
private static void checkSorted(long[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
@@ -1074,7 +1098,7 @@
private static void checkSorted(short[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
@@ -1082,7 +1106,7 @@
private static void checkSorted(byte[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
@@ -1090,7 +1114,7 @@
private static void checkSorted(char[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
@@ -1098,7 +1122,7 @@
private static void checkSorted(float[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
@@ -1106,34 +1130,141 @@
private static void checkSorted(double[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
+ }
+ }
+ }
+
+ private static void checkSorted(Integer[] a) {
+ for (int i = 0; i < a.length - 1; i++) {
+ if (a[i].intValue() > a[i + 1].intValue()) {
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
}
private static void checkCheckSum(Object test, Object golden) {
- if (checkSum(test) != checkSum(golden)) {
- failed("It seems that original and sorted arrays are not identical");
+ if (checkSumXor(test) != checkSumXor(golden)) {
+ failed("Original and sorted arrays are not identical [xor]");
+ }
+ if (checkSumPlus(test) != checkSumPlus(golden)) {
+ failed("Original and sorted arrays are not identical [plus]");
+ }
+ }
+
+ private static int checkSumXor(Object object) {
+ if (object instanceof int[]) {
+ return checkSumXor((int[]) object);
+ } else if (object instanceof long[]) {
+ return checkSumXor((long[]) object);
+ } else if (object instanceof short[]) {
+ return checkSumXor((short[]) object);
+ } else if (object instanceof byte[]) {
+ return checkSumXor((byte[]) object);
+ } else if (object instanceof char[]) {
+ return checkSumXor((char[]) object);
+ } else if (object instanceof float[]) {
+ return checkSumXor((float[]) object);
+ } else if (object instanceof double[]) {
+ return checkSumXor((double[]) object);
+ } else if (object instanceof Integer[]) {
+ return checkSumXor((Integer[]) object);
+ } else {
+ failed("Unknow type of array: " + object + " of class " +
+ object.getClass().getName());
+ return -1;
}
}
- private static int checkSum(Object object) {
+ private static int checkSumXor(Integer[] a) {
+ int checkSum = 0;
+
+ for (Integer e : a) {
+ checkSum ^= e.intValue();
+ }
+ return checkSum;
+ }
+
+ private static int checkSumXor(int[] a) {
+ int checkSum = 0;
+
+ for (int e : a) {
+ checkSum ^= e;
+ }
+ return checkSum;
+ }
+
+ private static int checkSumXor(long[] a) {
+ long checkSum = 0;
+
+ for (long e : a) {
+ checkSum ^= e;
+ }
+ return (int) checkSum;
+ }
+
+ private static int checkSumXor(short[] a) {
+ short checkSum = 0;
+
+ for (short e : a) {
+ checkSum ^= e;
+ }
+ return (int) checkSum;
+ }
+
+ private static int checkSumXor(byte[] a) {
+ byte checkSum = 0;
+
+ for (byte e : a) {
+ checkSum ^= e;
+ }
+ return (int) checkSum;
+ }
+
+ private static int checkSumXor(char[] a) {
+ char checkSum = 0;
+
+ for (char e : a) {
+ checkSum ^= e;
+ }
+ return (int) checkSum;
+ }
+
+ private static int checkSumXor(float[] a) {
+ int checkSum = 0;
+
+ for (float e : a) {
+ checkSum ^= (int) e;
+ }
+ return checkSum;
+ }
+
+ private static int checkSumXor(double[] a) {
+ int checkSum = 0;
+
+ for (double e : a) {
+ checkSum ^= (int) e;
+ }
+ return checkSum;
+ }
+
+ private static int checkSumPlus(Object object) {
if (object instanceof int[]) {
- return checkSum((int[]) object);
+ return checkSumPlus((int[]) object);
} else if (object instanceof long[]) {
- return checkSum((long[]) object);
+ return checkSumPlus((long[]) object);
} else if (object instanceof short[]) {
- return checkSum((short[]) object);
+ return checkSumPlus((short[]) object);
} else if (object instanceof byte[]) {
- return checkSum((byte[]) object);
+ return checkSumPlus((byte[]) object);
} else if (object instanceof char[]) {
- return checkSum((char[]) object);
+ return checkSumPlus((char[]) object);
} else if (object instanceof float[]) {
- return checkSum((float[]) object);
+ return checkSumPlus((float[]) object);
} else if (object instanceof double[]) {
- return checkSum((double[]) object);
+ return checkSumPlus((double[]) object);
} else if (object instanceof Integer[]) {
- return checkSum((Integer[]) object);
+ return checkSumPlus((Integer[]) object);
} else {
failed("Unknow type of array: " + object + " of class " +
object.getClass().getName());
@@ -1141,76 +1272,179 @@
}
}
- private static int checkSum(Integer[] a) {
- int checkXorSum = 0;
-
- for (Integer e : a) {
- checkXorSum ^= e.intValue();
- }
- return checkXorSum;
- }
-
- private static int checkSum(int[] a) {
- int checkXorSum = 0;
+ private static int checkSumPlus(int[] a) {
+ int checkSum = 0;
for (int e : a) {
- checkXorSum ^= e;
+ checkSum += e;
}
- return checkXorSum;
+ return checkSum;
}
- private static int checkSum(long[] a) {
- long checkXorSum = 0;
+ private static int checkSumPlus(long[] a) {
+ long checkSum = 0;
for (long e : a) {
- checkXorSum ^= e;
+ checkSum += e;
}
- return (int) checkXorSum;
+ return (int) checkSum;
}
- private static int checkSum(short[] a) {
- short checkXorSum = 0;
+ private static int checkSumPlus(short[] a) {
+ short checkSum = 0;
for (short e : a) {
- checkXorSum ^= e;
+ checkSum += e;
}
- return (int) checkXorSum;
+ return (int) checkSum;
}
- private static int checkSum(byte[] a) {
- byte checkXorSum = 0;
+ private static int checkSumPlus(byte[] a) {
+ byte checkSum = 0;
for (byte e : a) {
- checkXorSum ^= e;
+ checkSum += e;
}
- return (int) checkXorSum;
+ return (int) checkSum;
}
- private static int checkSum(char[] a) {
- char checkXorSum = 0;
+ private static int checkSumPlus(char[] a) {
+ char checkSum = 0;
for (char e : a) {
- checkXorSum ^= e;
+ checkSum += e;
}
- return (int) checkXorSum;
+ return (int) checkSum;
}
- private static int checkSum(float[] a) {
- int checkXorSum = 0;
+ private static int checkSumPlus(float[] a) {
+ int checkSum = 0;
for (float e : a) {
- checkXorSum ^= (int) e;
+ checkSum += (int) e;
+ }
+ return checkSum;
+ }
+
+ private static int checkSumPlus(double[] a) {
+ int checkSum = 0;
+
+ for (double e : a) {
+ checkSum += (int) e;
+ }
+ return checkSum;
+ }
+
+ private static int checkSumPlus(Integer[] a) {
+ int checkSum = 0;
+
+ for (Integer e : a) {
+ checkSum += e.intValue();
}
- return checkXorSum;
+ return checkSum;
+ }
+
+ private static void sortByInsertionSort(Object object) {
+ if (object instanceof int[]) {
+ sortByInsertionSort((int[]) object);
+ } else if (object instanceof long[]) {
+ sortByInsertionSort((long[]) object);
+ } else if (object instanceof short[]) {
+ sortByInsertionSort((short[]) object);
+ } else if (object instanceof byte[]) {
+ sortByInsertionSort((byte[]) object);
+ } else if (object instanceof char[]) {
+ sortByInsertionSort((char[]) object);
+ } else if (object instanceof float[]) {
+ sortByInsertionSort((float[]) object);
+ } else if (object instanceof double[]) {
+ sortByInsertionSort((double[]) object);
+ } else if (object instanceof Integer[]) {
+ sortByInsertionSort((Integer[]) object);
+ } else {
+ failed("Unknow type of array: " + object + " of class " +
+ object.getClass().getName());
+ }
+ }
+
+ private static void sortByInsertionSort(int[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ int ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
}
- private static int checkSum(double[] a) {
- int checkXorSum = 0;
+ private static void sortByInsertionSort(long[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ long ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
+ }
+
+ private static void sortByInsertionSort(short[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ short ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
+ }
+
+ private static void sortByInsertionSort(byte[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ byte ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
+ }
- for (double e : a) {
- checkXorSum ^= (int) e;
+ private static void sortByInsertionSort(char[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ char ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
+ }
+
+ private static void sortByInsertionSort(float[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ float ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
}
- return checkXorSum;
+ }
+
+ private static void sortByInsertionSort(double[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ double ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
+ }
+
+ private static void sortByInsertionSort(Integer[] a) {
+ for (int j, i = 1; i < a.length; i++) {
+ Integer ai = a[i];
+ for (j = i - 1; j >= 0 && ai < a[j]; j--) {
+ a[j + 1] = a[j];
+ }
+ a[j + 1] = ai;
+ }
}
private static void sort(Object object) {
@@ -1292,7 +1526,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i].intValue() > a[i + 1].intValue()) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1314,7 +1548,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1336,7 +1570,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1358,7 +1592,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1380,7 +1614,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1402,7 +1636,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1424,7 +1658,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
@@ -1446,7 +1680,7 @@
for (int i = fromIndex; i < toIndex - 1; i++) {
if (a[i] > a[i + 1]) {
- failed(i, "" + a[i], "" + a[i + 1]);
+ failedSort(i, "" + a[i], "" + a[i + 1]);
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/Locale/Bug6989440.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6989440
+ * @summary Verify ConcurrentModificationException is not thrown with multiple
+ * thread accesses.
+ * @compile -XDignore.symbol.file=true Bug6989440.java
+ * @run main Bug6989440
+ */
+import java.text.spi.DateFormatProvider;
+import java.util.spi.LocaleNameProvider;
+import java.util.spi.LocaleServiceProvider;
+import java.util.spi.TimeZoneNameProvider;
+
+import sun.util.LocaleServiceProviderPool;
+
+public class Bug6989440 {
+ public static void main(String[] args) {
+ TestThread t1 = new TestThread(LocaleNameProvider.class);
+ TestThread t2 = new TestThread(TimeZoneNameProvider.class);
+ TestThread t3 = new TestThread(DateFormatProvider.class);
+
+ t1.start();
+ t2.start();
+ t3.start();
+ }
+
+ static class TestThread extends Thread {
+ private Class<? extends LocaleServiceProvider> cls;
+
+ public TestThread(Class<? extends LocaleServiceProvider> providerClass) {
+ cls = providerClass;
+ }
+
+ public void run() {
+ LocaleServiceProviderPool pool = LocaleServiceProviderPool.getPool(cls);
+ pool.getAvailableLocales();
+ }
+ }
+}
--- a/jdk/test/java/util/Locale/LocaleEnhanceTest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/java/util/Locale/LocaleEnhanceTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -614,6 +614,55 @@
assertEquals("hans DE", "Simplified Han", hansLocale.getDisplayScript(Locale.GERMANY));
}
+ public void testGetDisplayName() {
+ final Locale[] testLocales = {
+ Locale.ROOT,
+ new Locale("en"),
+ new Locale("en", "US"),
+ new Locale("", "US"),
+ new Locale("no", "NO", "NY"),
+ new Locale("", "", "NY"),
+ Locale.forLanguageTag("zh-Hans"),
+ Locale.forLanguageTag("zh-Hant"),
+ Locale.forLanguageTag("zh-Hans-CN"),
+ Locale.forLanguageTag("und-Hans"),
+ };
+
+ final String[] displayNameEnglish = {
+ "",
+ "English",
+ "English (United States)",
+ "United States",
+ "Norwegian (Norway,Nynorsk)",
+ "Nynorsk",
+ "Chinese (Simplified Han)",
+ "Chinese (Traditional Han)",
+ "Chinese (Simplified Han,China)",
+ "Simplified Han",
+ };
+
+ final String[] displayNameSimplifiedChinese = {
+ "",
+ "\u82f1\u6587",
+ "\u82f1\u6587 (\u7f8e\u56fd)",
+ "\u7f8e\u56fd",
+ "\u632a\u5a01\u6587 (\u632a\u5a01,Nynorsk)",
+ "Nynorsk",
+ "\u4e2d\u6587 (\u7b80\u4f53\u4e2d\u6587)",
+ "\u4e2d\u6587 (\u7e41\u4f53\u4e2d\u6587)",
+ "\u4e2d\u6587 (\u7b80\u4f53\u4e2d\u6587,\u4e2d\u56fd)",
+ "\u7b80\u4f53\u4e2d\u6587",
+ };
+
+ for (int i = 0; i < testLocales.length; i++) {
+ Locale loc = testLocales[i];
+ assertEquals("English display name for " + loc.toLanguageTag(),
+ displayNameEnglish[i], loc.getDisplayName(Locale.ENGLISH));
+ assertEquals("Simplified Chinese display name for " + loc.toLanguageTag(),
+ displayNameSimplifiedChinese[i], loc.getDisplayName(Locale.CHINA));
+ }
+ }
+
///
/// Builder tests
///
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/accessibility/6986385/bug6986385.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ @bug 6986385
+ @summary JLayer should implement accessible interface
+ @author Alexander Potochkin
+ @run main bug6986385
+*/
+
+import javax.swing.*;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+
+public class bug6986385 {
+
+ public static void main(String... args) throws Exception {
+ JLayer l = new JLayer();
+ AccessibleContext acc = l.getAccessibleContext();
+ if (acc == null) {
+ throw new RuntimeException("JLayer's AccessibleContext is null");
+ }
+ if (acc.getAccessibleRole() != AccessibleRole.PANEL) {
+ throw new RuntimeException("JLayer's AccessibleRole must be PANEL");
+ }
+ }
+}
--- a/jdk/test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java Tue Nov 02 22:15:35 2010 -0700
@@ -47,7 +47,7 @@
for (int big = 0; big < 2; big+=1)
for (int bits = 32; bits <= 64; bits+=32) {
AudioFormat frm = new AudioFormat(
- AudioFloatConverter.PCM_FLOAT,
+ AudioFormat.Encoding.PCM_FLOAT,
44100, bits, 1, bits/8,
44100, big==1);
byte[] buff = new byte[testarray.length * frm.getFrameSize()];
--- a/jdk/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/DummySourceDataLine.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/DummySourceDataLine.java Tue Nov 02 22:15:35 2010 -0700
@@ -84,16 +84,16 @@
AudioSystem.NOT_SPECIFIED, bits, channels, channels
* bits / 8, AudioSystem.NOT_SPECIFIED, true));
}
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 32, channels, channels * 4,
AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 32, channels, channels * 4,
AudioSystem.NOT_SPECIFIED, true));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 64, channels, channels * 8,
AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 64, channels, channels * 8,
AudioSystem.NOT_SPECIFIED, true));
}
--- a/jdk/test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java Tue Nov 02 22:15:35 2010 -0700
@@ -84,16 +84,16 @@
AudioSystem.NOT_SPECIFIED, bits, channels, channels
* bits / 8, AudioSystem.NOT_SPECIFIED, true));
}
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 32, channels, channels * 4,
AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 32, channels, channels * 4,
AudioSystem.NOT_SPECIFIED, true));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 64, channels, channels * 8,
AudioSystem.NOT_SPECIFIED, false));
- formats.add(new AudioFormat(AudioFloatConverter.PCM_FLOAT,
+ formats.add(new AudioFormat(Encoding.PCM_FLOAT,
AudioSystem.NOT_SPECIFIED, 64, channels, channels * 8,
AudioSystem.NOT_SPECIFIED, true));
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JFileChooser/6396844/TwentyThousandTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6396844
+ * @summary Tests memory leak for 20000 files
+ * @author Sergey Malenkov
+ * @run main/othervm/timeout=1000 -mx256m TwentyThousandTest
+ */
+
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileWriter;
+
+public class TwentyThousandTest implements ActionListener, Runnable {
+
+ private static final int FILES = 20000;
+ private static final int ATTEMPTS = 100;
+ private static final int INTERVAL = 100;
+
+ private static final boolean ALWAYS_NEW_INSTANCE = false;
+ private static final boolean UPDATE_UI_EACH_INTERVAL = true;
+ private static final boolean AUTO_CLOSE_DIALOG = true;
+
+ private static JFileChooser CHOOSER;
+
+ private static String tmpDir;
+
+ public static void main(String[] args) throws Exception {
+ tmpDir = System.getProperty("java.io.tmpdir");
+
+ if (tmpDir.length() == 0) { //'java.io.tmpdir' isn't guaranteed to be defined
+ tmpDir = System.getProperty("user.home");
+ }
+
+ System.out.println("Temp directory: " + tmpDir);
+
+ System.out.println("Creating " + FILES + " files");
+
+ for (int i = 0; i < FILES; i++) {
+ File file = getTempFile(i);
+
+ FileWriter writer = new FileWriter(file);
+ writer.write("File " + i);
+ writer.close();
+ }
+
+ for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
+ if (laf.getClassName().contains("Motif")) {
+ continue;
+ }
+
+ UIManager.setLookAndFeel(laf.getClassName());
+
+ System.out.println("Do " + ATTEMPTS + " attempts for " + laf.getClassName());
+
+ for ( int i = 0; i < ATTEMPTS; i++ ) {
+ System.out.print(i + " ");
+
+ doAttempt();
+ }
+
+ System.out.println();
+
+ CHOOSER = null;
+ }
+
+ System.out.println("Removing " + FILES + " files");
+
+ for (int i = 0; i < FILES; i++) {
+ getTempFile(i).delete();
+ }
+
+ System.out.println( "Test passed successfully" );
+ }
+
+ private static File getTempFile(int i) {
+ return new File(tmpDir, "temp" + i + ".txt");
+ }
+
+ private static void doAttempt() throws Exception {
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ if ( ALWAYS_NEW_INSTANCE || ( CHOOSER == null ) )
+ CHOOSER = new JFileChooser(tmpDir);
+
+ if ( UPDATE_UI_EACH_INTERVAL )
+ CHOOSER.updateUI();
+
+ if ( AUTO_CLOSE_DIALOG ) {
+ Thread t = new Thread( new TwentyThousandTest( CHOOSER ) );
+ t.start();
+ CHOOSER.showOpenDialog( null );
+ } else {
+ CHOOSER.showOpenDialog( null );
+ }
+ }
+ });
+
+ // Allow to collect garbage by GC
+ Thread.sleep(1000);
+
+ System.gc();
+ }
+
+ private final JFileChooser chooser;
+
+ TwentyThousandTest( JFileChooser chooser ) {
+ this.chooser = chooser;
+ }
+
+ public void run() {
+ while ( !this.chooser.isShowing() ) {
+ try {
+ Thread.sleep( 30 );
+ } catch ( InterruptedException exception ) {
+ exception.printStackTrace();
+ }
+ }
+ Timer timer = new Timer( INTERVAL, this );
+ timer.setRepeats( false );
+ timer.start();
+ }
+
+ public void actionPerformed( ActionEvent event ) {
+ this.chooser.cancelSelection();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/Security/6938813/bug6938813.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6938813
+ * @summary Swing mutable statics
+ * @author Pavel Porvatov
+ */
+
+import sun.awt.AppContext;
+import sun.awt.SunToolkit;
+
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.StyleSheet;
+import javax.swing.text.html.parser.DTD;
+import javax.swing.text.html.parser.ParserDelegator;
+import java.lang.reflect.Field;
+
+public class bug6938813 {
+ public static final String DTD_KEY = "dtd_key";
+
+ private static volatile StyleSheet styleSheet;
+
+ public static void main(String[] args) throws Exception {
+ // Run validation and init values for this AppContext
+ validate();
+
+ Thread thread = new ThreadInAnotherAppContext();
+
+ thread.start();
+ thread.join();
+ }
+
+ private static void validate() throws Exception {
+ AppContext appContext = AppContext.getAppContext();
+
+ assertTrue(DTD.getDTD(DTD_KEY).getName().equals(DTD_KEY), "DTD.getDTD() mixed AppContexts");
+
+ // Spoil hash value
+ DTD invalidDtd = DTD.getDTD("invalid DTD");
+
+ DTD.putDTDHash(DTD_KEY, invalidDtd);
+
+ assertTrue(DTD.getDTD(DTD_KEY) == invalidDtd, "Something wrong with DTD.getDTD()");
+
+ Object dtdKey = getParserDelegator_DTD_KEY();
+
+ assertTrue(appContext.get(dtdKey) == null, "ParserDelegator mixed AppContexts");
+
+ // Init default DTD
+ new ParserDelegator();
+
+ Object dtdValue = appContext.get(dtdKey);
+
+ assertTrue(dtdValue != null, "ParserDelegator.defaultDTD isn't initialized");
+
+ // Try reinit default DTD
+ new ParserDelegator();
+
+ assertTrue(dtdValue == appContext.get(dtdKey), "ParserDelegator.defaultDTD created a duplicate");
+
+ HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
+
+ if (styleSheet == null) {
+ // First AppContext
+ styleSheet = htmlEditorKit.getStyleSheet();
+
+ assertTrue(styleSheet != null, "htmlEditorKit.getStyleSheet() returns null");
+ assertTrue(htmlEditorKit.getStyleSheet() == styleSheet, "Something wrong with htmlEditorKit.getStyleSheet()");
+ } else {
+ assertTrue(htmlEditorKit.getStyleSheet() != styleSheet, "HtmlEditorKit.getStyleSheet() mixed AppContexts");
+ }
+ }
+
+ private static void assertTrue(boolean b, String msg) {
+ if (!b) {
+ throw new RuntimeException("Test failed: " + msg);
+ }
+ }
+
+ private static Object getParserDelegator_DTD_KEY() throws Exception {
+ Field field = ParserDelegator.class.getDeclaredField("DTD_KEY");
+
+ field.setAccessible(true);
+
+ return field.get(null);
+ }
+
+ private static class ThreadInAnotherAppContext extends Thread {
+ public ThreadInAnotherAppContext() {
+ super(new ThreadGroup("6938813"), "ThreadInAnotherAppContext");
+ }
+
+ public void run() {
+ SunToolkit.createNewAppContext();
+
+ try {
+ validate();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/UIDefaults/6622002/bug6622002.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 6622002
+ * @author Alexander Potochkin
+ * @summary UIDefault.ProxyLazyValue has unsafe reflection usage
+ */
+
+import javax.swing.*;
+
+public class bug6622002 {
+ public static void main(String[] args) {
+
+ if (createPrivateValue() == null) {
+ throw new RuntimeException("The private value unexpectedly wasn't created");
+ }
+
+ if (createPublicValue() == null) {
+ throw new RuntimeException("The public value unexpectedly wasn't created");
+ }
+
+ System.setSecurityManager(new SecurityManager());
+
+ if (createPrivateValue() != null) {
+ throw new RuntimeException("The private value was unexpectedly created");
+ }
+
+ if (createPublicValue() == null) {
+ throw new RuntimeException("The public value unexpectedly wasn't created");
+ }
+ }
+
+ private static Object createPrivateValue() {
+ return new UIDefaults.ProxyLazyValue(
+ "javax.swing.MultiUIDefaults").createValue(null);
+ }
+
+ private static Object createPublicValue() {
+ return new UIDefaults.ProxyLazyValue(
+ "javax.swing.UIDefaults").createValue(null);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/plaf/basic/Test6984643.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6984643
+ * @summary Unable to instantiate JFileChooser with a minimal BasicL&F descendant installed
+ * @author Pavel Porvatov
+ */
+
+import javax.swing.*;
+import javax.swing.plaf.basic.BasicLookAndFeel;
+
+public class Test6984643 {
+ public static void main(String[] args) throws Exception {
+ UIManager.setLookAndFeel(new BasicLookAndFeel() {
+ public String getName() {
+ return "A name";
+ }
+
+ public String getID() {
+ return "An id";
+ }
+
+ public String getDescription() {
+ return "A description";
+ }
+
+ public boolean isNativeLookAndFeel() {
+ return false;
+ }
+
+ public boolean isSupportedLookAndFeel() {
+ return true;
+ }
+ });
+
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ new JFileChooser();
+ }
+ });
+ }
+}
--- a/jdk/test/javax/swing/system/6799345/TestShutdown.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/javax/swing/system/6799345/TestShutdown.java Tue Nov 02 22:15:35 2010 -0700
@@ -59,7 +59,7 @@
while (!appcontextInitDone)
{
- Thread.sleep(500);
+ Thread.sleep(1000);
}
targetAppContext.dispose();
@@ -146,7 +146,6 @@
startGUI();
}
});
- stk.realSync();
// start multiple SwingWorkers
while (!Thread.interrupted())
--- a/jdk/test/sun/misc/BootClassLoaderHook/TestHook.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/misc/BootClassLoaderHook/TestHook.java Tue Nov 02 22:15:35 2010 -0700
@@ -24,7 +24,10 @@
import java.io.File;
import java.util.TreeSet;
import java.util.Set;
+import java.net.URLStreamHandlerFactory;
import sun.misc.BootClassLoaderHook;
+import sun.misc.URLClassPath;
+
/* @test
* @bug 6888802
@@ -68,10 +71,6 @@
for (String s : copy) {
System.out.println(" Loaded " + s);
}
-
- if (BootClassLoaderHook.getBootstrapPaths().length > 0) {
- throw new RuntimeException("Unexpected returned value from getBootstrapPaths()");
- }
}
private static void testHook() throws Exception {
@@ -98,8 +97,9 @@
return false;
}
- public File[] getAdditionalBootstrapPaths() {
- return new File[0];
+ public URLClassPath getBootstrapClassPath(URLClassPath bcp,
+ URLStreamHandlerFactory factory) {
+ return bcp;
}
public boolean isCurrentThreadPrefetching() {
--- a/jdk/test/sun/security/pkcs11/fips/CipherTest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/pkcs11/fips/CipherTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -114,10 +114,11 @@
}
boolean isEnabled() {
-// return cipherSuite.equals("SSL_RSA_WITH_RC4_128_MD5") &&
-// (clientAuth != null);
-// return cipherSuite.indexOf("_RSA_") != -1;
-// return cipherSuite.indexOf("DH_anon") != -1;
+ // ignore SCSV
+ if (cipherSuite.equals("TLS_EMPTY_RENEGOTIATION_INFO_SCSV")) {
+ return false;
+ }
+
return true;
}
--- a/jdk/test/sun/security/pkcs11/sslecc/CipherTest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/pkcs11/sslecc/CipherTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -114,12 +114,11 @@
}
boolean isEnabled() {
-// if (true) return cipherSuite.contains("_ECDH_");
-// return cipherSuite.equals("SSL_RSA_WITH_RC4_128_MD5") &&
-// (clientAuth != null);
-// return cipherSuite.indexOf("_RSA_") != -1;
-// return cipherSuite.indexOf("DH_anon") != -1;
-// return cipherSuite.contains("ECDSA") == false;
+ // ignore SCSV
+ if (cipherSuite.equals("TLS_EMPTY_RENEGOTIATION_INFO_SCSV")) {
+ return false;
+ }
+
return true;
}
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
* @test
* @bug 4403428
* @summary Invalidating JSSE session on server causes SSLProtocolException
- * @ignore incompatible with disabled unsafe renegotiation (6898739), please
- * reenable when safe renegotiation is implemented.
* @author Brad Wetmore
*/
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,8 +26,6 @@
* @bug 4280338
* @summary "Unsupported SSL message version" SSLProtocolException
* w/SSL_RSA_WITH_NULL_MD5
- * @ignore incompatible with disabled unsafe renegotiation (6898739), please
- * reenable when safe renegotiation is implemented.
*
* @author Ram Marti
* @author Brad Wetmore
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
* @test
* @bug 4948079
* @summary SSLEngineResult needs updating [none yet]
- * @ignore incompatible with disabled unsafe renegotiation (6898739), please
- * reenable when safe renegotiation is implemented.
*
* This is a simple hack to test a bunch of conditions and check
* their return codes.
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,8 +26,6 @@
* @bug 4495742
* @summary Add non-blocking SSL/TLS functionality, usable with any
* I/O abstraction
- * @ignore incompatible with disabled unsafe renegotiation (6898739), please
- * reenable when safe renegotiation is implemented.
*
* This is a bit hacky, meant to test various conditions. The main
* thing I wanted to do with this was to do buffer reads/writes
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
* @test
* @bug 4495742
* @summary Demonstrate SSLEngine switch from no client auth to client auth.
- * @ignore incompatible with disabled unsafe renegotiation (6898739), please
- * reenable when safe renegotiation is implemented.
*
* @author Brad R. Wetmore
*/
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -119,6 +119,15 @@
return;
}
+ /*
+ * Don't run the SCSV suite
+ */
+ if (suite.equals("TLS_EMPTY_RENEGOTIATION_INFO_SCSV")) {
+ System.out.println("Ignoring SCSV suite");
+ return;
+ }
+
+
if (!suite.contains("DH_anon")) {
ssle2.setNeedClientAuth(true);
}
--- a/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java Tue Nov 02 22:15:35 2010 -0700
@@ -64,6 +64,8 @@
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+ "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
+
};
private final static String[] ENABLED_UNLIMITED = {
@@ -101,6 +103,8 @@
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+ "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
+
};
// supported ciphersuites using default JCE policy jurisdiction files
@@ -133,6 +137,7 @@
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+ "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
"SSL_RSA_WITH_NULL_MD5",
"SSL_RSA_WITH_NULL_SHA",
@@ -160,6 +165,7 @@
"TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
"TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
"TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
+
};
// supported ciphersuites using unlimited JCE policy jurisdiction files
@@ -199,6 +205,7 @@
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+ "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
"SSL_RSA_WITH_NULL_MD5",
"SSL_RSA_WITH_NULL_SHA",
@@ -228,6 +235,7 @@
"TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
"TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
"TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
+
};
private static void showSuites(String[] suites) {
--- a/jdk/test/sun/security/ssl/sanity/interop/CipherTest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/sun/security/ssl/sanity/interop/CipherTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -115,10 +115,11 @@
}
boolean isEnabled() {
-// return cipherSuite.equals("SSL_RSA_WITH_RC4_128_MD5") &&
-// (clientAuth != null);
-// return cipherSuite.indexOf("_RSA_") != -1;
-// return cipherSuite.indexOf("DH_anon") != -1;
+ // ignore SCSV
+ if (cipherSuite.equals("TLS_EMPTY_RENEGOTIATION_INFO_SCSV")) {
+ return false;
+ }
+
return true;
}
--- a/jdk/test/tools/jar/UpdateManifest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/tools/jar/UpdateManifest.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 6434207 6442687
+ * @bug 6434207 6442687 6984046
* @summary Ensure that jar ufm actually updates the
* existing jar file's manifest with contents of the
* manifest file.
@@ -87,7 +87,7 @@
if (!debug) manifestOrig.deleteOnExit();
PrintWriter pw = new PrintWriter(manifestOrig);
pw.println("Manifest-Version: 1.0");
- pw.println("Created-By: 1.6.0-internal (Sun Microsystems Inc.)");
+ pw.println("Created-By: 1.7.0-internal (Oracle Corporation)");
pw.println("");
pw.println(animal);
pw.println(specTitle);
@@ -109,7 +109,7 @@
if (!debug) manifestUpdate.deleteOnExit();
pw = new PrintWriter(manifestUpdate);
final String createdBy =
- "Created-By: 1.5.0-special (Sun Microsystems Inc.)";
+ "Created-By: 1.7.0-special (Oracle Corporation)";
final String specVersion =
"Specification-Version: 1.0.0.0";
pw.println(createdBy); // replaces line in the original
--- a/jdk/test/tools/launcher/Arrrghs.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/tools/launcher/Arrrghs.java Tue Nov 02 22:15:35 2010 -0700
@@ -24,6 +24,7 @@
/**
* @test
* @bug 5030233 6214916 6356475 6571029 6684582 6742159 4459600 6758881 6753938
+ * 6894719
* @summary Argument parsing validation.
* @compile -XDignore.symbol.file Arrrghs.java TestHelper.java
* @run main Arrrghs
@@ -326,20 +327,36 @@
System.out.println(tr);
}
+ static void test6894719() {
+ // test both arguments to ensure they exist
+ TestHelper.TestResult tr = null;
+ tr = TestHelper.doExec(TestHelper.javaCmd,
+ "-no-jre-restrict-search", "-version");
+ tr.checkPositive();
+ System.out.println(tr);
+
+ tr = TestHelper.doExec(TestHelper.javaCmd,
+ "-jre-restrict-search", "-version");
+ tr.checkPositive();
+ System.out.println(tr);
+ }
/**
* @param args the command line arguments
* @throws java.io.FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
- if (TestHelper.debug) System.out.println("Starting Arrrghs tests");
- quoteParsingTests();
- runBasicErrorMessageTests();
- runMainMethodTests();
- if (TestHelper.testExitValue > 0) {
- System.out.println("Total of " + TestHelper.testExitValue + " failed");
- System.exit(1);
- } else {
- System.out.println("All tests pass");
- }
+ if (TestHelper.debug) {
+ System.out.println("Starting Arrrghs tests");
+ }
+ quoteParsingTests();
+ runBasicErrorMessageTests();
+ runMainMethodTests();
+ test6894719();
+ if (TestHelper.testExitValue > 0) {
+ System.out.println("Total of " + TestHelper.testExitValue + " failed");
+ System.exit(1);
+ } else {
+ System.out.println("All tests pass");
}
}
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/tools/pack200/AttributeTests.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+/*
+ * @test
+ * @bug 6982312
+ * @summary tests various classfile format and attribute handling by pack200
+ * @compile -XDignore.symbol.file Utils.java AttributeTests.java
+ * @run main AttributeTests
+ * @author ksrini
+ */
+public class AttributeTests {
+
+ public static void main(String... args) throws Exception {
+ test6982312();
+ test6746111();
+ }
+ /*
+ * This is an interim test, which ensures pack200 handles JSR-292 related
+ * classfile changes seamlessly, until all the classfile changes in jdk7
+ * and jdk8 are fully supported. At that time this test should be jettisoned,
+ * along with the associated jar file.
+ *
+ * The jar file contains sources and classes noting the classes were
+ * derived by using the javac from the lambda project,
+ * see http://openjdk.java.net/projects/lambda/.
+ * Therefore the classes contained in the jar cannot be compiled, using
+ * the standard jdk7's javac compiler.
+ */
+ static void test6982312() throws IOException {
+ String pack200Cmd = Utils.getPack200Cmd();
+ File dynJar = new File(".", "dyn.jar");
+ Utils.copyFile(new File(Utils.TEST_SRC_DIR, "dyn.jar"), dynJar);
+ File testJar = new File(".", "test.jar");
+ List<String> cmds = new ArrayList<String>();
+ cmds.add(pack200Cmd);
+ cmds.add("--repack");
+ cmds.add(testJar.getAbsolutePath());
+ cmds.add(dynJar.getAbsolutePath());
+ Utils.runExec(cmds);
+ /*
+ * compare the repacked jar bit-wise, as all the files
+ * should be transmitted "as-is".
+ */
+ Utils.doCompareBitWise(dynJar.getAbsoluteFile(), testJar.getAbsoluteFile());
+ testJar.delete();
+ dynJar.delete();
+ }
+
+ /*
+ * this test checks to see if we get the expected strings for output
+ */
+ static void test6746111() throws Exception {
+ String pack200Cmd = Utils.getPack200Cmd();
+ File badAttrJar = new File(".", "badattr.jar");
+ Utils.copyFile(new File(Utils.TEST_SRC_DIR, "badattr.jar"), badAttrJar);
+ File testJar = new File(".", "test.jar");
+ List<String> cmds = new ArrayList<String>();
+ cmds.add(pack200Cmd);
+ cmds.add("--repack");
+ cmds.add("-v");
+ cmds.add(testJar.getAbsolutePath());
+ cmds.add(badAttrJar.getAbsolutePath());
+ List<String> output = Utils.runExec(cmds);
+ /*
+ * compare the repacked jar bit-wise, as all the files
+ * should be transmitted "as-is".
+ */
+ Utils.doCompareBitWise(badAttrJar.getAbsoluteFile(), testJar.getAbsoluteFile());
+ String[] expectedStrings = {
+ "WARNING: Passing class file uncompressed due to unrecognized" +
+ " attribute: Foo.class",
+ "INFO: com.sun.java.util.jar.pack.Attribute$FormatException: " +
+ "class attribute \"XourceFile\": is unknown attribute " +
+ "in class Foo",
+ "INFO: com.sun.java.util.jar.pack.ClassReader$ClassFormatException: " +
+ "AnnotationDefault: attribute length cannot be zero, in Test.message()",
+ "WARNING: Passing class file uncompressed due to unknown class format: Test.class"
+ };
+ List<String> notfoundList = new ArrayList<String>();
+ notfoundList.addAll(Arrays.asList(expectedStrings));
+ // make sure the expected messages are emitted
+ for (String x : output) {
+ findString(x, notfoundList, expectedStrings);
+ }
+ if (!notfoundList.isEmpty()) {
+ System.out.println("Not found:");
+ for (String x : notfoundList) {
+ System.out.println(x);
+ }
+ throw new Exception("Test fails: " + notfoundList.size() +
+ " expected strings not found");
+ }
+ testJar.delete();
+ badAttrJar.delete();
+ }
+
+ private static void findString(String outputStr, List<String> notfoundList,
+ String[] expectedStrings) {
+ for (String y : expectedStrings) {
+ if (outputStr.contains(y)) {
+ notfoundList.remove(y);
+ return;
+ }
+ }
+ }
+}
--- a/jdk/test/tools/pack200/PackageVersionTest.java Fri Oct 29 11:49:47 2010 +0400
+++ b/jdk/test/tools/pack200/PackageVersionTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -24,7 +24,7 @@
/*
* @test
- * @bug 6712743
+ * @bug 6712743 6991164
* @summary verify package versions
* @compile -XDignore.symbol.file Utils.java PackageVersionTest.java
* @run main PackageVersionTest
@@ -40,6 +40,7 @@
import java.util.jar.JarFile;
import java.util.jar.Pack200;
import java.util.jar.Pack200.Packer;
+import java.util.jar.Pack200.Unpacker;
public class PackageVersionTest {
private static final File javaHome = new File(System.getProperty("java.home"));
@@ -60,6 +61,7 @@
createClassFile("Test6");
createClassFile("Test7");
+ verify6991164();
verifyPack("Test5.class", JAVA5_PACKAGE_MAJOR_VERSION,
JAVA5_PACKAGE_MINOR_VERSION);
@@ -75,6 +77,18 @@
JAVA5_PACKAGE_MINOR_VERSION);
}
+ static void verify6991164() {
+ Unpacker unpacker = Pack200.newUnpacker();
+ String versionStr = unpacker.toString();
+ String expected = "Pack200, Vendor: " +
+ System.getProperty("java.vendor") + ", Version: " +
+ JAVA6_PACKAGE_MAJOR_VERSION + "." + JAVA6_PACKAGE_MINOR_VERSION;
+ if (!versionStr.equals(expected)) {
+ System.out.println("Expected: " + expected);
+ System.out.println("Obtained: " + versionStr);
+ throw new RuntimeException("did not get expected string " + expected);
+ }
+ }
static void createClassFile(String name) {
createJavaFile(name);
Binary file jdk/test/tools/pack200/badattr.jar has changed
Binary file jdk/test/tools/pack200/dyn.jar has changed
--- a/langtools/.hgtags Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/.hgtags Tue Nov 02 22:15:35 2010 -0700
@@ -88,3 +88,6 @@
8bec624274ef8535720cff553374347c2f4f5fb2 jdk7-b111
fd2579b80b83bf5d4289426016c7d29174ba5dd9 jdk7-b112
6dbd2d869b0573fa5b799a23cccff47d20c12696 jdk7-b113
+e4e7408cdc5b3d91d39161e1e94aad576ecc2dcd jdk7-b114
+01e8ac5fbefd35d2d9a0996213cf2390fd164e57 jdk7-b115
+857bfcea3f30cb5f4ae96f46a53ae1c772f9b0e5 jdk7-b116
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Tue Nov 02 22:15:35 2010 -0700
@@ -250,9 +250,13 @@
/**
* Sets "value" to an ExceptionProxy indicating a type mismatch.
*/
- private void typeMismatch(final Method method, final Attribute attr) {
- value = new ExceptionProxy() {
+ private void typeMismatch(Method method, final Attribute attr) {
+ class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy {
private static final long serialVersionUID = 8473323277815075163L;
+ transient final Method method;
+ AnnotationTypeMismatchExceptionProxy(Method method) {
+ this.method = method;
+ }
public String toString() {
return "<error>"; // eg: @Anno(value=<error>)
}
@@ -260,7 +264,8 @@
return new AnnotationTypeMismatchException(method,
attr.type.toString());
}
- };
+ }
+ value = new AnnotationTypeMismatchExceptionProxy(method);
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java Tue Nov 02 22:15:35 2010 -0700
@@ -553,12 +553,24 @@
//the enclosing tree E, as follows: if E is a cast, then use the
//target type of the cast expression as a return type; if E is an
//expression statement, the return type is 'void' - otherwise the
- //return type is simply 'Object'.
- switch (env.outer.tree.getTag()) {
+ //return type is simply 'Object'. A correctness check ensures that
+ //env.next refers to the lexically enclosing environment in which
+ //the polymorphic signature call environment is nested.
+
+ switch (env.next.tree.getTag()) {
case JCTree.TYPECAST:
- restype = ((JCTypeCast)env.outer.tree).clazz.type; break;
+ JCTypeCast castTree = (JCTypeCast)env.next.tree;
+ restype = (castTree.expr == env.tree) ?
+ castTree.clazz.type :
+ syms.objectType;
+ break;
case JCTree.EXEC:
- restype = syms.voidType; break;
+ JCTree.JCExpressionStatement execTree =
+ (JCTree.JCExpressionStatement)env.next.tree;
+ restype = (execTree.expr == env.tree) ?
+ syms.voidType :
+ syms.objectType;
+ break;
default:
restype = syms.objectType;
}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Tue Nov 02 22:15:35 2010 -0700
@@ -668,9 +668,9 @@
public void visitTree(JCTree tree) {
}
-
public void visitErroneous(JCErroneous tree) {
- memberEnter(tree.errs, env);
+ if (tree.errs != null)
+ memberEnter(tree.errs, env);
}
public Env<AttrContext> getMethodEnv(JCMethodDecl tree, Env<AttrContext> env) {
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Tue Nov 02 22:15:35 2010 -0700
@@ -511,7 +511,7 @@
protected boolean shouldStop(CompileState cs) {
if (shouldStopPolicy == null)
- return (errorCount() > 0);
+ return (errorCount() > 0 || unrecoverableError());
else
return cs.ordinal() > shouldStopPolicy.ordinal();
}
--- a/langtools/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java Tue Nov 02 22:15:35 2010 -0700
@@ -250,9 +250,13 @@
/**
* Sets "value" to an ExceptionProxy indicating a type mismatch.
*/
- private void typeMismatch(final Method method, final Attribute attr) {
- value = new ExceptionProxy() {
+ private void typeMismatch(Method method, final Attribute attr) {
+ class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy {
static final long serialVersionUID = 269;
+ transient final Method method;
+ AnnotationTypeMismatchExceptionProxy(Method method) {
+ this.method = method;
+ }
public String toString() {
return "<error>"; // eg: @Anno(value=<error>)
}
@@ -260,7 +264,8 @@
return new AnnotationTypeMismatchException(method,
attr.type.toString());
}
- };
+ }
+ value = new AnnotationTypeMismatchExceptionProxy(method);
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/model/JavacElements.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/model/JavacElements.java Tue Nov 02 22:15:35 2010 -0700
@@ -66,32 +66,26 @@
private Types types;
private Enter enter;
- private static final Context.Key<JavacElements> KEY =
- new Context.Key<JavacElements>();
-
public static JavacElements instance(Context context) {
- JavacElements instance = context.get(KEY);
- if (instance == null) {
+ JavacElements instance = context.get(JavacElements.class);
+ if (instance == null)
instance = new JavacElements(context);
- context.put(KEY, instance);
- }
return instance;
}
/**
* Public for use only by JavacProcessingEnvironment
*/
- // TODO JavacElements constructor should be protected
- public JavacElements(Context context) {
+ protected JavacElements(Context context) {
setContext(context);
}
/**
* Use a new context. May be called from outside to update
* internal state for a new annotation-processing round.
- * This instance is *not* then registered with the new context.
*/
public void setContext(Context context) {
+ context.put(JavacElements.class, this);
javaCompiler = JavaCompiler.instance(context);
syms = Symtab.instance(context);
names = Names.instance(context);
--- a/langtools/src/share/classes/com/sun/tools/javac/model/JavacTypes.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/model/JavacTypes.java Tue Nov 02 22:15:35 2010 -0700
@@ -47,32 +47,26 @@
private Symtab syms;
private Types types;
- private static final Context.Key<JavacTypes> KEY =
- new Context.Key<JavacTypes>();
-
public static JavacTypes instance(Context context) {
- JavacTypes instance = context.get(KEY);
- if (instance == null) {
+ JavacTypes instance = context.get(JavacTypes.class);
+ if (instance == null)
instance = new JavacTypes(context);
- context.put(KEY, instance);
- }
return instance;
}
/**
* Public for use only by JavacProcessingEnvironment
*/
- // TODO JavacTypes constructor should be protected
- public JavacTypes(Context context) {
+ protected JavacTypes(Context context) {
setContext(context);
}
/**
* Use a new context. May be called from outside to update
* internal state for a new annotation-processing round.
- * This instance is *not* then registered with the new context.
*/
public void setContext(Context context) {
+ context.put(JavacTypes.class, this);
syms = Symtab.instance(context);
types = Types.instance(context);
}
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Tue Nov 02 22:15:35 2010 -0700
@@ -173,12 +173,12 @@
platformAnnotations = initPlatformAnnotations();
foundTypeProcessors = false;
- // Initialize services before any processors are initialzied
+ // Initialize services before any processors are initialized
// in case processors use them.
filer = new JavacFiler(context);
messager = new JavacMessager(context, this);
- elementUtils = new JavacElements(context);
- typeUtils = new JavacTypes(context);
+ elementUtils = JavacElements.instance(context);
+ typeUtils = JavacTypes.instance(context);
processorOptions = initProcessorOptions(context);
unmatchedProcessorOptions = initUnmatchedProcessorOptions();
messages = JavacMessages.instance(context);
@@ -865,8 +865,6 @@
this(prev.nextContext(), prev.number+1, prev.compiler.log.nwarnings);
this.genClassFiles = prev.genClassFiles;
- updateProcessingState();
-
List<JCCompilationUnit> parsedFiles = compiler.parseFiles(newSourceFiles);
roots = cleanTrees(prev.roots).appendList(parsedFiles);
@@ -1029,15 +1027,6 @@
log.reportDeferredDiagnostics(kinds);
}
- /** Update the processing state for the current context. */
- private void updateProcessingState() {
- filer.newRound(context);
- messager.newRound(context);
-
- elementUtils.setContext(context);
- typeUtils.setContext(context);
- }
-
/** Print info about this round. */
private void printRoundInfo(boolean lastRound) {
if (printRounds || verbose) {
@@ -1100,6 +1089,11 @@
JavaCompiler nextCompiler = JavaCompiler.instance(next);
nextCompiler.initRound(oldCompiler);
+ filer.newRound(next);
+ messager.newRound(next);
+ elementUtils.setContext(next);
+ typeUtils.setContext(next);
+
JavacTaskImpl task = context.get(JavacTaskImpl.class);
if (task != null) {
next.put(JavacTaskImpl.class, task);
--- a/langtools/src/share/classes/com/sun/tools/javah/JNI.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javah/JNI.java Tue Nov 02 22:15:35 2010 -0700
@@ -59,72 +59,76 @@
}
public void write(OutputStream o, TypeElement clazz) throws Util.Exit {
- String cname = mangler.mangle(clazz.getQualifiedName(), Mangle.Type.CLASS);
- PrintWriter pw = wrapWriter(o);
- pw.println(guardBegin(cname));
- pw.println(cppGuardBegin());
+ try {
+ String cname = mangler.mangle(clazz.getQualifiedName(), Mangle.Type.CLASS);
+ PrintWriter pw = wrapWriter(o);
+ pw.println(guardBegin(cname));
+ pw.println(cppGuardBegin());
- /* Write statics. */
- List<VariableElement> classfields = getAllFields(clazz);
+ /* Write statics. */
+ List<VariableElement> classfields = getAllFields(clazz);
- for (VariableElement v: classfields) {
- if (!v.getModifiers().contains(Modifier.STATIC))
- continue;
- String s = null;
- s = defineForStatic(clazz, v);
- if (s != null) {
- pw.println(s);
+ for (VariableElement v: classfields) {
+ if (!v.getModifiers().contains(Modifier.STATIC))
+ continue;
+ String s = null;
+ s = defineForStatic(clazz, v);
+ if (s != null) {
+ pw.println(s);
+ }
}
- }
- /* Write methods. */
- List<ExecutableElement> classmethods = ElementFilter.methodsIn(clazz.getEnclosedElements());
- for (ExecutableElement md: classmethods) {
- if(md.getModifiers().contains(Modifier.NATIVE)){
- TypeMirror mtr = types.erasure(md.getReturnType());
- String sig = signature(md);
- TypeSignature newtypesig = new TypeSignature(elems);
- CharSequence methodName = md.getSimpleName();
- boolean longName = false;
- for (ExecutableElement md2: classmethods) {
- if ((md2 != md)
- && (methodName.equals(md2.getSimpleName()))
- && (md2.getModifiers().contains(Modifier.NATIVE)))
- longName = true;
+ /* Write methods. */
+ List<ExecutableElement> classmethods = ElementFilter.methodsIn(clazz.getEnclosedElements());
+ for (ExecutableElement md: classmethods) {
+ if(md.getModifiers().contains(Modifier.NATIVE)){
+ TypeMirror mtr = types.erasure(md.getReturnType());
+ String sig = signature(md);
+ TypeSignature newtypesig = new TypeSignature(elems);
+ CharSequence methodName = md.getSimpleName();
+ boolean longName = false;
+ for (ExecutableElement md2: classmethods) {
+ if ((md2 != md)
+ && (methodName.equals(md2.getSimpleName()))
+ && (md2.getModifiers().contains(Modifier.NATIVE)))
+ longName = true;
+ }
+ pw.println("/*");
+ pw.println(" * Class: " + cname);
+ pw.println(" * Method: " +
+ mangler.mangle(methodName, Mangle.Type.FIELDSTUB));
+ pw.println(" * Signature: " + newtypesig.getTypeSignature(sig, mtr));
+ pw.println(" */");
+ pw.println("JNIEXPORT " + jniType(mtr) +
+ " JNICALL " +
+ mangler.mangleMethod(md, clazz,
+ (longName) ?
+ Mangle.Type.METHOD_JNI_LONG :
+ Mangle.Type.METHOD_JNI_SHORT));
+ pw.print(" (JNIEnv *, ");
+ List<? extends VariableElement> paramargs = md.getParameters();
+ List<TypeMirror> args = new ArrayList<TypeMirror>();
+ for (VariableElement p: paramargs) {
+ args.add(types.erasure(p.asType()));
+ }
+ if (md.getModifiers().contains(Modifier.STATIC))
+ pw.print("jclass");
+ else
+ pw.print("jobject");
+
+ for (TypeMirror arg: args) {
+ pw.print(", ");
+ pw.print(jniType(arg));
+ }
+ pw.println(");" + lineSep);
}
- pw.println("/*");
- pw.println(" * Class: " + cname);
- pw.println(" * Method: " +
- mangler.mangle(methodName, Mangle.Type.FIELDSTUB));
- pw.println(" * Signature: " + newtypesig.getTypeSignature(sig, mtr));
- pw.println(" */");
- pw.println("JNIEXPORT " + jniType(mtr) +
- " JNICALL " +
- mangler.mangleMethod(md, clazz,
- (longName) ?
- Mangle.Type.METHOD_JNI_LONG :
- Mangle.Type.METHOD_JNI_SHORT));
- pw.print(" (JNIEnv *, ");
- List<? extends VariableElement> paramargs = md.getParameters();
- List<TypeMirror> args = new ArrayList<TypeMirror>();
- for (VariableElement p: paramargs) {
- args.add(types.erasure(p.asType()));
- }
- if (md.getModifiers().contains(Modifier.STATIC))
- pw.print("jclass");
- else
- pw.print("jobject");
-
- for (TypeMirror arg: args) {
- pw.print(", ");
- pw.print(jniType(arg));
- }
- pw.println(");" + lineSep);
}
+ pw.println(cppGuardEnd());
+ pw.println(guardEnd(cname));
+ } catch (TypeSignature.SignatureException e) {
+ util.error("jni.sigerror", e.getMessage());
}
- pw.println(cppGuardEnd());
- pw.println(guardEnd(cname));
}
--- a/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java Tue Nov 02 22:15:35 2010 -0700
@@ -46,9 +46,9 @@
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.Messager;
+import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.ExecutableElement;
@@ -71,6 +71,9 @@
import javax.tools.StandardJavaFileManager;
import javax.tools.StandardLocation;
import javax.tools.ToolProvider;
+import static javax.tools.Diagnostic.Kind.*;
+
+import com.sun.tools.javac.code.Symbol.CompletionFailure;
/**
* Javah generates support files for native methods.
@@ -173,7 +176,7 @@
}
},
- new Option(false, "-help", "--help", "-?") {
+ new Option(false, "-h", "-help", "--help", "-?") {
void process(JavahTask task, String opt, String arg) {
task.help = true;
}
@@ -233,6 +236,15 @@
task.doubleAlign = true;
}
},
+
+ new HiddenOption(false) {
+ boolean matches(String opt) {
+ return opt.startsWith("-XD");
+ }
+ void process(JavahTask task, String opt, String arg) {
+ task.javac_extras.add(opt);
+ }
+ },
};
JavahTask() {
@@ -326,6 +338,8 @@
} catch (InternalError e) {
diagnosticListener.report(createDiagnostic("err.internal.error", e.getMessage()));
return 1;
+ } catch (Util.Exit e) {
+ return e.exitValue;
} finally {
log.flush();
}
@@ -475,7 +489,9 @@
((JavahFileManager) fileManager).setIgnoreSymbolFile(true);
JavaCompiler c = ToolProvider.getSystemJavaCompiler();
- List<String> opts = Arrays.asList("-proc:only");
+ List<String> opts = new ArrayList<String>();
+ opts.add("-proc:only");
+ opts.addAll(javac_extras);
CompilationTask t = c.getTask(log, fileManager, diagnosticListener, opts, internalize(classes), null);
JavahProcessor p = new JavahProcessor(g);
t.setProcessors(Collections.singleton(p));
@@ -642,6 +658,7 @@
boolean doubleAlign;
boolean force;
boolean old;
+ Set<String> javac_extras = new LinkedHashSet<String>();
PrintWriter log;
JavaFileManager fileManager;
@@ -652,30 +669,45 @@
private static final String progname = "javah";
@SupportedAnnotationTypes("*")
- @SupportedSourceVersion(SourceVersion.RELEASE_7)
class JavahProcessor extends AbstractProcessor {
+ private Messager messager;
+
JavahProcessor(Gen g) {
this.g = g;
}
- public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
- Messager messager = processingEnv.getMessager();
- Set<TypeElement> classes = getAllClasses(ElementFilter.typesIn(roundEnv.getRootElements()));
- if (classes.size() > 0) {
- checkMethodParameters(classes);
- g.setProcessingEnvironment(processingEnv);
- g.setClasses(classes);
+ @Override
+ public SourceVersion getSupportedSourceVersion() {
+ // since this is co-bundled with javac, we can assume it supports
+ // the latest source version
+ return SourceVersion.latest();
+ }
+
+ @Override
+ public void init(ProcessingEnvironment pEnv) {
+ super.init(pEnv);
+ messager = processingEnv.getMessager();
+ }
- try {
+ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ try {
+ Set<TypeElement> classes = getAllClasses(ElementFilter.typesIn(roundEnv.getRootElements()));
+ if (classes.size() > 0) {
+ checkMethodParameters(classes);
+ g.setProcessingEnvironment(processingEnv);
+ g.setClasses(classes);
g.run();
- } catch (ClassNotFoundException cnfe) {
- messager.printMessage(Diagnostic.Kind.ERROR, getMessage("class.not.found", cnfe.getMessage()));
- } catch (IOException ioe) {
- messager.printMessage(Diagnostic.Kind.ERROR, getMessage("io.exception", ioe.getMessage()));
- } catch (Util.Exit e) {
- exit = e;
}
+ } catch (CompletionFailure cf) {
+ messager.printMessage(ERROR, getMessage("class.not.found", cf.sym.getQualifiedName().toString()));
+ } catch (ClassNotFoundException cnfe) {
+ messager.printMessage(ERROR, getMessage("class.not.found", cnfe.getMessage()));
+ } catch (IOException ioe) {
+ messager.printMessage(ERROR, getMessage("io.exception", ioe.getMessage()));
+ } catch (Util.Exit e) {
+ exit = e;
}
+
return true;
}
--- a/langtools/src/share/classes/com/sun/tools/javah/LLNI.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javah/LLNI.java Tue Nov 02 22:15:35 2010 -0700
@@ -74,16 +74,21 @@
}
protected void write(OutputStream o, TypeElement clazz) throws Util.Exit {
- String cname = mangleClassName(clazz.getQualifiedName().toString());
- PrintWriter pw = wrapWriter(o);
- fields = ElementFilter.fieldsIn(clazz.getEnclosedElements());
- methods = ElementFilter.methodsIn(clazz.getEnclosedElements());
- generateDeclsForClass(pw, clazz, cname);
- // FIXME check if errors occurred on the PrintWriter and throw exception if so
+ try {
+ String cname = mangleClassName(clazz.getQualifiedName().toString());
+ PrintWriter pw = wrapWriter(o);
+ fields = ElementFilter.fieldsIn(clazz.getEnclosedElements());
+ methods = ElementFilter.methodsIn(clazz.getEnclosedElements());
+ generateDeclsForClass(pw, clazz, cname);
+ // FIXME check if errors occurred on the PrintWriter and throw exception if so
+ } catch (TypeSignature.SignatureException e) {
+ util.error("llni.sigerror", e.getMessage());
+ }
}
protected void generateDeclsForClass(PrintWriter pw,
- TypeElement clazz, String cname) throws Util.Exit {
+ TypeElement clazz, String cname)
+ throws TypeSignature.SignatureException, Util.Exit {
doneHandleTypes = new HashSet<String>();
/* The following handle types are predefined in "typedefs.h". Suppress
inclusion in the output by generating them "into the blue" here. */
@@ -127,7 +132,8 @@
.replace(innerDelim, '_');
}
- protected void forwardDecls(PrintWriter pw, TypeElement clazz) {
+ protected void forwardDecls(PrintWriter pw, TypeElement clazz)
+ throws TypeSignature.SignatureException {
TypeElement object = elems.getTypeElement("java.lang.Object");
if (clazz.equals(object))
return;
@@ -403,7 +409,7 @@
protected void methodSectionForClass(PrintWriter pw,
TypeElement clazz, String cname)
- throws Util.Exit {
+ throws TypeSignature.SignatureException, Util.Exit {
String methods = methodDecls(clazz, cname);
if (methods.length() != 0) {
@@ -418,7 +424,8 @@
}
}
- protected String methodDecls(TypeElement clazz, String cname) throws Util.Exit {
+ protected String methodDecls(TypeElement clazz, String cname)
+ throws TypeSignature.SignatureException, Util.Exit {
String res = "";
for (ExecutableElement method: methods) {
@@ -430,7 +437,7 @@
protected String methodDecl(ExecutableElement method,
TypeElement clazz, String cname)
- throws Util.Exit {
+ throws TypeSignature.SignatureException, Util.Exit {
String res = null;
TypeMirror retType = types.erasure(method.getReturnType());
@@ -474,7 +481,8 @@
}
protected final String jniMethodName(ExecutableElement method, String cname,
- boolean longName) {
+ boolean longName)
+ throws TypeSignature.SignatureException {
String res = "Java_" + cname + "_" + method.getSimpleName();
if (longName) {
--- a/langtools/src/share/classes/com/sun/tools/javah/Mangle.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javah/Mangle.java Tue Nov 02 22:15:35 2010 -0700
@@ -114,7 +114,7 @@
}
public String mangleMethod(ExecutableElement method, TypeElement clazz,
- int mtype) {
+ int mtype) throws TypeSignature.SignatureException {
StringBuffer result = new StringBuffer(100);
result.append("Java_");
--- a/langtools/src/share/classes/com/sun/tools/javah/TypeSignature.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javah/TypeSignature.java Tue Nov 02 22:15:35 2010 -0700
@@ -51,7 +51,13 @@
* @author Sucheta Dambalkar
*/
-public class TypeSignature{
+public class TypeSignature {
+ static class SignatureException extends Exception {
+ private static final long serialVersionUID = 1L;
+ SignatureException(String reason) {
+ super(reason);
+ }
+ }
Elements elems;
@@ -78,14 +84,15 @@
/*
* Returns the type signature of a field according to JVM specs
*/
- public String getTypeSignature(String javasignature){
+ public String getTypeSignature(String javasignature) throws SignatureException {
return getParamJVMSignature(javasignature);
}
/*
* Returns the type signature of a method according to JVM specs
*/
- public String getTypeSignature(String javasignature, TypeMirror returnType){
+ public String getTypeSignature(String javasignature, TypeMirror returnType)
+ throws SignatureException {
String signature = null; //Java type signature.
String typeSignature = null; //Internal type signature.
List<String> params = new ArrayList<String>(); //List of parameters.
@@ -166,7 +173,7 @@
/*
* Returns internal signature of a parameter.
*/
- private String getParamJVMSignature(String paramsig) {
+ private String getParamJVMSignature(String paramsig) throws SignatureException {
String paramJVMSig = "";
String componentType ="";
@@ -197,7 +204,7 @@
/*
* Returns internal signature of a component.
*/
- private String getComponentType(String componentType){
+ private String getComponentType(String componentType) throws SignatureException {
String JVMSig = "";
@@ -216,8 +223,7 @@
TypeElement classNameDoc = elems.getTypeElement(componentType);
if(classNameDoc == null){
- System.out.println("Invalid class type for " + componentType);
- new Exception().printStackTrace();
+ throw new SignatureException(componentType);
}else {
String classname = classNameDoc.getQualifiedName().toString();
String newclassname = classname.replace('.', '/');
--- a/langtools/src/share/classes/com/sun/tools/javah/resources/l10n.properties Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/src/share/classes/com/sun/tools/javah/resources/l10n.properties Tue Nov 02 22:15:35 2010 -0700
@@ -45,6 +45,8 @@
Can''t mix options -jni and -llni. Try -help.
jni.no.stubs=\
JNI does not require stubs, please refer to the JNI documentation.
+jni.sigerror=\
+ Cannot determine signature for {0}
dir.file.mixed=\
Can''t mix options -d and -o. Try -help.
no.classes.specified=\
@@ -94,7 +96,7 @@
\ -d <dir> Output directory
main.opt.v=\
\ -v -verbose Enable verbose output
-main.opt.help=\
+main.opt.h=\
\ -h --help -? Print this message
main.opt.version=\
\ -version Print version information
--- a/langtools/test/tools/javac/T6705935.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/test/tools/javac/T6705935.java Tue Nov 02 22:15:35 2010 -0700
@@ -31,6 +31,8 @@
import java.util.*;
import javax.tools.*;
import com.sun.tools.javac.file.*;
+import com.sun.tools.javac.file.ZipArchive.ZipFileObject;
+import com.sun.tools.javac.file.ZipFileIndexArchive.ZipFileIndexFileObject;
public class T6705935 {
public static void main(String... args) throws Exception {
@@ -43,11 +45,22 @@
java_home = java_home.getParentFile();
JavaCompiler c = ToolProvider.getSystemJavaCompiler();
- JavaFileManager fm = c.getStandardFileManager(null, null, null);
+ StandardJavaFileManager fm = c.getStandardFileManager(null, null, null);
+ //System.err.println("platform class path: " + asList(fm.getLocation(StandardLocation.PLATFORM_CLASS_PATH)));
+
for (JavaFileObject fo: fm.list(StandardLocation.PLATFORM_CLASS_PATH,
"java.lang",
Collections.singleton(JavaFileObject.Kind.CLASS),
false)) {
+ test++;
+
+ if (!(fo instanceof ZipFileObject || fo instanceof ZipFileIndexFileObject)) {
+ System.out.println("Skip " + fo.getClass().getSimpleName() + " " + fo.getName());
+ skip++;
+ continue;
+ }
+
+ //System.err.println(fo.getName());
String p = fo.getName();
int bra = p.indexOf("(");
int ket = p.indexOf(")");
@@ -61,5 +74,26 @@
throw new Exception("bad path: " + p);
}
+
+ if (test == 0)
+ throw new Exception("no files found");
+
+ if (skip == 0)
+ System.out.println(test + " files found");
+ else
+ System.out.println(test + " files found, " + skip + " files skipped");
+
+ if (test == skip)
+ System.out.println("Warning: all files skipped; no platform classes found in zip files.");
}
+
+ private <T> List<T> asList(Iterable<? extends T> items) {
+ List<T> list = new ArrayList<T>();
+ for (T item: items)
+ list.add(item);
+ return list;
+ }
+
+ private int skip;
+ private int test;
}
--- a/langtools/test/tools/javac/api/6406133/Erroneous.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/test/tools/javac/api/6406133/Erroneous.java Tue Nov 02 22:15:35 2010 -0700
@@ -1,4 +1,26 @@
+/*
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
@Deprecated
-class A {
- class A {}
+class A extends Missing {
}
--- a/langtools/test/tools/javac/diags/CheckExamples.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/test/tools/javac/diags/CheckExamples.java Tue Nov 02 22:15:35 2010 -0700
@@ -40,7 +40,7 @@
* compiler.properties bundle. A list of exceptions may be given in the
* not-yet.txt file. Entries on the not-yet.txt list should not be
* covered by examples.
- * When new keys are added to the resource buncle, it is strongly recommended
+ * When new keys are added to the resource bundle, it is strongly recommended
* that corresponding new examples be added here, if at all practical, instead
* of simply and lazily being added to the not-yet.txt list.
*/
--- a/langtools/test/tools/javac/diags/FileManager.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/test/tools/javac/diags/FileManager.java Tue Nov 02 22:15:35 2010 -0700
@@ -177,12 +177,14 @@
}
void checkRead() throws IOException {
- if (cantRead != null && cantRead.matcher(getName()).matches())
+ String canonName = getName().replace(File.separatorChar, '/');
+ if (cantRead != null && cantRead.matcher(canonName).matches())
throw new IOException("FileManager: Can't read");
}
void checkWrite() throws IOException {
- if (cantWrite != null && cantWrite.matcher(getName()).matches())
+ String canonName = getName().replace(File.separatorChar, '/');
+ if (cantWrite != null && cantWrite.matcher(canonName).matches())
throw new IOException("FileManager: Can't write");
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/meth/TestCP.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6991980
+ * @summary polymorphic signature calls don't share the same CP entries
+ * @run main TestCP
+ */
+
+import com.sun.tools.classfile.Instruction;
+import com.sun.tools.classfile.Attribute;
+import com.sun.tools.classfile.ClassFile;
+import com.sun.tools.classfile.Code_attribute;
+import com.sun.tools.classfile.ConstantPool.*;
+import com.sun.tools.classfile.Method;
+
+import java.dyn.*;
+import java.io.*;
+
+public class TestCP {
+
+ static class TestClass {
+ void test(MethodHandle mh) throws Throwable {
+ Number n = mh.<Number>invokeExact("daddy",1,'n');
+ n = (Number)mh.invokeExact("bunny",1,'d');
+ }
+ }
+
+ static final String PS_TYPE = "(Ljava/lang/String;IC)Ljava/lang/Number;";
+ static final int PS_CALLS_COUNT = 2;
+ static final String SUBTEST_NAME = TestClass.class.getName() + ".class";
+ static final String TEST_METHOD_NAME = "test";
+
+ public static void main(String... args) throws Exception {
+ new TestCP().run();
+ }
+
+ public void run() throws Exception {
+ String workDir = System.getProperty("test.classes");
+ File compiledTest = new File(workDir, SUBTEST_NAME);
+ verifyMethodHandleInvocationDescriptors(compiledTest);
+ }
+
+ void verifyMethodHandleInvocationDescriptors(File f) {
+ System.err.println("verify: " + f);
+ try {
+ int count = 0;
+ ClassFile cf = ClassFile.read(f);
+ Method testMethod = null;
+ for (Method m : cf.methods) {
+ if (m.getName(cf.constant_pool).equals(TEST_METHOD_NAME)) {
+ testMethod = m;
+ break;
+ }
+ }
+ if (testMethod == null) {
+ throw new Error("Test method not found");
+ }
+ Code_attribute ea = (Code_attribute)testMethod.attributes.get(Attribute.Code);
+ if (testMethod == null) {
+ throw new Error("Code attribute for test() method not found");
+ }
+ int instr_count = 0;
+ int cp_entry = -1;
+
+ for (Instruction i : ea.getInstructions()) {
+ if (i.getMnemonic().equals("invokevirtual")) {
+ instr_count++;
+ if (cp_entry == -1) {
+ cp_entry = i.getUnsignedShort(1);
+ } else if (cp_entry != i.getUnsignedShort(1)) {
+ throw new Error("Unexpected CP entry in polymorphic signature call");
+ }
+ CONSTANT_Methodref_info methRef =
+ (CONSTANT_Methodref_info)cf.constant_pool.get(cp_entry);
+ String type = methRef.getNameAndTypeInfo().getType();
+ if (!type.equals(PS_TYPE)) {
+ throw new Error("Unexpected type in polymorphic signature call: " + type);
+ }
+ }
+ }
+ if (instr_count != PS_CALLS_COUNT) {
+ throw new Error("Wrong number of polymorphic signature call found: " + instr_count);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new Error("error reading " + f +": " + e);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/environment/round/TestContext.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6988836
+ * @summary A new JavacElements is created for each round of annotation processing
+ * @library ../../../lib
+ * @build JavacTestingAbstractProcessor TestContext
+ * @compile/process -processor TestContext -XprintRounds TestContext
+ */
+
+import java.io.*;
+import java.util.*;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+import javax.tools.*;
+import static javax.tools.Diagnostic.Kind.*;
+
+import com.sun.source.util.Trees;
+import com.sun.tools.javac.api.JavacTrees;
+import com.sun.tools.javac.model.JavacElements;
+import com.sun.tools.javac.model.JavacTypes;
+import com.sun.tools.javac.processing.JavacProcessingEnvironment;
+import com.sun.tools.javac.util.Context;
+
+public class TestContext extends JavacTestingAbstractProcessor {
+
+ Trees treeUtils;
+ int round = 0;
+
+ @Override
+ public void init(ProcessingEnvironment pEnv) {
+ super.init(pEnv);
+ treeUtils = Trees.instance(processingEnv);
+ }
+
+ @Override
+ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ round++;
+
+ JavacProcessingEnvironment jpe = (JavacProcessingEnvironment) processingEnv;
+ Context c = jpe.getContext();
+ check(c.get(JavacElements.class), eltUtils);
+ check(c.get(JavacTypes.class), typeUtils);
+ check(c.get(JavacTrees.class), treeUtils);
+
+ final int MAXROUNDS = 3;
+ if (round < MAXROUNDS)
+ generateSource("Gen" + round);
+
+ return true;
+ }
+
+ <T> void check(T actual, T expected) {
+// messager.printMessage(NOTE, "expect: " + expected);
+// messager.printMessage(NOTE, "actual: " + actual);
+
+ if (actual != expected) {
+ messager.printMessage(ERROR,
+ "round " + round + " unexpected value for " + expected.getClass().getName() + ": " + actual);
+ }
+ }
+
+ void generateSource(String name) {
+ String text = "class " + name + " { }\n";
+
+ try (Writer out = filer.createSourceFile(name).openWriter()) {
+ out.write(text);
+ } catch (IOException e) {
+ throw new Error(e);
+ }
+ }
+
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/errors/TestParseErrors/ParseErrors.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.List;
+import java.util.Vector;
+
+class test {
+
+ public String m(List<? extends String> v, String s ) {
+ return null;
+ }
+
+ public String m2(Vector<String> vs, String s) {
+ return null;
+ }
+
+ public void m3(testclass<String>,
+}
+
+class testclass<T> {
+ T t;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6988407
+ * @summary javac crashes running processor on errant code; it used to print error message
+ * @library ../../../lib
+ * @build JavacTestingAbstractProcessor TestParseErrors
+ * @compile/fail/ref=TestParseErrors.out -XDrawDiagnostics -proc:only -processor TestParseErrors ParseErrors.java
+ */
+
+import java.util.*;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+
+public class TestParseErrors extends JavacTestingAbstractProcessor {
+
+ public boolean process(Set<? extends TypeElement> annotations,
+ RoundEnvironment roundEnvironment) {
+ throw new Error("Should not be called");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,8 @@
+ParseErrors.java:37:37: compiler.err.expected: token.identifier
+ParseErrors.java:38:1: compiler.err.illegal.start.of.type
+ParseErrors.java:38:2: compiler.err.expected: ')'
+ParseErrors.java:40:6: compiler.err.expected: ';'
+ParseErrors.java:40:20: compiler.err.illegal.start.of.type
+ParseErrors.java:41:5: compiler.err.expected: '('
+ParseErrors.java:41:8: compiler.err.expected: token.identifier
+7 errors
--- a/langtools/test/tools/javadoc/T4994049/FileWithTabs.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/test/tools/javadoc/T4994049/FileWithTabs.java Tue Nov 02 22:15:35 2010 -0700
@@ -22,5 +22,5 @@
*/
public class FileWithTabs {
- public void tabbedMethod() {}
+\tpublic void tabbedMethod() {}
}
--- a/langtools/test/tools/javadoc/T4994049/T4994049.java Fri Oct 29 11:49:47 2010 +0400
+++ b/langtools/test/tools/javadoc/T4994049/T4994049.java Tue Nov 02 22:15:35 2010 -0700
@@ -30,7 +30,7 @@
*/
import com.sun.javadoc.*;
-import java.io.File;
+import java.io.*;
import static com.sun.tools.javadoc.Main.execute;
public class T4994049 extends Doclet {
@@ -52,12 +52,47 @@
return false;
}
- public static void main(String... args) {
+ public static void main(String... args) throws Exception {
+ File testSrc = new File(System.getProperty("test.src"));
+ File tmpSrc = new File("tmpSrc");
+ initTabs(testSrc, tmpSrc);
+
for (String file : args) {
- File source = new File(System.getProperty("test.src", "."), file);
- if (execute("javadoc", "T4994049", T4994049.class.getClassLoader(),
- new String[]{source.getPath()} ) != 0)
- throw new Error();
+ File source = new File(tmpSrc, file);
+ int rc = execute("javadoc", "T4994049", T4994049.class.getClassLoader(),
+ new String[]{ source.getPath() } );
+ if (rc != 0)
+ throw new Error("Unexpected return code from javadoc: " + rc);
+ }
+ }
+
+ static void initTabs(File from, File to) throws IOException {
+ for (File f: from.listFiles()) {
+ File t = new File(to, f.getName());
+ if (f.isDirectory()) {
+ initTabs(f, t);
+ } else if (f.getName().endsWith(".java")) {
+ write(t, read(f).replace("\\t", "\t"));
+ }
+ }
+ }
+
+ static String read(File f) throws IOException {
+ StringBuilder sb = new StringBuilder();
+ try (BufferedReader in = new BufferedReader(new FileReader(f))) {
+ String line;
+ while ((line = in.readLine()) != null) {
+ sb.append(line);
+ sb.append("\n");
+ }
+ }
+ return sb.toString();
+ }
+
+ static void write(File f, String s) throws IOException {
+ f.getParentFile().mkdirs();
+ try (Writer out = new FileWriter(f)) {
+ out.write(s);
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javah/4942232/ParamClassTest.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+public class ParamClassTest {
+ static {
+ System.loadLibrary("Test");
+ }
+
+ public native void method(Param s);
+
+ public static void main(String[] a) {
+ }
+}
+
+class Param {
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javah/4942232/Test.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4942232
+ * @summary missing param class processes without error
+ * @build ParamClassTest Test
+ * @run main Test
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class Test {
+ public static void main(String... args) throws Exception {
+ new Test().run();
+ }
+
+ void run() throws Exception {
+ File testSrc = new File(System.getProperty("test.src"));
+ File testClasses = new File(System.getProperty("test.classes"));
+
+ // standard use of javah on valid class file
+ String[] test1Args = {
+ "-d", mkdir("test1/out").getPath(),
+ "-classpath", testClasses.getPath(),
+ "ParamClassTest"
+ };
+ test(test1Args, 0);
+
+ // extended use of javah on valid source file
+ String[] test2Args = {
+ "-d", mkdir("test2/out").getPath(),
+ "-classpath", testSrc.getPath(),
+ "ParamClassTest"
+ };
+ test(test2Args, 0);
+
+ // javah on class file with missing referents
+ File test3Classes = mkdir("test3/classes");
+ copy(new File(testClasses, "ParamClassTest.class"), test3Classes);
+ String[] test3Args = {
+ "-d", mkdir("test3/out").getPath(),
+ "-classpath", test3Classes.getPath(),
+ "ParamClassTest"
+ };
+ test(test3Args, 1);
+
+ // javah on source file with missing referents
+ File test4Src = mkdir("test4/src");
+ String paramClassTestSrc = readFile(new File(testSrc, "ParamClassTest.java"));
+ writeFile(new File(test4Src, "ParamClassTest.java"),
+ paramClassTestSrc.replaceAll("class Param \\{\\s+\\}", ""));
+ String[] test4Args = {
+ "-d", mkdir("test4/out").getPath(),
+ "-classpath", test4Src.getPath(),
+ "ParamClassTest"
+ };
+ test(test4Args, 15);
+
+ if (errors > 0)
+ throw new Exception(errors + " errors occurred");
+ }
+
+ void test(String[] args, int expect) {
+ System.err.println("test: " + Arrays.asList(args));
+ int rc = javah(args);
+ if (rc != expect)
+ error("Unexpected return code: " + rc + "; expected: " + expect);
+ }
+
+ int javah(String... args) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javah.Main.run(args, pw);
+ pw.close();
+ String out = sw.toString();
+ if (!out.isEmpty())
+ System.err.println(out);
+ return rc;
+ }
+
+ File mkdir(String path) {
+ File f = new File(path);
+ f.mkdirs();
+ return f;
+ }
+
+ void copy(File from, File to) throws IOException {
+ if (to.isDirectory())
+ to = new File(to, from.getName());
+ try (DataInputStream in = new DataInputStream(new FileInputStream(from));
+ FileOutputStream out = new FileOutputStream(to)) {
+ byte[] buf = new byte[(int) from.length()];
+ in.readFully(buf);
+ out.write(buf);
+ }
+ }
+
+ String readFile(File f) throws IOException {
+ try (DataInputStream in = new DataInputStream(new FileInputStream(f))) {
+ byte[] buf = new byte[(int) f.length()];
+ in.readFully(buf);
+ return new String(buf);
+ }
+ }
+
+ void writeFile(File f, String body) throws IOException {
+ try (FileWriter out = new FileWriter(f)) {
+ out.write(body);
+ }
+ }
+
+ void error(String msg) {
+ System.err.println(msg);
+ errors++;
+ }
+
+ int errors;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javah/TestHelpOpts.java Tue Nov 02 22:15:35 2010 -0700
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6893932 6990390
+ * @summary javah help screen lists -h and -? but does not accept them
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class TestHelpOpts {
+ public static void main(String... args) throws Exception {
+ new TestHelpOpts().run();
+ }
+
+ void run() throws Exception {
+ Locale prev = Locale.getDefault();
+ try {
+ Locale.setDefault(Locale.ENGLISH);
+
+ String[] opts = { "-h", "-help", "-?", "--help" };
+ for (String opt: opts)
+ test(opt);
+ } finally {
+ Locale.setDefault(prev);
+ }
+
+ if (errors > 0)
+ throw new Exception(errors + " errors occurred");
+ }
+
+ void test(String opt) {
+ System.err.println("test " + opt);
+ String[] args = { opt };
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javah.Main.run(args, pw);
+ pw.close();
+ String out = sw.toString();
+ if (!out.isEmpty())
+ System.err.println(out);
+ if (rc != 0)
+ error("Unexpected exit: rc=" + rc);
+
+ String flat = out.replaceAll("\\s+", " "); // canonicalize whitespace
+ if (!flat.contains("Usage: javah [options] <classes> where [options] include:"))
+ error("expected text not found");
+ if (flat.contains("main.opt"))
+ error("key not found in resource bundle: " + flat.replaceAll(".*(main.opt.[^ ]*).*", "$1"));
+ }
+
+ void error(String msg) {
+ System.err.println(msg);
+ errors++;
+ }
+
+ int errors;
+}
--- a/make/deploy-rules.gmk Fri Oct 29 11:49:47 2010 +0400
+++ b/make/deploy-rules.gmk Tue Nov 02 22:15:35 2010 -0700
@@ -41,7 +41,7 @@
IMAGES_TARGET = images
endif
-DEPLOY_BUILD_TARGETS = sanity javaws-all plugin-all
+DEPLOY_BUILD_TARGETS = sanity deploy
# Only build 7-Zip LZMA file compression if it is available
# Enable 7-Zip LZMA file (de)compression for Java Kernel if it is available
ifeq ($(ARCH_DATA_MODEL), 32)
@@ -79,7 +79,6 @@
ifeq ($(UP_TMP), true)
DEPLOY_BUILD_TARGETS += cmd-comp-all
endif
- DEPLOY_BUILD_TARGETS += kernel-all
endif
endif
endif
--- a/make/install-rules.gmk Fri Oct 29 11:49:47 2010 +0400
+++ b/make/install-rules.gmk Tue Nov 02 22:15:35 2010 -0700
@@ -93,6 +93,10 @@
fi
endif
+combo_build:
+ @$(ECHO) $@ installer combo build started: `$(DATE) '+%y-%m-%d %H:%M'`
+ $(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/ishield/wrapper/wrapper.jreboth ; $(MAKE) all
+
install-clobber:
ifeq ($(BUILD_INSTALL), true)
@$(call MakeStart, install, clobber)