Merge
authorlana
Thu, 04 Nov 2010 15:39:43 -0700
changeset 7205 e6560614a608
parent 7204 0960f7e5e366 (current diff)
parent 6953 228e73f288c5 (diff)
child 7206 02edd110358f
Merge
--- a/.hgignore	Thu Nov 04 12:58:29 2010 +0000
+++ b/.hgignore	Thu Nov 04 15:39:43 2010 -0700
@@ -1,3 +1,4 @@
 ^build/
 ^dist/
 /nbproject/private/
+^webrev
--- a/.hgtags	Thu Nov 04 12:58:29 2010 +0000
+++ b/.hgtags	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/.hgtags-top-repo	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/corba/.hgtags	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/.hgtags	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/hotspot_version	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/linux/adlc_updater	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/adlc_updater	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/amd64.make	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/reorder_COMPILER1_i486	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/reorder_COMPILER1_sparc	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_amd64	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_i486	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_sparc	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/reorder_TIERED_sparcv9	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/make/solaris/makefiles/sparcWorks.make	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/x86/vm/x86_64.ad	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/asm/codeBuffer.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_Compilation.hpp	Thu Nov 04 15:39:43 2010 -0700
@@ -22,7 +22,6 @@
  *
  */
 
-class BlockBegin;
 class CompilationResourceObj;
 class XHandlers;
 class ExceptionInfo;
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_IR.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_IR.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_Instruction.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_Instruction.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_LIR.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_LIR.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_Optimizer.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_ValueStack.cpp	Thu Nov 04 15:39:43 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(&copy_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(&copy_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(&copy_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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_ValueStack.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/c1/c1_globals.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/code/nmethod.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_serial	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/includeDB_compiler1	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/includeDB_core	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/allocation.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/defNewGeneration.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/genMarkSweep.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/permGen.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/permGen.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/sharedHeap.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/memory/sharedHeap.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/oops/methodOop.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/oops/oop.inline.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/doCall.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/escape.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/library_call.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/loopTransform.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/memnode.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/phaseX.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/runtime.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/opto/stringopts.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/prims/methodHandles.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/prims/methodHandles.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/arguments.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/compilationPolicy.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/globals.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/thread.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/thread.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/runtime/vframeArray.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/shark/sharkCompiler.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/utilities/taskqueue.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/utilities/taskqueue.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/utilities/workgroup.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/utilities/workgroup.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/utilities/yieldingWorkgroup.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/hotspot/src/share/vm/utilities/yieldingWorkgroup.hpp	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jaxp/.hgtags	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jaxws/.hgtags	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/.hgtags	Thu Nov 04 15:39:43 2010 -0700
@@ -88,3 +88,6 @@
 fb63a2688db807a73e2a3de7d9bab298f1bff0e8 jdk7-b111
 b53f226b1d91473ac54184afa827be07b87e0319 jdk7-b112
 61d3b9fbb26bdef56cfa41b9af5bc312a22cbeb8 jdk7-b113
+e250cef36ea05e627e7e6f7d75e5e19f529e2ba3 jdk7-b114
+449bad8d67b5808ecf0f927683acc0a5940f8c85 jdk7-b115
+1657ed4e1d86c8aa2028ab5a41f9da1ac4a369f8 jdk7-b116
--- a/jdk/make/common/internal/Resources.gmk	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/make/common/internal/Resources.gmk	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/make/common/shared/Defs-javadoc.gmk	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/make/common/shared/Defs.gmk	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/make/docs/Makefile	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/make/java/java/FILES_java.gmk	Thu Nov 04 15:39:43 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/make/sun/image/generic/Makefile	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/make/sun/image/generic/Makefile	Thu Nov 04 15:39:43 2010 -0700
@@ -69,5 +69,8 @@
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib 
 
 OTHER_CFLAGS += -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES
-OTHER_LDLIBS = $(LIBM) -ldl
 
+ifneq ($(PLATFORM), windows)
+	OTHER_LDLIBS = $(LIBM) -ldl
+endif
+
--- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReaderSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReaderSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -45,7 +45,7 @@
     private boolean registered = false;
 
     public BMPImageReaderSpi() {
-        super("Sun Microsystems, Inc.",
+        super("Oracle Corporation",
               "1.0",
               formatNames,
               entensions,
--- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriterSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriterSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -50,7 +50,7 @@
     private boolean registered = false;
 
     public BMPImageWriterSpi() {
-        super("Sun Microsystems, Inc.",
+        super("Oracle Corporation",
               "1.0",
               formatNames,
               entensions,
--- a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReaderSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReaderSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -36,7 +36,7 @@
 
 public class GIFImageReaderSpi extends ImageReaderSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriterSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriterSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -36,7 +36,7 @@
 
 public class GIFImageWriterSpi extends ImageWriterSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java	Thu Nov 04 15:39:43 2010 -0700
@@ -169,7 +169,7 @@
     public static final int ADOBE_YCCK = 2;
 
     // Spi initialization stuff
-    public static final String vendor = "Sun Microsystems, Inc.";
+    public static final String vendor = "Oracle Corporation";
     public static final String version = "0.5";
     // Names of the formats we can read or write
     public static final String [] names = {"JPEG", "jpeg", "JPG", "jpg"};
--- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReaderSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReaderSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -36,7 +36,7 @@
 
 public class PNGImageReaderSpi extends ImageReaderSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriterSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriterSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -38,7 +38,7 @@
 
 public class PNGImageWriterSpi extends ImageWriterSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -49,7 +49,7 @@
     private boolean registered = false;
 
     public WBMPImageReaderSpi() {
-        super("Sun Microsystems, Inc.",
+        super("Oracle Corporation",
               "1.0",
               formatNames,
               entensions,
--- a/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriterSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriterSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -49,7 +49,7 @@
     private boolean registered = false;
 
     public WBMPImageWriterSpi() {
-        super("Sun Microsystems, Inc.",
+        super("Oracle Corporation",
               "1.0",
               formatNames,
               entensions,
--- a/jdk/src/share/classes/com/sun/imageio/spi/FileImageInputStreamSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/spi/FileImageInputStreamSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -33,7 +33,7 @@
 
 public class FileImageInputStreamSpi extends ImageInputStreamSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/spi/FileImageOutputStreamSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/spi/FileImageOutputStreamSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -33,7 +33,7 @@
 
 public class FileImageOutputStreamSpi extends ImageOutputStreamSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/spi/InputStreamImageInputStreamSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/spi/InputStreamImageInputStreamSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -36,7 +36,7 @@
 
 public class InputStreamImageInputStreamSpi extends ImageInputStreamSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/spi/OutputStreamImageOutputStreamSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/spi/OutputStreamImageOutputStreamSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -36,7 +36,7 @@
 
 public class OutputStreamImageOutputStreamSpi extends ImageOutputStreamSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/spi/RAFImageInputStreamSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/spi/RAFImageInputStreamSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -34,7 +34,7 @@
 
 public class RAFImageInputStreamSpi extends ImageInputStreamSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/imageio/spi/RAFImageOutputStreamSpi.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/imageio/spi/RAFImageOutputStreamSpi.java	Thu Nov 04 15:39:43 2010 -0700
@@ -34,7 +34,7 @@
 
 public class RAFImageOutputStreamSpi extends ImageOutputStreamSpi {
 
-    private static final String vendorName = "Sun Microsystems, Inc.";
+    private static final String vendorName = "Oracle Corporation";
 
     private static final String version = "1.0";
 
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Instruction.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Filter.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/net/httpserver/Headers.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/net/httpserver/HttpsParameters.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/AWTEvent.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/Canvas.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/Container.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/SequencedEvent.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/SplashScreen.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/Window.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/event/InputEvent.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/image/IndexColorModel.java	Thu Nov 04 15:39:43 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/awt/image/SampleModel.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/awt/image/SampleModel.java	Thu Nov 04 15:39:43 2010 -0700
@@ -358,6 +358,15 @@
         int cnt = 0;
         Object o = null;
 
+        int x1 = x + w;
+        int y1 = y + h;
+
+        if (x < 0 || x1 < x || x1 > width ||
+            y < 0 || y1 < y || y1 > height)
+        {
+            throw new ArrayIndexOutOfBoundsException("Invalid coordinates.");
+        }
+
         switch(type) {
 
         case DataBuffer.TYPE_BYTE:
@@ -370,8 +379,8 @@
             else
                 bdata = (byte[])obj;
 
-            for (int i=y; i<y+h; i++) {
-                for (int j=x; j<x+w; j++) {
+            for (int i=y; i<y1; i++) {
+                for (int j=x; j<x1; j++) {
                     o = getDataElements(j, i, o, data);
                     btemp = (byte[])o;
                     for (int k=0; k<numDataElems; k++) {
@@ -393,8 +402,8 @@
             else
                 sdata = (short[])obj;
 
-            for (int i=y; i<y+h; i++) {
-                for (int j=x; j<x+w; j++) {
+            for (int i=y; i<y1; i++) {
+                for (int j=x; j<x1; j++) {
                     o = getDataElements(j, i, o, data);
                     stemp = (short[])o;
                     for (int k=0; k<numDataElems; k++) {
@@ -416,8 +425,8 @@
             else
                 idata = (int[])obj;
 
-            for (int i=y; i<y+h; i++) {
-                for (int j=x; j<x+w; j++) {
+            for (int i=y; i<y1; i++) {
+                for (int j=x; j<x1; j++) {
                     o = getDataElements(j, i, o, data);
                     itemp = (int[])o;
                     for (int k=0; k<numDataElems; k++) {
@@ -439,8 +448,8 @@
             else
                 fdata = (float[])obj;
 
-            for (int i=y; i<y+h; i++) {
-                for (int j=x; j<x+w; j++) {
+            for (int i=y; i<y1; i++) {
+                for (int j=x; j<x1; j++) {
                     o = getDataElements(j, i, o, data);
                     ftemp = (float[])o;
                     for (int k=0; k<numDataElems; k++) {
@@ -462,8 +471,8 @@
             else
                 ddata = (double[])obj;
 
-            for (int i=y; i<y+h; i++) {
-                for (int j=x; j<x+w; j++) {
+            for (int i=y; i<y1; i++) {
+                for (int j=x; j<x1; j++) {
                     o = getDataElements(j, i, o, data);
                     dtemp = (double[])o;
                     for (int k=0; k<numDataElems; k++) {
--- a/jdk/src/share/classes/java/dyn/InvokeDynamicBootstrapError.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/dyn/InvokeDynamicBootstrapError.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/dyn/LinkagePermission.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/dyn/NoAccessException.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/dyn/WrongMethodTypeException.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/io/package.html	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/lang/Integer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/lang/LinkageError.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/lang/System.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/net/HttpURLConnection.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/net/NetPermission.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/net/NetworkInterface.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/nio/Bits.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/text/RuleBasedCollator.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/Arrays.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/DualPivotQuicksort.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/Locale.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/Properties.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/TimeZone.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/XMLUtils.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/java/util/zip/ZipFile.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java	Thu Nov 04 15:39:43 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
  * &quot;lib/sound.properties&quot; 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/JLayer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/JTable.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/UIDefaults.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/text/html/parser/DTD.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/awt/AWTAccessor.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/awt/image/BufImgSurfaceData.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/jkernel/DownloadManager.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/misc/BootClassLoaderHook.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/misc/Launcher.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/misc/VM.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/net/www/MessageHeader.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/net/www/MimeTable.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/jca/Providers.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/Alerts.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/CipherSuite.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/Handshaker.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/HelloExtensions.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/OutputRecord.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/tools/jar/CommandLine.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/classes/sun/util/LocaleServiceProviderPool.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/common/check_code.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/common/jdk_util.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/common/jni_util.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/lang/Class.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/lang/ClassLoader.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/lang/System.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/lang/reflect/Proxy.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/nio/Bits.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/java/util/zip/Inflater.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/awt/image/BufImgSurfaceData.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/awt/libpng/pngrtran.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/awt/libpng/pngrutil.c	Thu Nov 04 15:39:43 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/medialib/mlib_ImageLookUp_64.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c	Thu Nov 04 15:39:43 2010 -0700
@@ -558,10 +558,11 @@
                               const mlib_d64 **table)
 {
   const mlib_d64 *table_base[4];
+  mlib_u32 shift = TABLE_SHIFT_S32;
   mlib_s32 c;
 
   for (c = 0; c < csize; c++) {
-    table_base[c] = &table[c][TABLE_SHIFT_S32];
+    table_base[c] = &table[c][shift];
   }
 
   MLIB_C_IMAGELOOKUP(mlib_d64, mlib_s32, table_base);
@@ -1039,10 +1040,11 @@
                                 const mlib_d64 **table)
 {
   const mlib_d64 *table_base[4];
+  mlib_u32 shift = TABLE_SHIFT_S32;
   mlib_s32 c;
 
   for (c = 0; c < csize; c++) {
-    table_base[c] = &table[c][TABLE_SHIFT_S32];
+    table_base[c] = &table[c][shift];
   }
 
   MLIB_C_IMAGELOOKUPSI(mlib_d64, mlib_s32, table_base);
--- a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c	Thu Nov 04 15:39:43 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;
@@ -277,7 +277,7 @@
                 ImageRect dstRect;
                 rgbquad_t fillColor = 0;                        // 0 is transparent
 
-                if (transparentColor > 0) {
+                if (transparentColor < 0) {
                     fillColor= MAKE_QUAD_GIF(
                         colorMap->Colors[gif->SBackGroundColor], 0xff);
                 }
--- a/jdk/src/share/native/sun/management/Flag.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/management/Flag.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/misc/VM.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/misc/VMSupport.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11InputMethod.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/java/io/UnixFileSystem_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/java/io/canonicalize_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/java/lang/java_props_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c	Thu Nov 04 15:39:43 2010 -0700
@@ -2255,7 +2255,7 @@
             {
                 struct in_addr in;
                 struct in_addr *inP = &in;
-                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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/awt.h	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/awt_UNIXToolkit.c	Thu Nov 04 15:39:43 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/awt/medialib/mlib_v_ImageLookUpS32S16Func.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32S16Func.c	Thu Nov 04 15:39:43 2010 -0700
@@ -169,7 +169,8 @@
 {
   mlib_s32 *sl;
   mlib_s16 *dl;
-  const mlib_s16 *tab = &table[0][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab = &table[0][shift];
   mlib_s32 j, i;
 
   sl = (void *)src;
@@ -209,6 +210,7 @@
 {
   mlib_s32 *sl;
   mlib_s16 *dl;
+  mlib_u32 shift = 2147483648u;
   const mlib_s16 *tab;
   mlib_s32 j, i;
 
@@ -220,8 +222,8 @@
     mlib_s32 *sp = sl;
     mlib_s16 *dp = dl;
     mlib_s32 off, size = xsize * 2;
-    const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-    const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+    const mlib_s16 *tab0 = &table[0][shift];
+    const mlib_s16 *tab1 = &table[1][shift];
 
     off = (mlib_s32) (((8 - ((mlib_addr) dp & 7)) & 7) >> 1);
 
@@ -261,6 +263,7 @@
 {
   mlib_s32 *sl;
   mlib_s16 *dl;
+  mlib_u32 shift = 2147483648u;
   const mlib_s16 *tab;
   mlib_s32 j;
 
@@ -271,10 +274,10 @@
   for (j = 0; j < ysize; j++) {
     mlib_s32 *sp = sl;
     mlib_s16 *dp = dl;
-    const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-    const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-    const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-    const mlib_s16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+    const mlib_s16 *tab0 = &table[0][shift];
+    const mlib_s16 *tab1 = &table[1][shift];
+    const mlib_s16 *tab2 = &table[2][shift];
+    const mlib_s16 *tab3 = &table[3][shift];
     mlib_s32 off, size = xsize * 4;
 
     off = (mlib_s32) (((8 - ((mlib_addr) dp & 7)) & 7) >> 1);
@@ -453,6 +456,7 @@
 {
   mlib_s32 *sl;
   mlib_s16 *dl;
+  mlib_u32 shift = 2147483648u;
   const mlib_s16 *tab;
   mlib_s32 j, i;
 
@@ -463,9 +467,9 @@
   for (j = 0; j < ysize; j++) {
     mlib_s32 *sp = sl;
     mlib_s16 *dp = dl;
-    const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-    const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-    const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+    const mlib_s16 *tab0 = &table[0][shift];
+    const mlib_s16 *tab1 = &table[1][shift];
+    const mlib_s16 *tab2 = &table[2][shift];
     mlib_s32 off, size = xsize * 3;
 
     off = (mlib_s32) (((8 - ((mlib_addr) dp & 7)) & 7) >> 1);
--- a/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U16Func.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U16Func.c	Thu Nov 04 15:39:43 2010 -0700
@@ -170,7 +170,8 @@
 {
   mlib_s32 *sl;
   mlib_u16 *dl;
-  const mlib_u16 *tab = &table[0][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab = &table[0][shift];
   mlib_s32 j, i;
 
   sl = (void *)src;
@@ -211,6 +212,7 @@
 {
   mlib_s32 *sl;
   mlib_u16 *dl;
+  mlib_u32 shift = 2147483648u;
   const mlib_u16 *tab;
   mlib_s32 j, i;
 
@@ -222,8 +224,8 @@
     mlib_s32 *sp = sl;
     mlib_u16 *dp = dl;
     mlib_s32 off, size = xsize * 2;
-    const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-    const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+    const mlib_u16 *tab0 = &table[0][shift];
+    const mlib_u16 *tab1 = &table[1][shift];
 
     off = (mlib_s32) (((8 - ((mlib_addr) dp & 7)) & 7) >> 1);
 
@@ -264,6 +266,7 @@
 {
   mlib_s32 *sl;
   mlib_u16 *dl;
+  mlib_u32 shift = 2147483648u;
   const mlib_u16 *tab;
   mlib_s32 j;
 
@@ -274,10 +277,10 @@
   for (j = 0; j < ysize; j++) {
     mlib_s32 *sp = sl;
     mlib_u16 *dp = dl;
-    const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-    const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-    const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-    const mlib_u16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+    const mlib_u16 *tab0 = &table[0][shift];
+    const mlib_u16 *tab1 = &table[1][shift];
+    const mlib_u16 *tab2 = &table[2][shift];
+    const mlib_u16 *tab3 = &table[3][shift];
     mlib_s32 off, size = xsize * 4;
 
     off = (mlib_s32) (((8 - ((mlib_addr) dp & 7)) & 7) >> 1);
@@ -457,6 +460,7 @@
 {
   mlib_s32 *sl;
   mlib_u16 *dl;
+  mlib_u32 shift = 2147483648u;
   const mlib_u16 *tab;
   mlib_s32 j, i;
 
@@ -467,9 +471,9 @@
   for (j = 0; j < ysize; j++) {
     mlib_s32 *sp = sl;
     mlib_u16 *dp = dl;
-    const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-    const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-    const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+    const mlib_u16 *tab0 = &table[0][shift];
+    const mlib_u16 *tab1 = &table[1][shift];
+    const mlib_u16 *tab2 = &table[2][shift];
     mlib_s32 off, size = xsize * 3;
 
     off = (mlib_s32) (((8 - ((mlib_addr) dp & 7)) & 7) >> 1);
--- a/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S16Func.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S16Func.c	Thu Nov 04 15:39:43 2010 -0700
@@ -81,8 +81,9 @@
   mlib_d64 t0, t1, t2;                 /* destination data */
   mlib_d64 t3, acc;                    /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -145,8 +146,9 @@
   mlib_d64 t0, t1, t2;                 /* destination data */
   mlib_d64 t3, acc;                    /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -220,8 +222,9 @@
   mlib_s32 *sl;
   mlib_s16 *dl;
   mlib_s32 j;
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
 
   sl = (void *)src;
   dl = dst;
@@ -268,9 +271,10 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc0, acc1, acc2;           /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
   mlib_s32 s00, s01, s02, s03;
 
   sp = (void *)src;
@@ -379,9 +383,10 @@
   mlib_s32 *sl;
   mlib_s16 *dl;
   mlib_s32 i, j;
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
 
   sl = (void *)src;
   dl = dst;
@@ -425,10 +430,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
+  const mlib_s16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -479,10 +485,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
+  const mlib_s16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -543,10 +550,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
+  const mlib_s16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -606,10 +614,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
+  const mlib_s16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -667,9 +676,10 @@
   mlib_s32 *sl;
   mlib_s16 *dl;
   mlib_s32 j;
-  const mlib_s16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_s16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_s16 *tab0 = &table[0][shift];
+  const mlib_s16 *tab1 = &table[1][shift];
+  const mlib_s16 *tab2 = &table[2][shift];
 
   sl = (void *)src;
   dl = dst;
--- a/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U16Func.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U16Func.c	Thu Nov 04 15:39:43 2010 -0700
@@ -81,8 +81,9 @@
   mlib_d64 t0, t1, t2;                 /* destination data */
   mlib_d64 t3, acc;                    /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -145,8 +146,9 @@
   mlib_d64 t0, t1, t2;                 /* destination data */
   mlib_d64 t3, acc;                    /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -220,8 +222,9 @@
   mlib_s32 *sl;
   mlib_u16 *dl;
   mlib_s32 j;
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
 
   sl = (void *)src;
   dl = dst;
@@ -268,9 +271,10 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc0, acc1, acc2;           /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
   mlib_s32 s00, s01, s02, s03;
 
   sp = (void *)src;
@@ -379,9 +383,10 @@
   mlib_s32 *sl;
   mlib_u16 *dl;
   mlib_s32 i, j;
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
 
   sl = (void *)src;
   dl = dst;
@@ -425,10 +430,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
+  const mlib_u16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -479,10 +485,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
+  const mlib_u16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -543,10 +550,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
+  const mlib_u16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -606,10 +614,11 @@
   mlib_d64 t0, t1, t2, t3;             /* destination data */
   mlib_d64 acc;                        /* destination data */
   mlib_s32 i;                          /* loop variable */
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab3 = &table[3][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
+  const mlib_u16 *tab3 = &table[3][shift];
 
   sp = (void *)src;
   dl = dst;
@@ -667,9 +676,10 @@
   mlib_s32 *sl;
   mlib_u16 *dl;
   mlib_s32 j;
-  const mlib_u16 *tab0 = &table[0][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab1 = &table[1][(mlib_u32) 2147483648u];
-  const mlib_u16 *tab2 = &table[2][(mlib_u32) 2147483648u];
+  mlib_u32 shift = 2147483648u;
+  const mlib_u16 *tab0 = &table[0][shift];
+  const mlib_u16 *tab1 = &table[1][shift];
+  const mlib_u16 *tab2 = &table[2][shift];
 
   sl = (void *)src;
   dl = dst;
--- a/jdk/src/solaris/native/sun/net/sdp/SdpSupport.c	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/net/sdp/SdpSupport.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/nio/ch/Net.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/nio/ch/SctpNet.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/xawt/XlibWrapper.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/solaris/native/sun/xawt/awt_Desktop.c	Thu Nov 04 15:39:43 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/WEmbeddedFrame.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/classes/sun/awt/windows/WEmbeddedFrame.java	Thu Nov 04 15:39:43 2010 -0700
@@ -33,6 +33,7 @@
 import java.awt.color.*;
 import java.awt.image.*;
 import sun.awt.image.ByteInterleavedRaster;
+import sun.security.action.GetPropertyAction;
 import java.lang.reflect.*;
 
 public class WEmbeddedFrame extends EmbeddedFrame {
@@ -48,8 +49,12 @@
     private int imgWid = 0;
     private int imgHgt = 0;
 
+    private static int pScale = 0;
     private static final int MAX_BAND_SIZE = (1024*30);
 
+    private static String printScale = (String) java.security.AccessController
+       .doPrivileged(new GetPropertyAction("sun.java2d.print.pluginscalefactor"));
+
     public WEmbeddedFrame() {
         this((long)0);
     }
@@ -114,8 +119,7 @@
          * real resolution of the destination so
          */
         if (isPrinterDC(hdc)) {
-            xscale = 4;
-            yscale = 4;
+            xscale = yscale = getPrintScaleFactor();
         }
 
         int frameHeight = getHeight();
@@ -168,6 +172,37 @@
         }
     }
 
+    protected static int getPrintScaleFactor() {
+        // check if value is already cached
+        if (pScale != 0)
+            return pScale;
+        if (printScale == null) {
+            // if no system property is specified,
+            // check for environment setting
+            printScale = (String) java.security.AccessController.doPrivileged(
+                new java.security.PrivilegedAction() {
+                    public Object run() {
+                        return System.getenv("JAVA2D_PLUGIN_PRINT_SCALE");
+                    }
+                }
+            );
+        }
+        int default_printDC_scale = 4;
+        int scale = default_printDC_scale;
+        if (printScale != null) {
+            try {
+                scale = Integer.parseInt(printScale);
+                if (scale > 8 || scale < 1) {
+                    scale = default_printDC_scale;
+                }
+            } catch (NumberFormatException nfe) {
+            }
+        }
+        pScale = scale;
+        return pScale;
+    }
+
+
     protected native boolean isPrinterDC(long hdc);
 
     protected native void printBand(long hdc, byte[] data, int offset,
--- a/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/common/jni_util_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/java/io/io_util_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/java/io/io_util_md.h	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/java/lang/java_props_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/java/util/TimeZone_md.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/WPrinterJob.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_BitmapUtil.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_Dialog.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_DrawingSurface.h	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_Font.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/src/windows/native/sun/windows/awt_Window.cpp	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/image/GetDataElementsTest.java	Thu Nov 04 15:39:43 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     6773022
+ * @summary Test verifies that SampleModel.getDataElements() throws an appropriate
+ *           exception if coordinates are not in bounds.
+ *
+ * @run     main GetDataElementsTest
+ */
+
+import java.awt.image.ComponentSampleModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.SampleModel;
+
+public class GetDataElementsTest {
+
+    public static int width = 100;
+    public static int height = 100;
+    public static int dataType = DataBuffer.TYPE_BYTE;
+    public static int numBands = 4;
+
+    public static void main(String[] args) {
+        SampleModel sm = new ComponentSampleModel(dataType, width, height, 4, width * 4, new int[] { 0, 1, 2, 3 } );
+
+        DataBuffer db = sm.createDataBuffer();
+        Object o = null;
+
+        boolean testPassed = false;
+        try {
+            o = sm.getDataElements(Integer.MAX_VALUE, 0, 1, 1, o, db);
+        } catch (ArrayIndexOutOfBoundsException e) {
+            System.out.println(e.getMessage());
+            testPassed = true;
+        }
+
+        if (!testPassed) {
+            throw new RuntimeException("Excpected excprion was not thrown.");
+        }
+    }
+}
--- a/jdk/test/java/io/File/SetAccess.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/io/File/SetAccess.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/io/File/SetReadOnly.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/io/pathNames/GeneralWin32.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/lang/ProcessBuilder/Basic.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/nio/channels/SocketChannel/VectorIO.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/util/Arrays/Sorting.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/java/util/Locale/LocaleEnhanceTest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/javax/sound/midi/Gervill/SoftAudioSynthesizer/DummySourceDataLine.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/javax/swing/system/6799345/TestShutdown.java	Thu Nov 04 15:39:43 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/java2d/SunGraphics2D/DrawImageBilinear.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/java2d/SunGraphics2D/DrawImageBilinear.java	Thu Nov 04 15:39:43 2010 -0700
@@ -104,7 +104,9 @@
 
             // second time will be a texture->surface blit
             g2d.drawImage(bimg2, 80, 10, 40, 40, null);
-            g2d.drawImage(bimg2, 80, 10, 40, 40, null);
+            if (!skipOglTextureTest) {
+                g2d.drawImage(bimg2, 80, 10, 40, 40, null);
+            }
 
             // third time will be a pbuffer->surface blit
             if (vimg.validate(getGraphicsConfiguration()) != VolatileImage.IMAGE_OK) {
@@ -150,6 +152,8 @@
         }
     }
 
+    private static boolean skipOglTextureTest = false;
+
     public static void main(String[] args) {
         boolean show = false;
         for (String arg : args) {
@@ -158,6 +162,11 @@
             }
         }
 
+        String arch = System.getProperty("os.arch");
+        boolean isOglEnabled = Boolean.getBoolean("sun.java2d.opengl");
+        skipOglTextureTest = isOglEnabled && ("sparc".equals(arch));
+        System.out.println("Skip OpenGL texture test: " + skipOglTextureTest);
+
         DrawImageBilinear test = new DrawImageBilinear();
         Frame frame = new Frame();
         frame.add(test);
--- a/jdk/test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java	Thu Nov 04 15:39:43 2010 -0700
@@ -105,7 +105,7 @@
         for (int y = 0; y < snapshot.getHeight(); y++) {
             for (int x = 0; x < snapshot.getWidth(); x++) {
                 int snapRGB = snapshot.getRGB(x, y);
-                if (snapRGB != evilColor) {
+                if (!isSameColor(snapRGB, evilColor)) {
                     System.err.printf("Wrong RGB for %s at (%d,%d): 0x%x " +
                         "instead of 0x%x\n", desc, x, y, snapRGB, evilColor);
                     String fileName = "MutableColorTest_"+desc+".png";
@@ -166,4 +166,24 @@
 
         System.err.println("Test passed.");
     }
+
+    /*
+     * We assume that colors with slightly different components
+     * are the same. This is done just in order to workaround
+     * peculiarities of OGL rendering pipeline on some platforms.
+     * See CR 6989217 for more details.
+     */
+     private static boolean isSameColor(int color1, int color2) {
+        final int tolerance = 2;
+
+        for (int i = 0; i < 32; i += 8) {
+            int c1 = 0xff & (color1 >> i);
+            int c2 = 0xff & (color2 >> i);
+
+            if (Math.abs(c1 - c2) > tolerance) {
+                return false;
+            }
+        }
+        return true;
+    }
 }
--- a/jdk/test/sun/misc/BootClassLoaderHook/TestHook.java	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/misc/BootClassLoaderHook/TestHook.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/pkcs11/fips/CipherTest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/pkcs11/sslecc/CipherTest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/sun/security/ssl/sanity/interop/CipherTest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/tools/jar/UpdateManifest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/tools/launcher/Arrrghs.java	Thu Nov 04 15:39:43 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	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/jdk/test/tools/pack200/PackageVersionTest.java	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/langtools/.hgtags	Thu Nov 04 15:39:43 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/make/deploy-rules.gmk	Thu Nov 04 12:58:29 2010 +0000
+++ b/make/deploy-rules.gmk	Thu Nov 04 15:39:43 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	Thu Nov 04 12:58:29 2010 +0000
+++ b/make/install-rules.gmk	Thu Nov 04 15:39:43 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)