changeset 14247:6b14930af6e1

Merge
author lana
date Fri, 12 Oct 2012 14:50:07 -0700
parents 546caec613c2 cdaa6122185f
children 3252c5e981f9
files hotspot/agent/make/ClosureFinder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Address.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Arithmetic.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ArithmeticInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/BaseIndexScaleDispAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/CPUHelper.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/CallInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/DirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Immediate.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Instruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/LoadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/MemoryInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/MoveInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/PCRelativeAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/RTLDataTypes.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ShiftInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/StoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Helper.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Registers.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegister.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Helper.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Register.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLoadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceSwapDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/BranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CallDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FP2RegisterDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPArithmeticDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/Format3ADecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IllegalInstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/InstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IntegerBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/JmplDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LdstubDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LogicDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadWriteDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RegisterDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RestoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RettDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCArithmeticInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCAtomicLoadStoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCBranchInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCCallInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCDisassembler.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFP2RegisterInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPArithmeticInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFPMoveInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegister.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFloatRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFlushInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCFormat3AInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCHelper.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIllegalInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCIndirectCallInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactory.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCInstructionFactoryImpl.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCJmplInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLdstubInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLoadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCLogicInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMemoryInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCMoveInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCNoopInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCOpcodes.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRegisterIndirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRestoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCRettInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCReturnInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSaveInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSethiInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCShiftInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialLoadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisterInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSpecialStoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStbarInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCStoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCSwapInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCTrapInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCUnimpInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV8Disassembler.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9BranchInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9CasInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ConditionFlags.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Disassembler.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9DoneInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVccInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FMOVrInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9FlushwInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9IlltrapInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ImpdepInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Instruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactory.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9InstructionFactoryImpl.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVccInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MOVrInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9MembarInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9Opcodes.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PopcInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrefetchInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisterInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9PrivilegedRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RdprInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterBranchInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RegisterIndirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RestoredInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9RetryInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9ReturnInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SavedInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SirInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisterInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9SpecialRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WriteInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCV9WrprInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SPARCWriteInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SaveDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SethiDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ShiftDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialLoadStoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SpecialStoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/StoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/SwapDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/TrapDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/UnimpDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop1Decoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V8FPop2Decoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLdstubDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceLoadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpacePrefetchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceStoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9AlternateSpaceSwapDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9BranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CCBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CMoveDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9CasDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9DoneRetryDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVccDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FMOVrDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop1Decoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FPop2Decoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FloatBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9FlushwDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9InstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntRegisterBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9IntegerBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVccDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9MOVrDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PopcDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrefetchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9PrivilegedReadWriteDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RdprDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ReadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9RegisterBranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SavedRestoredDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9ShiftDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialLoadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9SpecialStoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WriteDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/V9WrprDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/WriteDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ArithmeticDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/BranchDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/CallDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ConditionalJmpDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPArithmeticDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPInstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPLoadDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FPStoreDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/FloatGRPDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/GRPDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/InstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/JmpDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/LogicalDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/MoveDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/RotateDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEArithmeticDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEInstructionDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSELogicalDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEMoveDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/SSEShiftDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/ShiftDecoder.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ArithmeticInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86BranchInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CallInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86CondJmpInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86DirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Disassembler.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPArithmeticInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPLoadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FPStoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegister.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86FloatRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86GeneralInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Helper.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86IllegalInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Instruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactory.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86InstructionFactoryImpl.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86JmpInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86LogicInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegister.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MMXRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryIndirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MemoryInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveLoadInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86MoveStoreInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Opcodes.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86PCRelativeAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Register.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterDirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterIndirectAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RegisterPart.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86Registers.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86RotateInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegister.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisterAddress.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86SegmentRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86ShiftInstruction.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegister.java hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/x86/X86XMMRegisters.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64CurrentFrameGuess.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64Frame.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64JavaCallWrapper.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/IA64RegisterMap.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ia64/cInterpreter.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_ia64/LinuxIA64JavaThreadPDAccess.java hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/win32_ia64/Win32IA64JavaThreadPDAccess.java hotspot/src/share/tools/ProjectCreator/DirectoryTree.java hotspot/src/share/tools/ProjectCreator/DirectoryTreeNode.java hotspot/src/share/tools/ProjectCreator/FileFormatException.java hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC6.java jdk/src/share/classes/sun/util/xml/XMLUtils.java jdk/src/share/test/pack200/pack.conf
diffstat 1303 files changed, 76973 insertions(+), 31130 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Oct 09 14:19:11 2012 -0700
+++ b/.hgtags	Fri Oct 12 14:50:07 2012 -0700
@@ -179,3 +179,6 @@
 319f583f66db47395fa86127dd3ddb729eb7c64f jdk8-b55
 ffe6bce5a521be40146af2ac03c509b7bac30595 jdk8-b56
 2c21c080b11b93efb3851e39e1363e45da805943 jdk8-b57
+479d3302a26d7607ba271d66973e59ebf58825b6 jdk8-b58
+3bd874584fc01aae92fbc8827e2bd04d8b6ace04 jdk8-b59
+5e3adc681779037a2d33b7be6f75680619085492 jdk8-b60
--- a/.hgtags-top-repo	Tue Oct 09 14:19:11 2012 -0700
+++ b/.hgtags-top-repo	Fri Oct 12 14:50:07 2012 -0700
@@ -179,3 +179,6 @@
 b85b44cced2406792cfb9baab1377ff03e7001d8 jdk8-b55
 76844579fa4b30929731115b237e477181a82394 jdk8-b56
 522dfac8ca4d07c0b74025d4ac3b6e5feefbb829 jdk8-b57
+9367024804874faf8e958adeb333682bab1c0c47 jdk8-b58
+dae9821589ccd2611bdf7084269b98e819091770 jdk8-b59
+e07f499b9dccb529ecf74172cf6ac11a195ec57a jdk8-b60
--- a/corba/.hgtags	Tue Oct 09 14:19:11 2012 -0700
+++ b/corba/.hgtags	Fri Oct 12 14:50:07 2012 -0700
@@ -179,3 +179,6 @@
 e8a0e84383d6fbd303ce44bd355fb25972b13286 jdk8-b55
 bf1bb47414e178beff67dc255fc3b97bf401f679 jdk8-b56
 f3ab4163ae012965fc8acdfc25ce0fece8d6906d jdk8-b57
+18462a19f7bd66d38015f61ea549a5e0c0c889a3 jdk8-b58
+d54dc53e223ed9ce7d5f4d2cd02ad9d5def3c2db jdk8-b59
+207ef43ba69ead6cbbab415d81834545e4d46747 jdk8-b60
--- a/corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java	Tue Oct 09 14:19:11 2012 -0700
+++ b/corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java	Fri Oct 12 14:50:07 2012 -0700
@@ -1631,7 +1631,7 @@
 
         // Write data members...
         p.pln();
-        p.pln("private " + getName(theType) + " target = null;");
+        p.pln("volatile private " + getName(theType) + " target = null;");
         p.pln();
 
         // Write the ids...
@@ -1695,6 +1695,10 @@
 
         if (remoteMethods.length > 0) {
             p.plnI("try {");
+            p.pln(getName(theType) + " target = this.target;");
+            p.plnI("if (target == null) {");
+            p.pln("throw new java.io.IOException();");
+            p.pOln("}");
             p.plnI(idExtInputStream + " "+in+" = ");
             p.pln("(" + idExtInputStream + ") "+_in+";");
             p.pO();
--- a/hotspot/.hgtags	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/.hgtags	Fri Oct 12 14:50:07 2012 -0700
@@ -279,3 +279,9 @@
 9b076bc3ab67d42d1d02144ef8dcd6006a7fc0d6 hs25-b01
 d70102c4cb73158902acaa6016f47c7bc14e0d67 jdk8-b57
 5f54277c67f755a377999bff904ab48aa63ddaf9 hs25-b02
+6bb378c50828e9d76fb2653d1712c66ea8fc47db jdk8-b58
+f2e12eb74117c917c0bb264694c02de4a6a15a10 hs25-b03
+8a1a6b9b4f20fd2f6a12441d638e51f19a82db19 jdk8-b59
+1cc7a2a11d00832e3d07f81f3744a6883422db7e hs25-b04
+3cfd05b2219a29649741a52637696f06acf24a4e jdk8-b60
+b261523fe66c40a02968f0aa7e73602491bb3386 hs25-b05
--- a/hotspot/agent/make/ClosureFinder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-/*
- * Copyright (c) 2003, 2004, 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.*;
-import java.util.*;
-
-
-/**
-<p> This class finds transitive closure of dependencies from a given
-root set of classes. If your project has lots of .class files and you
-want to ship only those .class files which are used (transitively)
-from a root set of classes, then you can use this utility.  </p> <p>
-How does it work?</p>
-
-<p> We walk through all constant pool entries of a given class and
-find all modified UTF-8 entries. Anything that looks like a class name is
-considered as a class and we search for that class in the given
-classpath. If we find a .class of that name, then we add that class to
-list.</p>
-
-<p> We could have used CONSTANT_ClassInfo type constants only. But
-that will miss classes used through Class.forName or xyz.class
-construct.  But, if you refer to a class name in some other string we
-would include it as dependency :(. But this is quite unlikely
-anyway. To look for exact Class.forName argument(s) would involve
-bytecode analysis. Also, we handle only simple reflection. If you
-accept name of a class from externally (for eg properties file or
-command line args for example, this utility will not be able to find
-that dependency. In such cases, include those classes in the root set.
-</p>
-*/
-
-public class ClosureFinder {
-    private Collection roots;            // root class names Collection<String>
-    private Map        visitedClasses;   // set of all dependencies as a Map
-    private String     classPath;        // classpath to look for .class files
-    private String[]   pathComponents;   // classpath components
-    private static final boolean isWindows = File.separatorChar != '/';
-
-    public ClosureFinder(Collection roots, String classPath) {
-        this.roots = roots;
-        this.classPath = classPath;
-        parseClassPath();
-    }
-
-    // parse classPath into pathComponents array
-    private void parseClassPath() {
-        List paths = new ArrayList();
-        StringTokenizer st = new StringTokenizer(classPath, File.pathSeparator);
-        while (st.hasMoreTokens())
-            paths.add(st.nextToken());
-
-        Object[] arr = paths.toArray();
-        pathComponents = new String[arr.length];
-        System.arraycopy(arr, 0, pathComponents, 0, arr.length);
-    }
-
-    // if output is aleady not computed, compute it now
-    // result is a map from class file name to base path where the .class was found
-    public Map find() {
-        if (visitedClasses == null) {
-            visitedClasses = new HashMap();
-            computeClosure();
-        }
-        return visitedClasses;
-    }
-
-    // compute closure for all given root classes
-    private void computeClosure() {
-        for (Iterator rootsItr = roots.iterator(); rootsItr.hasNext();) {
-            String name = (String) rootsItr.next();
-            name = name.substring(0, name.indexOf(".class"));
-            computeClosure(name);
-        }
-    }
-
-
-    // looks up for .class in pathComponents and returns
-    // base path if found, else returns null
-    private String lookupClassFile(String classNameAsPath) {
-        for (int i = 0; i < pathComponents.length; i++) {
-            File f =  new File(pathComponents[i] + File.separator +
-                               classNameAsPath + ".class");
-            if (f.exists()) {
-                if (isWindows) {
-                    String name = f.getName();
-                    // Windows reports special devices AUX,NUL,CON as files
-                    // under any directory. It does not care about file extention :-(
-                    if (name.compareToIgnoreCase("AUX.class") == 0 ||
-                        name.compareToIgnoreCase("NUL.class") == 0 ||
-                        name.compareToIgnoreCase("CON.class") == 0) {
-                        return null;
-                    }
-                }
-                return pathComponents[i];
-            }
-        }
-        return null;
-    }
-
-
-    // from JVM spec. 2'nd edition section 4.4
-    private static final int CONSTANT_Class = 7;
-    private static final int CONSTANT_FieldRef = 9;
-    private static final int CONSTANT_MethodRef = 10;
-    private static final int CONSTANT_InterfaceMethodRef = 11;
-    private static final int CONSTANT_String = 8;
-    private static final int CONSTANT_Integer = 3;
-    private static final int CONSTANT_Float = 4;
-    private static final int CONSTANT_Long = 5;
-    private static final int CONSTANT_Double = 6;
-    private static final int CONSTANT_NameAndType = 12;
-    private static final int CONSTANT_Utf8 = 1;
-
-    // whether a given string may be a class name?
-    private boolean mayBeClassName(String internalClassName) {
-        int len = internalClassName.length();
-        for (int s = 0; s < len; s++) {
-            char c = internalClassName.charAt(s);
-            if (!Character.isJavaIdentifierPart(c) && c != '/')
-                return false;
-        }
-        return true;
-    }
-
-    // compute closure for a given class
-    private void computeClosure(String className) {
-        if (visitedClasses.get(className) != null) return;
-        String basePath = lookupClassFile(className);
-        if (basePath != null) {
-            visitedClasses.put(className, basePath);
-            try {
-                File classFile = new File(basePath + File.separator + className + ".class");
-                FileInputStream fis = new FileInputStream(classFile);
-                DataInputStream dis = new DataInputStream(fis);
-                // look for .class signature
-                if (dis.readInt() != 0xcafebabe) {
-                    System.err.println(classFile.getAbsolutePath() + " is not a valid .class file");
-                    return;
-                }
-
-                // ignore major and minor version numbers
-                dis.readShort();
-                dis.readShort();
-
-                // read number of constant pool constants
-                int numConsts = (int) dis.readShort();
-                String[] strings = new String[numConsts];
-
-                // zero'th entry is unused
-                for (int cpIndex = 1; cpIndex < numConsts; cpIndex++) {
-                    int constType = (int) dis.readByte();
-                    switch (constType) {
-                    case CONSTANT_Class:
-                    case CONSTANT_String:
-                        dis.readShort(); // string name index;
-                        break;
-
-                    case CONSTANT_FieldRef:
-                    case CONSTANT_MethodRef:
-                    case CONSTANT_InterfaceMethodRef:
-                    case CONSTANT_NameAndType:
-                    case CONSTANT_Integer:
-                    case CONSTANT_Float:
-                        // all these are 4 byte constants
-                        dis.readInt();
-                        break;
-
-                    case CONSTANT_Long:
-                    case CONSTANT_Double:
-                        // 8 byte constants
-                        dis.readLong();
-                        // occupies 2 cp entries
-                        cpIndex++;
-                        break;
-
-
-                    case CONSTANT_Utf8: {
-                        strings[cpIndex] = dis.readUTF();
-                        break;
-                    }
-
-                    default:
-                        System.err.println("invalid constant pool entry");
-                        return;
-                    }
-                }
-
-            // now walk thru the string constants and look for class names
-            for (int s = 0; s < numConsts; s++) {
-                if (strings[s] != null && mayBeClassName(strings[s]))
-                    computeClosure(strings[s].replace('/', File.separatorChar));
-            }
-
-            } catch (IOException exp) {
-                // ignore for now
-            }
-
-        }
-    }
-
-    // a sample main that accepts roots classes in a file and classpath as args
-    public static void main(String[] args) {
-        if (args.length != 2) {
-            System.err.println("Usage: ClosureFinder <root class file> <class path>");
-            System.exit(1);
-        }
-
-        List roots = new ArrayList();
-        try {
-            FileInputStream fis = new FileInputStream(args[0]);
-            DataInputStream dis = new DataInputStream(fis);
-            String line = null;
-            while ((line = dis.readLine()) != null) {
-                if (isWindows) {
-                    line = line.replace('/', File.separatorChar);
-                }
-                roots.add(line);
-            }
-        } catch (IOException exp) {
-            System.err.println(exp.getMessage());
-            System.exit(2);
-        }
-
-        ClosureFinder cf = new ClosureFinder(roots, args[1]);
-        Map out = cf.find();
-        Iterator res = out.keySet().iterator();
-        for(; res.hasNext(); ) {
-            String className = (String) res.next();
-            System.out.println(className + ".class");
-        }
-    }
-}
--- a/hotspot/agent/make/Makefile	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/make/Makefile	Fri Oct 12 14:50:07 2012 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2012, 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
@@ -41,10 +41,7 @@
 PKGLIST = \
 sun.jvm.hotspot \
 sun.jvm.hotspot.asm \
-sun.jvm.hotspot.asm.amd64 \
-sun.jvm.hotspot.asm.ia64 \
 sun.jvm.hotspot.asm.sparc \
-sun.jvm.hotspot.asm.x86 \
 sun.jvm.hotspot.bugspot \
 sun.jvm.hotspot.bugspot.tree \
 sun.jvm.hotspot.c1 \
@@ -138,10 +135,7 @@
 FILELIST = \
 sun/jvm/hotspot/*.java \
 sun/jvm/hotspot/asm/*.java \
-sun/jvm/hotspot/asm/amd64/*.java \
-sun/jvm/hotspot/asm/ia64/*.java \
 sun/jvm/hotspot/asm/sparc/*.java \
-sun/jvm/hotspot/asm/x86/*.java \
 sun/jvm/hotspot/bugspot/*.java \
 sun/jvm/hotspot/bugspot/tree/*.java \
 sun/jvm/hotspot/c1/*.java \
--- a/hotspot/agent/make/saenv.sh	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/make/saenv.sh	Fri Oct 12 14:50:07 2012 -0700
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2012, 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
--- a/hotspot/agent/make/start-debug-server-proc.sh	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/make/start-debug-server-proc.sh	Fri Oct 12 14:50:07 2012 -0700
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2012, 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
--- a/hotspot/agent/src/os/bsd/MacosxDebuggerLocal.m	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/os/bsd/MacosxDebuggerLocal.m	Fri Oct 12 14:50:07 2012 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2012, 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
@@ -31,7 +31,13 @@
 #import <mach/mach.h>
 #import <mach/mach_types.h>
 #import <sys/sysctl.h>
+#import <stdio.h>
+#import <stdarg.h>
 #import <stdlib.h>
+#import <strings.h>
+#import <dlfcn.h>
+#import <limits.h>
+#import <errno.h>
 
 jboolean debug = JNI_FALSE;
 
@@ -60,6 +66,9 @@
 #define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
 #define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
 #define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
+#define CHECK_EXCEPTION_CLEAR if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionClear(env); } 
+#define CHECK_EXCEPTION_CLEAR_VOID if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionClear(env); return; } 
+#define CHECK_EXCEPTION_CLEAR_(value) if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionClear(env); return value; } 
 
 static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
   (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
@@ -404,3 +413,164 @@
   }
 JNF_COCOA_EXIT(env);
 }
+
+/*
+ * Class:     sun_jvm_hotspot_asm_Disassembler
+ * Method:    load_library
+ * Signature: (Ljava/lang/String;)L
+ */
+JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_asm_Disassembler_load_1library(JNIEnv * env,
+                                                                           jclass disclass,
+                                                                           jstring jrepath_s,
+                                                                           jstring libname_s) {
+  uintptr_t func = 0;
+  const char* error_message = NULL;
+  const char* java_home;
+  jboolean isCopy;
+  uintptr_t *handle = NULL;
+
+  const char * jrepath = (*env)->GetStringUTFChars(env, jrepath_s, &isCopy); // like $JAVA_HOME/jre/lib/sparc/
+  const char * libname = (*env)->GetStringUTFChars(env, libname_s, &isCopy);
+  char buffer[128];
+
+  /* Load the hsdis library */
+  void* hsdis_handle;
+  hsdis_handle = dlopen(libname, RTLD_LAZY | RTLD_GLOBAL);
+  if (hsdis_handle == NULL) {
+    snprintf(buffer, sizeof(buffer), "%s%s", jrepath, libname);
+    hsdis_handle = dlopen(buffer, RTLD_LAZY | RTLD_GLOBAL);
+  }
+  if (hsdis_handle != NULL) {
+    func = (uintptr_t)dlsym(hsdis_handle, "decode_instructions_virtual");
+  }
+  if (func == 0) {
+    error_message = dlerror();
+    fprintf(stderr, "%s\n", error_message);
+  }
+
+  (*env)->ReleaseStringUTFChars(env, libname_s, libname);
+  (*env)->ReleaseStringUTFChars(env, jrepath_s, jrepath);
+
+  if (func == 0) {
+    /* Couldn't find entry point.  error_message should contain some
+     * platform dependent error message.
+     */
+    THROW_NEW_DEBUGGER_EXCEPTION(error_message);
+  }
+  return (jlong)func;
+}
+
+/* signature of decode_instructions_virtual from hsdis.h */
+typedef void* (*decode_func)(uintptr_t start_va, uintptr_t end_va,
+                             unsigned char* start, uintptr_t length,
+                             void* (*event_callback)(void*, const char*, void*),
+                             void* event_stream,
+                             int (*printf_callback)(void*, const char*, ...),
+                             void* printf_stream,
+                             const char* options);
+
+/* container for call back state when decoding instructions */
+typedef struct {
+  JNIEnv* env;
+  jobject dis;
+  jobject visitor;
+  jmethodID handle_event;
+  jmethodID raw_print;
+  char buffer[4096];
+} decode_env;
+
+
+/* event callback binding to Disassembler.handleEvent */
+static void* event_to_env(void* env_pv, const char* event, void* arg) {
+  decode_env* denv = (decode_env*)env_pv;
+  JNIEnv* env = denv->env;
+  jstring event_string = (*env)->NewStringUTF(env, event);
+  jlong result = (*env)->CallLongMethod(env, denv->dis, denv->handle_event, denv->visitor,
+                                        event_string, (jlong) (uintptr_t)arg);
+  /* ignore exceptions for now */
+  CHECK_EXCEPTION_CLEAR_((void *)0);
+  return (void*)(uintptr_t)result;
+}
+
+/* printing callback binding to Disassembler.rawPrint */
+static int printf_to_env(void* env_pv, const char* format, ...) {
+  jstring output;
+  va_list ap;
+  int cnt;
+  decode_env* denv = (decode_env*)env_pv;
+  JNIEnv* env = denv->env;
+  size_t flen = strlen(format);
+  const char* raw = NULL;
+
+  if (flen == 0)  return 0;
+  if (flen < 2 ||
+      strchr(format, '%') == NULL) {
+    raw = format;
+  } else if (format[0] == '%' && format[1] == '%' &&
+             strchr(format+2, '%') == NULL) {
+    // happens a lot on machines with names like %foo
+    flen--;
+    raw = format+1;
+  }
+  if (raw != NULL) {
+    jstring output = (*env)->NewStringUTF(env, raw);
+    (*env)->CallVoidMethod(env, denv->dis, denv->raw_print, denv->visitor, output);
+    CHECK_EXCEPTION_CLEAR;
+    return (int) flen;
+  }
+  va_start(ap, format);
+  cnt = vsnprintf(denv->buffer, sizeof(denv->buffer), format, ap);
+  va_end(ap);
+
+  output = (*env)->NewStringUTF(env, denv->buffer);
+  (*env)->CallVoidMethod(env, denv->dis, denv->raw_print, denv->visitor, output);
+  CHECK_EXCEPTION_CLEAR;
+  return cnt;
+}
+
+/*
+ * Class:     sun_jvm_hotspot_asm_Disassembler
+ * Method:    decode
+ * Signature: (Lsun/jvm/hotspot/asm/InstructionVisitor;J[BLjava/lang/String;J)V
+ */
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_asm_Disassembler_decode(JNIEnv * env,
+                                                                    jobject dis,
+                                                                    jobject visitor,
+                                                                    jlong startPc,
+                                                                    jbyteArray code,
+                                                                    jstring options_s,
+                                                                    jlong decode_instructions_virtual) {
+  jboolean isCopy;
+  jbyte* start = (*env)->GetByteArrayElements(env, code, &isCopy);
+  jbyte* end = start + (*env)->GetArrayLength(env, code);
+  const char * options = (*env)->GetStringUTFChars(env, options_s, &isCopy);
+  jclass disclass = (*env)->GetObjectClass(env, dis);
+
+  decode_env denv;
+  denv.env = env;
+  denv.dis = dis;
+  denv.visitor = visitor;
+
+  /* find Disassembler.handleEvent callback */
+  denv.handle_event = (*env)->GetMethodID(env, disclass, "handleEvent",
+                                          "(Lsun/jvm/hotspot/asm/InstructionVisitor;Ljava/lang/String;J)J");
+  CHECK_EXCEPTION_CLEAR_VOID
+
+  /* find Disassembler.rawPrint callback */
+  denv.raw_print = (*env)->GetMethodID(env, disclass, "rawPrint",
+                                       "(Lsun/jvm/hotspot/asm/InstructionVisitor;Ljava/lang/String;)V");
+  CHECK_EXCEPTION_CLEAR_VOID
+
+  /* decode the buffer */
+  (*(decode_func)(uintptr_t)decode_instructions_virtual)(startPc,
+                                                         startPc + end - start,
+                                                         (unsigned char*)start,
+                                                         end - start,
+                                                         &event_to_env,  (void*) &denv,
+                                                         &printf_to_env, (void*) &denv,
+                                                         options);
+
+  /* cleanup */
+  (*env)->ReleaseByteArrayElements(env, code, start, JNI_ABORT);
+  (*env)->ReleaseStringUTFChars(env, options_s, options);
+}
--- a/hotspot/agent/src/os/linux/Makefile	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/os/linux/Makefile	Fri Oct 12 14:50:07 2012 -0700
@@ -36,25 +36,33 @@
 
 INCLUDES = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux 
 
-OBJS     = $(SOURCES:.c=.o)
+OBJS     = $(SOURCES:%.c=$(ARCH)/%.o) $(ARCH)/sadis.o
 
 LIBS     = -lthread_db
 
-CFLAGS   = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) -D_FILE_OFFSET_BITS=64
+CFLAGS   = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) -I$(ARCH)
 
 LIBSA = $(ARCH)/libsaproc.so
 
 all: $(LIBSA)
 
-LinuxDebuggerLocal.o: LinuxDebuggerLocal.c
-	$(JAVAH) -jni -classpath ../../../build/classes  \
+$(ARCH):
+       mkdir $(ARCH)
+
+$(ARCH)/LinuxDebuggerLocal.o: LinuxDebuggerLocal.c
+        $(JAVAH) -jni -classpath ../../../build/classes -d $(ARCH) \
 		sun.jvm.hotspot.debugger.x86.X86ThreadContext \
 		sun.jvm.hotspot.debugger.sparc.SPARCThreadContext \
 		sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext 
-	$(GCC) $(CFLAGS) $<
+        $(GCC) $(CFLAGS) $< -o $@
 
-.c.obj:
-	$(GCC) $(CFLAGS)
+$(ARCH)/sadis.o:  ../../share/native/sadis.c
+        $(JAVAH) -jni -classpath ../../../build/classes -d $(ARCH) \
+                sun.jvm.hotspot.asm.Disassembler
+        $(GCC) $(CFLAGS) $< -o $@
+ 
+$(ARCH)/%.o: %.c
+        $(GCC) $(CFLAGS) $< -o $@
 
 ifndef LDNOMAP
   LFLAGS_LIBSA = -Xlinker --version-script=mapfile
@@ -68,9 +76,8 @@
 endif
 LFLAGS_LIBSA += $(LDFLAGS_HASH_STYLE)
 
-$(LIBSA): $(OBJS) mapfile
-	if [ ! -d $(ARCH) ] ; then mkdir $(ARCH) ; fi
-	$(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+$(LIBSA): $(ARCH) $(OBJS) mapfile
+        $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
 
 test.o: test.c
 	$(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
@@ -79,7 +86,4 @@
 	$(GCC) -o test test.o -L$(ARCH) -lsaproc $(LIBS)
 
 clean:
-	rm -rf $(LIBSA)
-	rm -rf $(OBJS)
-	rmdir $(ARCH)
-
+        rm -fr $(ARCH)
--- a/hotspot/agent/src/os/linux/mapfile	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/os/linux/mapfile	Fri Oct 12 14:50:07 2012 -0700
@@ -1,7 +1,5 @@
 #
-
-#
-# Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2012, 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
@@ -22,7 +20,6 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #  
-#
 
 # Define public interface.
 
@@ -40,6 +37,10 @@
 		Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_readBytesFromProcess0;
 		Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_getThreadIntegerRegisterSet0;
 	
+                # Disassembler interface
+                Java_sun_jvm_hotspot_asm_Disassembler_decode;
+                Java_sun_jvm_hotspot_asm_Disassembler_load_1library;
+
 		# proc_service.h functions - to be used by libthread_db
 		ps_getpid;
 		ps_pglobal_lookup;
--- a/hotspot/agent/src/os/solaris/proc/Makefile	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/os/solaris/proc/Makefile	Fri Oct 12 14:50:07 2012 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2012, 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
@@ -27,7 +27,7 @@
 #   sparcv9:  Build the 64 bit sparcv9 version in ./sparcv9
 #   i386:     Build the 32 bit i386 version in ./i386
 
-.PHONY: sparc sparcv9 i386
+.PHONY: sparc sparcv9 i386 amd64
 
 ARCH_ORIG = $(shell uname -p)
 
@@ -36,6 +36,8 @@
 MKDIRS := /usr/bin/mkdir -p
 
 CLASSES_DIR = ../../../../build/classes
+SAPROC_INCLUDES=-I${JAVA_HOME}/include -I${JAVA_HOME}/include/solaris
+SADIS=../../../share/native/sadis.c
 
 ifeq "$(ARCH_ORIG)" "i386"
  ALL_TARGET = i386 $(filter amd64,$(shell isalist))
@@ -43,6 +45,11 @@
  ALL_TARGET = sparc sparcv9
 endif
 
+CFLAGS/i386   =
+CFLAGS/amd64  = -xarch=amd64
+CFLAGS/sparc  = -xarch=v8
+CFLAGS/sparv9 = -xarch=v9
+
 all:: $(ALL_TARGET)
 
 javahomecheck::
@@ -51,34 +58,13 @@
 	  exit 1 ; \
         fi
 
-i386:: javahomecheck
-	$(MKDIRS) $@
-	@javah -classpath $(CLASSES_DIR) -jni sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
-	CC -G -KPIC -I${JAVA_HOME}/include -I${JAVA_HOME}/include/solaris saproc.cpp \
-           -M mapfile -o $@/libsaproc.so -ldemangle
-	CC -o $@/libsaproc_audit.so -G -Kpic -z defs saproc_audit.cpp -lmapmalloc -ldl -lc 
-
-amd64:: javahomecheck
+i386 amd64 sparc sparcv9:: javahomecheck
 	$(MKDIRS) $@
-	@javah -classpath $(CLASSES_DIR) -jni sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
-	CC -G -KPIC -xarch=amd64 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/solaris saproc.cpp \
-           -M mapfile -o $@/libsaproc.so -ldemangle
-	CC -xarch=amd64 -o $@/libsaproc_audit.so -G -Kpic -z defs saproc_audit.cpp -lmapmalloc -ldl -lc 
-
-sparc:: javahomecheck
-	$(MKDIRS) $@
-	@javah -classpath $(CLASSES_DIR) -jni sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
-	CC -G -KPIC -xarch=v8  -I${JAVA_HOME}/include -I${JAVA_HOME}/include/solaris saproc.cpp \
-           -M mapfile -o $@/libsaproc.so -ldemangle
-	CC -xarch=v8 -o $@/libsaproc_audit.so -G -Kpic -z defs saproc_audit.cpp -lmapmalloc -ldl -lc 
-
-sparcv9:: javahomecheck
-	$(MKDIRS) $@
-	@javah -classpath $(CLASSES_DIR) -jni sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
-	CC -G -KPIC -xarch=v9 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/solaris saproc.cpp \
-           -M mapfile -o $@/libsaproc.so -ldemangle
-	CC -xarch=v9 -o $@/libsaproc_audit.so -G -Kpic -z defs saproc_audit.cpp -lmapmalloc -ldl -lc 
+	@$(JAVA_HOME)/bin/javah -classpath $(CLASSES_DIR) -d $@ -jni sun.jvm.hotspot.asm.Disassembler sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
+	CC $(CFLAGS/$@) -c -g -Kpic ${SAPROC_INCLUDES} -I$@ saproc.cpp -o $@/saproc.o
+	cc $(CFLAGS/$@) -c -g -Kpic ${SAPROC_INCLUDES} -I$@ $(SADIS) -o $@/sadis.o
+	CC $(CFLAGS/$@) -g -G -Kpic $@/saproc.o $@/sadis.o -M mapfile -o $@/libsaproc.so -ldemangle
+	CC $(CFLAGS/$@) -o $@/libsaproc_audit.so -G -Kpic -z defs saproc_audit.cpp -lmapmalloc -ldl -lc 
 
 clean::
-	$(RM) -rf sun_jvm_hotspot_debugger_proc_ProcDebuggerLocal.h
-	$(RM) -rf sparc sparcv9 i386
+	$(RM) -rf sparc sparcv9 i386 amd64
--- a/hotspot/agent/src/os/solaris/proc/mapfile	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/os/solaris/proc/mapfile	Fri Oct 12 14:50:07 2012 -0700
@@ -1,7 +1,5 @@
 #
-
-#
-# Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2012, 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
@@ -22,10 +20,8 @@
 # or visit www.oracle.com if you need additional information or have any
 # questions.
 #  
-#
 
 # Define public interface.
-
 SUNWprivate_1.1 {
 	global:
 		Java_sun_jvm_hotspot_debugger_proc_ProcDebuggerLocal_attach0__Ljava_lang_String_2;
@@ -47,6 +43,9 @@
 		Java_sun_jvm_hotspot_debugger_proc_ProcDebuggerLocal_writeBytesToProcess0;
                 # this is needed by saproc_audit.c to redirect opens in libproc.so
                 libsaproc_open;
-local:
+                # Disassembler interface
+		Java_sun_jvm_hotspot_asm_Disassembler_decode;
+		Java_sun_jvm_hotspot_asm_Disassembler_load_1library;
+	local:
 	*;
 };
--- a/hotspot/agent/src/os/win32/windbg/Makefile	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/os/win32/windbg/Makefile	Fri Oct 12 14:50:07 2012 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2002, 2012, 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,6 +35,8 @@
 WINDBG_LIB_IA64=$(WINDBG_HOME)/sdk/lib/ia64
 WINDBG_LIB_AMD64=$(WINDBG_HOME)/sdk/lib/amd64
 
+SADIS=../../../share/native/sadis.c
+
 # These do not need to be optimized (don't run a lot of code) and it
 # will be useful to have the assertion checks in place
 
@@ -57,23 +59,29 @@
 
 amd64: amd64/$(SAWINDBGDLL)
 
-i386/$(SAWINDBGDLL) : sawindbg.cpp
+i386/$(SAWINDBGDLL) : sawindbg.cpp $(SADIS)
 	@ mkdir -p i386
-	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal sun.jvm.hotspot.debugger.x86.X86ThreadContext 
+	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal sun.jvm.hotspot.debugger.x86.X86ThreadContext
+	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.asm.Disassembler
 	@ $(CPP32) /I$(JAVA_HOME)/include /I$(JAVA_HOME)/include/win32 /I$(WINDBG_INCLUDE) $(CFLAGS32) /Fp"i386/sawindbg.pch" /Fo"i386/" /Fd"i386/" /c sawindbg.cpp
-	$(LINK32) /out:$@ /DLL i386/sawindbg.obj $(LIBS32)
+	@ $(CPP32) /I$(JAVA_HOME)/include /I$(JAVA_HOME)/include/win32 /I$(WINDBG_INCLUDE) $(CFLAGS32) /Fp"i386/sadis.pch" /Fo"i386/" /Fd"i386/" /c  $(SADIS)
+	$(LINK32) /out:$@ /DLL i386/sawindbg.obj i386/sadis.obj $(LIBS32) 
 
-ia64/$(SAWINDBGDLL) : sawindbg.cpp
+ia64/$(SAWINDBGDLL) : sawindbg.cpp $(SADIS)
 	@ mkdir -p ia64
 	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal sun.jvm.hotspot.debugger.ia64.IA64ThreadContext
+	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.asm.Disassembler
 	@ $(CPP64) /I$(JAVA_HOME)/include /I$(JAVA_HOME)/include/win32 /I$(WINDBG_INCLUDE) $(CFLAGS64) /Fp"ia64/sawindbg.pch" /Fo"ia64/" /Fd"ia64/" /c sawindbg.cpp
-	$(LINK64) /out:$@ /DLL ia64/sawindbg.obj $(LIBS_IA64)
+	@ $(CPP64) /I$(JAVA_HOME)/include /I$(JAVA_HOME)/include/win32 /I$(WINDBG_INCLUDE) $(CFLAGS64) /Fp"ia64/sadis.pch" /Fo"ia64/" /Fd"ia64/" /c $(SADIS)
+	$(LINK64) /out:$@ /DLL ia64/sawindbg.obj ia64/sadis.obj $(LIBS_IA64)
 
-amd64/$(SAWINDBGDLL) : sawindbg.cpp
+amd64/$(SAWINDBGDLL) : sawindbg.cpp $(SADIS)
 	@ mkdir -p amd64
 	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
+	@ $(JAVAH) -jni -classpath ../../../../build/classes sun.jvm.hotspot.asm.Disassembler
 	@ $(CPP64) /I$(JAVA_HOME)/include /I$(JAVA_HOME)/include/win32 /I$(WINDBG_INCLUDE) $(CFLAGS64) /Fp"amd64/sawindbg.pch" /Fo"amd64/" /Fd"amd64/" /c sawindbg.cpp
-	$(LINK64) /out:$@ /DLL amd64/sawindbg.obj $(LIBS_AMD64)
+	@ $(CPP64) /I$(JAVA_HOME)/include /I$(JAVA_HOME)/include/win32 /I$(WINDBG_INCLUDE) $(CFLAGS64) /Fp"amd64/sadis.pch" /Fo"amd64/" /Fd"amd64/" /c $(SADIS)
+	$(LINK64) /out:$@ /DLL amd64/sawindbg.obj amd64/sadis.obj $(LIBS_AMD64)
 
 clean:
 	rm *.h
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java	Fri Oct 12 14:50:07 2012 -0700
@@ -42,6 +42,7 @@
 import sun.jvm.hotspot.oops.*;
 import sun.jvm.hotspot.opto.*;
 import sun.jvm.hotspot.ci.*;
+import sun.jvm.hotspot.asm.*;
 import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.utilities.*;
 import sun.jvm.hotspot.utilities.soql.*;
@@ -564,6 +565,71 @@
                 }
             }
         },
+        // decode raw address
+        new Command("dis", "dis address [length]", false) {
+            public void doit(Tokens t) {
+                int tokens = t.countTokens();
+                if (tokens != 1 && tokens != 2) {
+                    usage();
+                    return;
+                }
+                String name = t.nextToken();
+                Address addr = null;
+                int len = 0x10; // default length
+                try {
+                    addr = VM.getVM().getDebugger().parseAddress(name);
+                } catch (NumberFormatException e) {
+                   out.println(e);
+                   return;
+                }
+                if (tokens == 2) {
+                    try {
+                        len = Integer.parseInt(t.nextToken());
+                    } catch (NumberFormatException e) {
+                        out.println(e);
+                        return;
+                    }
+                }
+                HTMLGenerator generator = new HTMLGenerator(false);
+                out.println(generator.genHTMLForRawDisassembly(addr, len));
+            }
+
+        },
+        // decode codeblob or nmethod
+        new Command("disassemble", "disassemble address", false) {
+            public void doit(Tokens t) {
+                int tokens = t.countTokens();
+                if (tokens != 1) {
+                    usage();
+                    return;
+                }
+                String name = t.nextToken();
+                Address addr = null;
+                try {
+                    addr = VM.getVM().getDebugger().parseAddress(name);
+                } catch (NumberFormatException e) {
+                   out.println(e);
+                   return;
+                }
+
+                HTMLGenerator generator = new HTMLGenerator(false);
+                out.println(generator.genHTML(addr));
+            }
+        },
+        // print Java bytecode disassembly
+        new Command("jdis", "jdis address", false) {
+            public void doit(Tokens t) {
+                int tokens = t.countTokens();
+                if (tokens != 1) {
+                    usage();
+                    return;
+                }
+                Address a = VM.getVM().getDebugger().parseAddress(t.nextToken());
+                Method m = (Method)Metadata.instantiateWrapperFor(a);
+                HTMLGenerator html = new HTMLGenerator(false);
+                out.println(html.genHTML(m));
+            }
+        },
         new Command("revptrs", "revptrs address", false) {
             public void doit(Tokens t) {
                 int tokens = t.countTokens();
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java	Fri Oct 12 14:50:07 2012 -0700
@@ -43,10 +43,6 @@
  * highest-level factory for VM data structures. It makes it simple
  * to start up the debugging system. </P>
  *
- * <P> FIXME: need to add a way to configure the paths to dbx and the
- * DSO from the outside. However, this should work for now for
- * internal use. </P>
- *
  * <P> FIXME: especially with the addition of remote debugging, this
  * has turned into a mess; needs rethinking. </P>
  */
@@ -87,30 +83,7 @@
 
     private String[] jvmLibNames;
 
-    // FIXME: make these configurable, i.e., via a dotfile; also
-    // consider searching within the JDK from which this Java executable
-    // comes to find them
-    private static final String defaultDbxPathPrefix                = "/net/jano.sfbay/export/disk05/hotspot/sa";
-    private static final String defaultDbxSvcAgentDSOPathPrefix     = "/net/jano.sfbay/export/disk05/hotspot/sa";
-
     static void showUsage() {
-        System.out.println("    You can also pass these -D options to java to specify where to find dbx and the \n" +
-        "    Serviceability Agent plugin for dbx:");
-        System.out.println("       -DdbxPathName=<path-to-dbx-executable>\n" +
-        "             Default is derived from dbxPathPrefix");
-        System.out.println("    or");
-        System.out.println("       -DdbxPathPrefix=<xxx>\n" +
-        "             where xxx is the path name of a dir structure that contains:\n" +
-        "                   <os>/<arch>/bin/dbx\n" +
-        "             The default is " + defaultDbxPathPrefix);
-        System.out.println("    and");
-        System.out.println("       -DdbxSvcAgentDSOPathName=<path-to-dbx-serviceability-agent-module>\n" +
-        "             Default is determined from dbxSvcAgentDSOPathPrefix");
-        System.out.println("    or");
-        System.out.println("       -DdbxSvcAgentDSOPathPrefix=<xxx>\n" +
-        "             where xxx is the pathname of a dir structure that contains:\n" +
-        "                   <os>/<arch>/bin/lib/libsvc_agent_dbx.so\n" +
-        "             The default is " + defaultDbxSvcAgentDSOPathPrefix);
     }
 
     public HotSpotAgent() {
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/TestDebugger.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2000, 2011, 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.
- *
- */
-
-package sun.jvm.hotspot;
-
-import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.debugger.proc.*;
-
-// A test of the debugger backend. This should be used to connect to
-// the helloWorld.cpp program.
-
-public class TestDebugger {
-
-  private static void usage() {
-    System.out.println("usage: java TestDebugger [pid]");
-    System.out.println("pid must be the process ID of the helloWorld process");
-    System.exit(1);
-  }
-
-  public static void main(String[] args) {
-    try {
-      if (args.length != 1) {
-        usage();
-      }
-
-      int pid = 0;
-      try {
-        pid = Integer.parseInt(args[0]);
-      }
-      catch (NumberFormatException e) {
-        usage();
-      }
-
-      JVMDebugger debugger = new ProcDebuggerLocal(null, true);
-
-      try {
-        debugger.attach(pid);
-      }
-      catch (DebuggerException e) {
-        System.err.print("Error attaching to process ID " + pid + ": ");
-        if (e.getMessage() != null) {
-          System.err.print(e.getMessage());
-        }
-        System.err.println();
-        System.exit(1);
-      }
-
-      // HACK: configure debugger with primitive type sizes to get
-      // Java types going
-      debugger.configureJavaPrimitiveTypeSizes(1, 1, 2, 8, 4, 4, 8, 2);
-
-      // FIXME: figure out how to canonicalize and/or eliminate
-      // loadobject specification
-      String loadObjectName = "-";
-
-      //    long strAddr = debugger.lookup("helloWorld", "helloWorldString");
-      Address addr = debugger.lookup(loadObjectName, "helloWorldString");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"helloWorldString\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-
-      // This is a pointer which points to the start of storage.
-      // Dereference it.
-      addr = addr.getAddressAt(0);
-
-      // Read the number of bytes we know we need
-      int helloWorldLen = 13;
-      byte[] data = new byte[helloWorldLen];
-      for (int i = 0; i < helloWorldLen; ++i) {
-        data[i] = (byte) addr.getCIntegerAt(i, 1, false);
-      }
-
-      // Convert to characters
-      char[] chars = new char[data.length];
-      for (int i = 0; i < data.length; ++i) {
-        chars[i] = (char) data[i];
-      }
-      String helloWorldStr = new String(chars);
-
-      System.out.println("Successfully read string \"" + helloWorldStr + "\" from target process\n");
-
-      // Test all Java data types (see helloWorld.cpp)
-      byte   expectedByteValue   = (byte) 132;
-      short  expectedShortValue  = (short) 27890;
-      int    expectedIntValue    = 1020304050;
-      long   expectedLongValue   = 102030405060708090L;
-      float  expectedFloatValue  = 35.4F;
-      double expectedDoubleValue = 1.23456789;
-      byte   byteValue   = 0;
-      short  shortValue  = 0;
-      int    intValue    = 0;
-      long   longValue   = 0;
-      float  floatValue  = 0;
-      double doubleValue = 0;
-
-      addr = debugger.lookup(loadObjectName, "testByte");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"testByte\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-      byteValue = addr.getJByteAt(0);
-      if (byteValue != expectedByteValue) {
-        System.err.println("Error: unexpected byte value (got " +
-                           byteValue + ", expected " + expectedByteValue + ")");
-        System.exit(1);
-      }
-
-      addr = debugger.lookup(loadObjectName, "testShort");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"testShort\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-      shortValue = addr.getJShortAt(0);
-      if (shortValue != expectedShortValue) {
-        System.err.println("Error: unexpected short value (got " +
-                           shortValue + ", expected " + expectedShortValue + ")");
-        System.exit(1);
-      }
-
-      addr = debugger.lookup(loadObjectName, "testInt");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"testInt\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-      intValue = addr.getJIntAt(0);
-      if (intValue != expectedIntValue) {
-        System.err.println("Error: unexpected int value (got " +
-                           intValue + ", expected " + expectedIntValue + ")");
-        System.exit(1);
-      }
-
-      addr = debugger.lookup(loadObjectName, "testLong");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"testLong\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-      longValue = addr.getJLongAt(0);
-      if (longValue != expectedLongValue) {
-        System.err.println("Error: unexpected long value (got " +
-                           longValue + ", expected " + expectedLongValue + ")");
-        System.exit(1);
-      }
-
-      addr = debugger.lookup(loadObjectName, "testFloat");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"testFloat\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-      floatValue = addr.getJFloatAt(0);
-      if (floatValue != expectedFloatValue) {
-        System.err.println("Error: unexpected float value (got " +
-                           floatValue + ", expected " + expectedFloatValue + ")");
-        System.exit(1);
-      }
-
-      addr = debugger.lookup(loadObjectName, "testDouble");
-      if (addr == null) {
-        System.err.println("Error looking up symbol \"testDouble\" in context \"" +
-                           loadObjectName + "\"");
-        System.exit(1);
-      }
-      doubleValue = addr.getJDoubleAt(0);
-      if (doubleValue != expectedDoubleValue) {
-        System.err.println("Error: unexpected double value (got " +
-                           doubleValue + ", expected " + expectedDoubleValue + ")");
-        System.exit(1);
-      }
-
-      System.err.println("All tests passed successfully.");
-
-      debugger.detach();
-    }
-    catch (AddressException e) {
-      System.err.println("Error occurred during test:");
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/AbstractInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public abstract class AbstractInstruction implements Instruction {
-   protected final String name;
-
-   public AbstractInstruction(String name) {
-      this.name = name;
-   }
-
-   public String getName() {
-      return name;
-   }
-
-   // some type testers
-   public boolean isIllegal() {
-      return false;
-   }
-
-   public boolean isArithmetic() {
-      return false;
-   }
-
-   public boolean isLogical() {
-      return false;
-   }
-
-   public boolean isShift() {
-      return false;
-   }
-
-   public boolean isMove() {
-      return false;
-   }
-
-   public boolean isBranch() {
-      return false;
-   }
-
-   public boolean isCall() {
-      return false;
-   }
-
-   public boolean isReturn() {
-      return false;
-   }
-
-   public boolean isLoad() {
-      return false;
-   }
-
-   public boolean isStore() {
-      return false;
-   }
-
-   public boolean isFloat() {
-      return false;
-   }
-
-   public boolean isTrap() {
-      return false;
-   }
-
-   public boolean isNoop() {
-      return false;
-   }
-
-   // convert the instruction as String given currentPc
-   // and SymbolFinder
-
-   public String asString(long currentPc, SymbolFinder symFinder) {
-      return name;
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Address.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public abstract class Address extends Operand {
-   public boolean isAddress() {
-      return true;
-   }
-
-   public abstract String toString();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Arithmetic.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface Arithmetic extends Instruction, RTLOperations {
-   public Operand[]  getArithmeticSources();
-   public Operand    getArithmeticDestination();
-   public int        getOperation(); // one of RTLOperations
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ArithmeticInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface ArithmeticInstruction extends Instruction, RTLOperations {
-   public Operand[]  getArithmeticSources();
-   public Operand    getArithmeticDestination();
-   public int        getOperation(); // one of RTLOperations
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/BaseIndexScaleDispAddress.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-// address is calculated as (base + (index * scale) + displacement)
-// optionally index is auto incremented or decremented
-
-public abstract class BaseIndexScaleDispAddress extends IndirectAddress {
-   private final Register base, index;
-   private final int      scale;
-   private final long     disp;
-   private boolean  isAutoIncr;
-   private boolean  isAutoDecr;
-
-   public BaseIndexScaleDispAddress(Register base, Register index, long disp, int scale) {
-      this.base = base;
-      this.index = index;
-      this.disp = disp;
-      this.scale = scale;
-   }
-
-   public BaseIndexScaleDispAddress(Register base, Register index, long disp) {
-      this(base, index, disp, 1);
-   }
-
-   public BaseIndexScaleDispAddress(Register base, Register index) {
-      this(base, index, 0L, 1);
-   }
-
-   public BaseIndexScaleDispAddress(Register base, long disp) {
-      this(base, null, disp, 1);
-   }
-
-   public Register getBase() {
-      return base;
-   }
-
-   public Register getIndex() {
-      return index;
-   }
-
-   public int      getScale() {
-      return scale;
-   }
-
-   public long     getDisplacement() {
-      return disp;
-   }
-
-   // is the index auto decremented or incremented?
-   public boolean  isAutoIncrement() {
-      return isAutoIncr;
-   }
-
-   public void setAutoIncrement(boolean value) {
-      isAutoIncr = value;
-   }
-
-   public boolean  isAutoDecrement() {
-      return isAutoDecr;
-   }
-
-   public void setAutoDecrement(boolean value) {
-      isAutoDecr = value;
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/BranchInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface BranchInstruction extends Instruction {
-   public boolean isConditional();
-   public Address getBranchDestination();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/CPUHelper.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface CPUHelper {
-   public Disassembler createDisassembler(long startPc, byte[] code);
-   public Register getIntegerRegister(int num);
-   public Register getFloatRegister(int num);
-   public Register getStackPointer();
-   public Register getFramePointer();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/CallInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface CallInstruction extends BranchInstruction {
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/DirectAddress.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public class DirectAddress extends Address {
-   private long value;
-   public DirectAddress(long value) {
-      this.value = value;
-   }
-
-   public long getValue() {
-      return value;
-   }
-
-   public String toString() {
-      return Long.toHexString(value);
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java	Fri Oct 12 14:50:07 2012 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2012, 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,22 +24,134 @@
 
 package sun.jvm.hotspot.asm;
 
-public abstract class Disassembler {
-   protected long   startPc;
-   protected byte[] code;
+import java.io.PrintStream;
+import java.util.Observer;
+import java.util.Observable;
+import sun.jvm.hotspot.code.CodeBlob;
+import sun.jvm.hotspot.code.NMethod;
+import sun.jvm.hotspot.debugger.Address;
+import sun.jvm.hotspot.runtime.VM;
+
+public class Disassembler {
+   private static String options = "";
+   private static long decode_function;
 
-   public Disassembler(long startPc, byte[] code) {
-      this.startPc = startPc;
-      this.code = code;
+   protected long startPc;
+   protected byte[] code;
+   private CodeBlob blob;
+   private NMethod nmethod;
+
+   public static void decode(InstructionVisitor visitor, CodeBlob blob) {
+      decode(visitor, blob, blob.codeBegin(), blob.codeEnd());
+   }
+
+   public static void decode(InstructionVisitor visitor, CodeBlob blob, Address begin, Address end) {
+      int codeSize = (int)end.minus(begin);
+      long startPc = VM.getAddressValue(begin);
+      byte[] code = new byte[codeSize];
+      for (int i = 0; i < code.length; i++)
+         code[i] = begin.getJByteAt(i);
+      Disassembler dis = new Disassembler(startPc, code);
+      dis.decode(visitor);
    }
 
-   public long getStartPC() {
-      return startPc;
+   private Disassembler(long startPc, byte[] code) {
+      this.startPc = startPc;
+      this.code = code;
+
+      // Lazily load hsdis
+      if (decode_function == 0) {
+         StringBuilder path = new StringBuilder(System.getProperty("java.home"));
+         String sep = System.getProperty("file.separator");
+         String os = System.getProperty("os.name");
+         String libname = "hsdis";
+         String arch = System.getProperty("os.arch");
+         if (os.lastIndexOf("Windows", 0) != -1) {
+            path.append(sep + "bin" + sep);
+            libname += ".dll";
+         } else if (os.lastIndexOf("SunOS", 0) != -1) {
+            if (arch.equals("x86") || arch.equals("i386")) {
+               path.append(sep + "lib" + sep + "i386" + sep);
+               libname +=  "-i386" + ".so";
+            } else if (arch.equals("amd64")) {
+               path.append(sep + "lib" + sep + "amd64" + sep);
+               libname +=  "-amd64" + ".so";
+            } else {
+               path.append(sep + "lib" + sep + arch + sep);
+               libname +=  "-" + arch + ".so";
+            }
+         } else if (os.lastIndexOf("Linux", 0) != -1) {
+            if (arch.equals("x86") || arch.equals("i386")) {
+               path.append(sep + "lib" + sep + "i386" + sep);
+               libname += "-i386.so";
+            } else if (arch.equals("amd64") || arch.equals("x86_64")) {
+               path.append(sep + "lib" + sep + "amd64" + sep);
+               libname +=  "-amd64.so";
+            } else {
+               path.append(sep + "lib" + sep + arch + sep);
+               libname +=  "-" + arch + ".so";
+            }
+         } else if (os.lastIndexOf("Mac OS X", 0) != -1) {
+            path.append(sep + "lib" + sep);
+            libname += "-amd64" + ".dylib";       // x86_64 => amd64
+         } else {
+            path.append(sep + "lib" + sep + "arch" + sep);
+            libname +=  "-" + arch + ".so";
+         }
+         decode_function = load_library(path.toString(), libname);
+      }
    }
 
-   public byte[] getCode() {
-      return code;
+   private static native long load_library(String installed_jrepath, String hsdis_library_name);
+
+   private native void decode(InstructionVisitor visitor, long pc, byte[] code,
+                              String options, long decode_function);
+
+   private void decode(InstructionVisitor visitor) {
+      visitor.prologue();
+      decode(visitor, startPc, code, options, decode_function);
+      visitor.epilogue();
+   }
+
+   private boolean match(String event, String tag) {
+      if (!event.startsWith(tag))
+         return false;
+      int taglen = tag.length();
+      if (taglen == event.length()) return true;
+      char delim = event.charAt(taglen);
+      return delim == ' ' || delim == '/' || delim == '=';
    }
 
-   public abstract void decode(InstructionVisitor visitor);
+   // This is called from the native code to process various markers
+   // in the dissassembly.
+   private long handleEvent(InstructionVisitor visitor, String event, long arg) {
+      if (match(event, "insn")) {
+         try {
+            visitor.beginInstruction(arg);
+         } catch (Throwable e) {
+            e.printStackTrace();
+         }
+      } else if (match(event, "/insn")) {
+         try {
+            visitor.endInstruction(arg);
+         } catch (Throwable e) {
+            e.printStackTrace();
+         }
+      } else if (match(event, "addr")) {
+         if (arg != 0) {
+            visitor.printAddress(arg);
+         }
+         return arg;
+      } else if (match(event, "mach")) {
+         // output().printf("[Disassembling for mach='%s']\n", arg);
+      } else {
+         // ignore unrecognized markup
+      }
+      return 0;
+   }
+
+   // This called from the native code to perform printing
+   private  void rawPrint(InstructionVisitor visitor, String s) {
+      visitor.print(s);
+   }
 }
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Immediate.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-// Immediate is a Number operand
-
-public class Immediate extends ImmediateOrRegister {
-   private final Number value;
-
-   public Immediate(Number value) {
-      this.value = value;
-   }
-
-   public Number getNumber() {
-      return value;
-   }
-
-   public boolean isImmediate() {
-      return true;
-   }
-
-   public String toString() {
-      return value.toString();
-   }
-
-   public int hashCode() {
-      return value.hashCode();
-   }
-
-   public boolean equals(Object obj) {
-      if (obj == null)
-         return false;
-
-      if (getClass() != obj.getClass())
-         return false;
-
-      Immediate other = (Immediate) obj;
-      return value.equals(other.value);
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/IndirectAddress.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public abstract class IndirectAddress extends Address {
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/Instruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface Instruction {
-   public String getName();
-
-   // total size in bytes (operands + opcode).
-   // for eg. in sparc it is always 4 (= 32bits)
-   public int getSize();
-
-   // some type testers
-   public boolean isIllegal();
-   public boolean isArithmetic();
-   public boolean isLogical();
-   public boolean isShift();
-   public boolean isMove();
-   public boolean isBranch();
-   public boolean isCall();
-   public boolean isReturn();
-   public boolean isLoad();
-   public boolean isStore();
-   public boolean isFloat();
-   public boolean isTrap();
-   public boolean isNoop();
-
-   // convert the instruction as String given currentPc
-   // and SymbolFinder
-
-   public String asString(long currentPc, SymbolFinder symFinder);
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/InstructionVisitor.java	Tue Oct 09 14:19:11 2012 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/InstructionVisitor.java	Fri Oct 12 14:50:07 2012 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2012, 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,6 +26,9 @@
 
 public interface InstructionVisitor {
    public void prologue();
-   public void visit(long currentPc, Instruction instr);
+   public void beginInstruction(long currentPc);
+   public void printAddress(long address);
+   public void print(String format);
+   public void endInstruction(long endPc);
    public void epilogue();
 }
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/LoadInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface LoadInstruction extends MemoryInstruction {
-   public Address  getLoadSource();
-   public Register[] getLoadDestinations();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/LogicInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface LogicInstruction extends Instruction, RTLOperations {
-   public Operand[]  getLogicSources();
-   public Operand    getLogicDestination();
-   public int        getOperation(); // one of RTLOperations
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/MemoryInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface MemoryInstruction extends RTLDataTypes {
-   public int getDataType(); // one of the RTLDataTypes.
-   public boolean isConditional(); // conditional store like swap or v9 like non-faulting loads
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/MoveInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface MoveInstruction extends Instruction {
-   public ImmediateOrRegister  getMoveSource();
-   public Register getMoveDestination();
-   // for condition moves
-   public boolean  isConditional();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/PCRelativeAddress.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-// address is specified as an offset from current PC
-
-public class PCRelativeAddress extends IndirectAddress {
-   private final long disp;
-
-   public PCRelativeAddress(long disp) {
-       this.disp = disp;
-   }
-
-   public String toString() {
-      return new Long(disp).toString();
-   }
-
-   public long getDisplacement() {
-      return disp;
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/RTLDataTypes.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface RTLDataTypes {
-
-   // HALF = 16 bits, WORD = 32 bits, DWORD = 64 bits and QWORD = 128 bits.
-
-   public static final int RTLDT_SIGNED_BYTE    = 0;
-   public static final int RTLDT_UNSIGNED_BYTE  = 1;
-   public static final int RTLDT_SIGNED_HALF    = 2;
-   public static final int RTLDT_UNSIGNED_HALF  = 3;
-   public static final int RTLDT_SIGNED_WORD    = 4;
-   public static final int RTLDT_UNSIGNED_WORD  = 5;
-   public static final int RTLDT_SIGNED_DWORD   = 6;
-   public static final int RTLDT_UNSIGNED_DWORD = 7;
-   public static final int RTLDT_SIGNED_QWORD   = 8;
-   public static final int RTLDT_UNSIGNED_QWORD = 9;
-
-   // float is 4 bytes, double is 8 bytes, extended double is 10 bytes
-   // and quad is 16 bytes.
-
-   public static final int RTLDT_FL_SINGLE     = 10;
-   public static final int RTLDT_FL_DOUBLE     = 11;
-   public static final int RTLDT_FL_EXT_DOUBLE = 12;
-   public static final int RTLDT_FL_QUAD       = 13;
-
-   public static final int RTLDT_STRING        = 14;
-
-   public static final int RTLDT_UNKNOWN       = Integer.MAX_VALUE;
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/RTLOperations.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface RTLOperations {
-
-   // arithmetic operations
-   public static final int RTLOP_ADD          = 0;
-   // with carry
-   public static final int RTLOP_ADDC         = 1;
-   public static final int RTLOP_SUB          = 2;
-   // with carry
-   public static final int RTLOP_SUBC         = 3;
-   public static final int RTLOP_SMUL         = 4;
-   public static final int RTLOP_UMUL         = 5;
-   public static final int RTLOP_SDIV         = 6;
-   public static final int RTLOP_UDIV         = 7;
-
-   public static final int RTLOP_MAX_ARITHMETIC = RTLOP_UDIV;
-
-   // logical operations
-   public static final int RTLOP_AND          = 8;
-   public static final int RTLOP_OR           = 9;
-   public static final int RTLOP_NOT          = 10;
-   public static final int RTLOP_NAND         = 11;
-   public static final int RTLOP_NOR          = 12;
-   public static final int RTLOP_XOR          = 13;
-   public static final int RTLOP_XNOR         = 14;
-
-   public static final int RTLOP_MAX_LOGICAL  = RTLOP_XNOR;
-
-   // shift operations
-   public static final int RTLOP_SRL          = 15;
-   public static final int RTLOP_SRA          = 16;
-   public static final int RTLOP_SLL          = 17;
-
-   public static final int RTLOP_MAX_SHIFT    = RTLOP_SLL;
-
-   public static final int RTLOP_UNKNOWN      = Integer.MAX_VALUE;
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ReturnInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface ReturnInstruction extends BranchInstruction {
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ShiftInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface ShiftInstruction extends Instruction, RTLOperations {
-   public Operand getShiftSource();
-   public Operand  getShiftLength(); // number of bits to shift
-   public Operand getShiftDestination();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/StoreInstruction.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm;
-
-public interface StoreInstruction extends MemoryInstruction {
-   public Register[]  getStoreSources();
-   public Address     getStoreDestination();
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64FloatRegisters.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.amd64;
-
-import sun.jvm.hotspot.utilities.Assert;
-
-public class AMD64FloatRegisters {
-
-   public static int getNumRegisters() {
-      return NUM_REGIXMMERS;
-   }
-
-   public static AMD64FloatRegister getRegister(int regNum) {
-      if (Assert.ASSERTS_ENABLED) {
-         Assert.that(regNum > -1 && regNum < NUM_REGIXMMERS, "invalid float register number!");
-      }
-      return registers[regNum];
-   }
-
-   public static String getRegisterName(int i) {
-      return "XMM(" + i + ")";
-   }
-
-   public static final AMD64FloatRegister XMM0;
-   public static final AMD64FloatRegister XMM1;
-   public static final AMD64FloatRegister XMM2;
-   public static final AMD64FloatRegister XMM3;
-   public static final AMD64FloatRegister XMM4;
-   public static final AMD64FloatRegister XMM5;
-   public static final AMD64FloatRegister XMM6;
-   public static final AMD64FloatRegister XMM7;
-   public static final AMD64FloatRegister XMM8;
-   public static final AMD64FloatRegister XMM9;
-   public static final AMD64FloatRegister XMM10;
-   public static final AMD64FloatRegister XMM11;
-   public static final AMD64FloatRegister XMM12;
-   public static final AMD64FloatRegister XMM13;
-   public static final AMD64FloatRegister XMM14;
-   public static final AMD64FloatRegister XMM15;
-
-   public static final int NUM_REGIXMMERS = 16;
-
-   private static final AMD64FloatRegister[] registers;
-
-   static {
-      XMM0 = new AMD64FloatRegister(0);
-      XMM1 = new AMD64FloatRegister(1);
-      XMM2 = new AMD64FloatRegister(2);
-      XMM3 = new AMD64FloatRegister(3);
-      XMM4 = new AMD64FloatRegister(4);
-      XMM5 = new AMD64FloatRegister(5);
-      XMM6 = new AMD64FloatRegister(6);
-      XMM7 = new AMD64FloatRegister(7);
-      XMM8 = new AMD64FloatRegister(8);
-      XMM9 = new AMD64FloatRegister(9);
-      XMM10 = new AMD64FloatRegister(10);
-      XMM11 = new AMD64FloatRegister(11);
-      XMM12 = new AMD64FloatRegister(12);
-      XMM13 = new AMD64FloatRegister(13);
-      XMM14 = new AMD64FloatRegister(14);
-      XMM15 = new AMD64FloatRegister(15);
-
-      registers = new AMD64FloatRegister[] {
-                     XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7,
-                     XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15
-                  };
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Helper.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.amd64;
-
-import sun.jvm.hotspot.asm.*;
-
-
-public class AMD64Helper implements CPUHelper {
-   public Disassembler createDisassembler(long startPc, byte[] code) {
-      // FIXME: no disassembler yet
-      return null;
-   }
-
-   public Register getIntegerRegister(int num) {
-      return AMD64Registers.getRegister(num);
-   }
-
-   public Register getFloatRegister(int num) {
-      return AMD64FloatRegisters.getRegister(num);
-   }
-
-   public Register getStackPointer() {
-      return AMD64Registers.RSP;
-   }
-
-   public Register getFramePointer() {
-      return AMD64Registers.RBP;
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Register.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.amd64;
-
-import sun.jvm.hotspot.asm.*;
-
-public class AMD64Register extends Register {
-   protected String name;
-   public AMD64Register(int num, String name) {
-     super(num);
-     this.name = name;
-   }
-   public int getNumberOfRegisters() {
-     return AMD64Registers.getNumberOfRegisters();
-   }
-   public String toString() {
-     return name;
-   }
-   public boolean isFramePointer() {
-     return number == 5; //rbp
-   }
-   public boolean isStackPointer() {
-     return number == 4; //rsp
-   }
-   public boolean isFloat() {
-     return false;
-   }
-   public boolean isSegmentPointer() {
-     return false;
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/amd64/AMD64Registers.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.amd64;
-
-import sun.jvm.hotspot.utilities.*;
-
-public class AMD64Registers {
-   public static final int NUM_REGISTERS = 16;
-
-   public static final AMD64Register RAX;
-   public static final AMD64Register RCX;
-   public static final AMD64Register RDX;
-   public static final AMD64Register RBX;
-   public static final AMD64Register RSP;
-   public static final AMD64Register RBP;
-   public static final AMD64Register RSI;
-   public static final AMD64Register RDI;
-   public static final AMD64Register R8;
-   public static final AMD64Register R9;
-   public static final AMD64Register R10;
-   public static final AMD64Register R11;
-   public static final AMD64Register R12;
-   public static final AMD64Register R13;
-   public static final AMD64Register R14;
-   public static final AMD64Register R15;
-
-   private static final AMD64Register[] registers;
-
-   static {
-      RAX = new AMD64Register(0, "rax");
-      RCX = new AMD64Register(1, "rcx");
-      RDX = new AMD64Register(2, "rdx");
-      RBX = new AMD64Register(3, "rbx");
-      RSP = new AMD64Register(4, "rsp");
-      RBP = new AMD64Register(5, "rbp");
-      RSI = new AMD64Register(6, "rsi");
-      RDI = new AMD64Register(7, "rdi");
-      R8  = new AMD64Register(8, "r8" );
-      R9  = new AMD64Register(9, "r9" );
-      R10 = new AMD64Register(10,"r10");
-      R11 = new AMD64Register(11,"r11");
-      R12 = new AMD64Register(12,"r12");
-      R13 = new AMD64Register(13,"r13");
-      R14 = new AMD64Register(14,"r14");
-      R15 = new AMD64Register(15,"r15");
-      registers = new AMD64Register[] {
-                     RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI,
-                     R8, R9, R10, R11, R12, R13, R14, R15
-                  };
-   }
-
-   public static int getNumberOfRegisters() {
-      return NUM_REGISTERS;
-   }
-
-   public static AMD64Register getRegister(int regNum) {
-      if (Assert.ASSERTS_ENABLED) {
-         Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid integer register number!");
-      }
-      return registers[regNum];
-   }
-
-   //Return the register name
-   public static String getRegisterName(int regNum) {
-      if (Assert.ASSERTS_ENABLED) {
-         Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid integer register number!");
-      }
-      return registers[regNum].toString();
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegister.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.ia64;
-
-import sun.jvm.hotspot.asm.Register;
-import sun.jvm.hotspot.utilities.Assert;
-
-public class IA64FloatRegister extends IA64Register {
-
-    public IA64FloatRegister(int number) {
-        super(number);
-    }
-
-    public int getNumber() {
-        return number;
-    }
-
-    public static final int SINGLE_PRECISION = 1;
-    public static final int DOUBLE_PRECISION = 2;
-    public static final int QUAD_PRECISION = 3;
-
-    public int getNumber(int width) {
-        return number;
-    }
-
-    private static final int nofRegisters = 128;
-    public int getNumberOfRegisters() {
-        return nofRegisters;
-    }
-
-    public boolean isFloat() {
-        return true;
-    }
-
-    public boolean isFramePointer() {
-        return false;
-    }
-
-    public boolean isStackPointer() {
-        return false;
-    }
-
-    public boolean isValid() {
-        return number >= 0 && number < nofRegisters;
-    }
-
-    public String toString() {
-        return IA64FloatRegisters.getRegisterName(number);
-    }
-
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64FloatRegisters.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.ia64;
-
-import sun.jvm.hotspot.utilities.Assert;
-
-public class IA64FloatRegisters {
-    public static int getNumRegisters() {
-        return 128;
-    }
-
-    public static IA64FloatRegister getRegister(int i) {
-        Assert.that(i >= 0 && i < 128, "float register number is invalid");
-        return registers[i];
-    }
-
-    public static String getRegisterName(int i) {
-        return "%f" + i;
-    }
-
-    public static final IA64FloatRegister F0;
-    public static final IA64FloatRegister F1;
-    public static final IA64FloatRegister F2;
-    public static final IA64FloatRegister F3;
-    public static final IA64FloatRegister F4;
-    public static final IA64FloatRegister F5;
-    public static final IA64FloatRegister F6;
-    public static final IA64FloatRegister F7;
-    public static final IA64FloatRegister F8;
-    public static final IA64FloatRegister F9;
-    public static final IA64FloatRegister F10;
-    public static final IA64FloatRegister F11;
-    public static final IA64FloatRegister F12;
-    public static final IA64FloatRegister F13;
-    public static final IA64FloatRegister F14;
-    public static final IA64FloatRegister F15;
-    public static final IA64FloatRegister F16;
-    public static final IA64FloatRegister F17;
-    public static final IA64FloatRegister F18;
-    public static final IA64FloatRegister F19;
-    public static final IA64FloatRegister F20;
-    public static final IA64FloatRegister F21;
-    public static final IA64FloatRegister F22;
-    public static final IA64FloatRegister F23;
-    public static final IA64FloatRegister F24;
-    public static final IA64FloatRegister F25;
-    public static final IA64FloatRegister F26;
-    public static final IA64FloatRegister F27;
-    public static final IA64FloatRegister F28;
-    public static final IA64FloatRegister F29;
-    public static final IA64FloatRegister F30;
-    public static final IA64FloatRegister F31;
-    public static final IA64FloatRegister F32;
-    public static final IA64FloatRegister F33;
-    public static final IA64FloatRegister F34;
-    public static final IA64FloatRegister F35;
-    public static final IA64FloatRegister F36;
-    public static final IA64FloatRegister F37;
-    public static final IA64FloatRegister F38;
-    public static final IA64FloatRegister F39;
-    public static final IA64FloatRegister F40;
-    public static final IA64FloatRegister F41;
-    public static final IA64FloatRegister F42;
-    public static final IA64FloatRegister F43;
-    public static final IA64FloatRegister F44;
-    public static final IA64FloatRegister F45;
-    public static final IA64FloatRegister F46;
-    public static final IA64FloatRegister F47;
-    public static final IA64FloatRegister F48;
-    public static final IA64FloatRegister F49;
-    public static final IA64FloatRegister F50;
-    public static final IA64FloatRegister F51;
-    public static final IA64FloatRegister F52;
-    public static final IA64FloatRegister F53;
-    public static final IA64FloatRegister F54;
-    public static final IA64FloatRegister F55;
-    public static final IA64FloatRegister F56;
-    public static final IA64FloatRegister F57;
-    public static final IA64FloatRegister F58;
-    public static final IA64FloatRegister F59;
-    public static final IA64FloatRegister F60;
-    public static final IA64FloatRegister F61;
-    public static final IA64FloatRegister F62;
-    public static final IA64FloatRegister F63;
-    public static final IA64FloatRegister F64;
-    public static final IA64FloatRegister F65;
-    public static final IA64FloatRegister F66;
-    public static final IA64FloatRegister F67;
-    public static final IA64FloatRegister F68;
-    public static final IA64FloatRegister F69;
-    public static final IA64FloatRegister F70;
-    public static final IA64FloatRegister F71;
-    public static final IA64FloatRegister F72;
-    public static final IA64FloatRegister F73;
-    public static final IA64FloatRegister F74;
-    public static final IA64FloatRegister F75;
-    public static final IA64FloatRegister F76;
-    public static final IA64FloatRegister F77;
-    public static final IA64FloatRegister F78;
-    public static final IA64FloatRegister F79;
-    public static final IA64FloatRegister F80;
-    public static final IA64FloatRegister F81;
-    public static final IA64FloatRegister F82;
-    public static final IA64FloatRegister F83;
-    public static final IA64FloatRegister F84;
-    public static final IA64FloatRegister F85;
-    public static final IA64FloatRegister F86;
-    public static final IA64FloatRegister F87;
-    public static final IA64FloatRegister F88;
-    public static final IA64FloatRegister F89;
-    public static final IA64FloatRegister F90;
-    public static final IA64FloatRegister F91;
-    public static final IA64FloatRegister F92;
-    public static final IA64FloatRegister F93;
-    public static final IA64FloatRegister F94;
-    public static final IA64FloatRegister F95;
-    public static final IA64FloatRegister F96;
-    public static final IA64FloatRegister F97;
-    public static final IA64FloatRegister F98;
-    public static final IA64FloatRegister F99;
-    public static final IA64FloatRegister F100;
-    public static final IA64FloatRegister F101;
-    public static final IA64FloatRegister F102;
-    public static final IA64FloatRegister F103;
-    public static final IA64FloatRegister F104;
-    public static final IA64FloatRegister F105;
-    public static final IA64FloatRegister F106;
-    public static final IA64FloatRegister F107;
-    public static final IA64FloatRegister F108;
-    public static final IA64FloatRegister F109;
-    public static final IA64FloatRegister F110;
-    public static final IA64FloatRegister F111;
-    public static final IA64FloatRegister F112;
-    public static final IA64FloatRegister F113;
-    public static final IA64FloatRegister F114;
-    public static final IA64FloatRegister F115;
-    public static final IA64FloatRegister F116;
-    public static final IA64FloatRegister F117;
-    public static final IA64FloatRegister F118;
-    public static final IA64FloatRegister F119;
-    public static final IA64FloatRegister F120;
-    public static final IA64FloatRegister F121;
-    public static final IA64FloatRegister F122;
-    public static final IA64FloatRegister F123;
-    public static final IA64FloatRegister F124;
-    public static final IA64FloatRegister F125;
-    public static final IA64FloatRegister F126;
-    public static final IA64FloatRegister F127;
-    public static final int NUM_REGISTERS = 128;
-    private static final IA64FloatRegister registers[];
-
-    static {
-     F0 = new IA64FloatRegister(0);
-     F1 = new IA64FloatRegister(1);
-     F2 = new IA64FloatRegister(2);
-     F3 = new IA64FloatRegister(3);
-     F4 = new IA64FloatRegister(4);
-     F5 = new IA64FloatRegister(5);
-     F6 = new IA64FloatRegister(6);
-     F7 = new IA64FloatRegister(7);
-     F8 = new IA64FloatRegister(8);
-     F9 = new IA64FloatRegister(9);
-     F10 = new IA64FloatRegister(10);
-     F11 = new IA64FloatRegister(11);
-     F12 = new IA64FloatRegister(12);
-     F13 = new IA64FloatRegister(13);
-     F14 = new IA64FloatRegister(14);
-     F15 = new IA64FloatRegister(15);
-     F16 = new IA64FloatRegister(16);
-     F17 = new IA64FloatRegister(17);
-     F18 = new IA64FloatRegister(18);
-     F19 = new IA64FloatRegister(19);
-     F20 = new IA64FloatRegister(20);
-     F21 = new IA64FloatRegister(21);
-     F22 = new IA64FloatRegister(22);
-     F23 = new IA64FloatRegister(23);
-     F24 = new IA64FloatRegister(24);
-     F25 = new IA64FloatRegister(25);
-     F26 = new IA64FloatRegister(26);
-     F27 = new IA64FloatRegister(27);
-     F28 = new IA64FloatRegister(28);
-     F29 = new IA64FloatRegister(29);
-     F30 = new IA64FloatRegister(30);
-     F31 = new IA64FloatRegister(31);
-     F32 = new IA64FloatRegister(32);
-     F33 = new IA64FloatRegister(33);
-     F34 = new IA64FloatRegister(34);
-     F35 = new IA64FloatRegister(35);
-     F36 = new IA64FloatRegister(36);
-     F37 = new IA64FloatRegister(37);
-     F38 = new IA64FloatRegister(38);
-     F39 = new IA64FloatRegister(39);
-     F40 = new IA64FloatRegister(40);
-     F41 = new IA64FloatRegister(41);
-     F42 = new IA64FloatRegister(42);
-     F43 = new IA64FloatRegister(43);
-     F44 = new IA64FloatRegister(44);
-     F45 = new IA64FloatRegister(45);
-     F46 = new IA64FloatRegister(46);
-     F47 = new IA64FloatRegister(47);
-     F48 = new IA64FloatRegister(48);
-     F49 = new IA64FloatRegister(49);
-     F50 = new IA64FloatRegister(50);
-     F51 = new IA64FloatRegister(51);
-     F52 = new IA64FloatRegister(52);
-     F53 = new IA64FloatRegister(53);
-     F54 = new IA64FloatRegister(54);
-     F55 = new IA64FloatRegister(55);
-     F56 = new IA64FloatRegister(56);
-     F57 = new IA64FloatRegister(57);
-     F58 = new IA64FloatRegister(58);
-     F59 = new IA64FloatRegister(59);
-     F60 = new IA64FloatRegister(60);
-     F61 = new IA64FloatRegister(61);
-     F62 = new IA64FloatRegister(62);
-     F63 = new IA64FloatRegister(63);
-     F64 = new IA64FloatRegister(64);
-     F65 = new IA64FloatRegister(65);
-     F66 = new IA64FloatRegister(66);
-     F67 = new IA64FloatRegister(67);
-     F68 = new IA64FloatRegister(68);
-     F69 = new IA64FloatRegister(69);
-     F70 = new IA64FloatRegister(70);
-     F71 = new IA64FloatRegister(71);
-     F72 = new IA64FloatRegister(72);
-     F73 = new IA64FloatRegister(73);
-     F74 = new IA64FloatRegister(74);
-     F75 = new IA64FloatRegister(75);
-     F76 = new IA64FloatRegister(76);
-     F77 = new IA64FloatRegister(77);
-     F78 = new IA64FloatRegister(78);
-     F79 = new IA64FloatRegister(79);
-     F80 = new IA64FloatRegister(80);
-     F81 = new IA64FloatRegister(81);
-     F82 = new IA64FloatRegister(82);
-     F83 = new IA64FloatRegister(83);
-     F84 = new IA64FloatRegister(84);
-     F85 = new IA64FloatRegister(85);
-     F86 = new IA64FloatRegister(86);
-     F87 = new IA64FloatRegister(87);
-     F88 = new IA64FloatRegister(88);
-     F89 = new IA64FloatRegister(89);
-     F90 = new IA64FloatRegister(90);
-     F91 = new IA64FloatRegister(91);
-     F92 = new IA64FloatRegister(92);
-     F93 = new IA64FloatRegister(93);
-     F94 = new IA64FloatRegister(94);
-     F95 = new IA64FloatRegister(95);
-     F96 = new IA64FloatRegister(96);
-     F97 = new IA64FloatRegister(97);
-     F98 = new IA64FloatRegister(98);
-     F99 = new IA64FloatRegister(99);
-     F100 = new IA64FloatRegister(100);
-     F101 = new IA64FloatRegister(101);
-     F102 = new IA64FloatRegister(102);
-     F103 = new IA64FloatRegister(103);
-     F104 = new IA64FloatRegister(104);
-     F105 = new IA64FloatRegister(105);
-     F106 = new IA64FloatRegister(106);
-     F107 = new IA64FloatRegister(107);
-     F108 = new IA64FloatRegister(108);
-     F109 = new IA64FloatRegister(109);
-     F110 = new IA64FloatRegister(110);
-     F111 = new IA64FloatRegister(111);
-     F112 = new IA64FloatRegister(112);
-     F113 = new IA64FloatRegister(113);
-     F114 = new IA64FloatRegister(114);
-     F115 = new IA64FloatRegister(115);
-     F116 = new IA64FloatRegister(116);
-     F117 = new IA64FloatRegister(117);
-     F118 = new IA64FloatRegister(118);
-     F119 = new IA64FloatRegister(119);
-     F120 = new IA64FloatRegister(120);
-     F121 = new IA64FloatRegister(121);
-     F122 = new IA64FloatRegister(122);
-     F123 = new IA64FloatRegister(123);
-     F124 = new IA64FloatRegister(124);
-     F125 = new IA64FloatRegister(125);
-     F126 = new IA64FloatRegister(126);
-     F127 = new IA64FloatRegister(127);
-
-        registers = (new IA64FloatRegister[] {
-            F0, F1, F2, F3, F4, F5, F6, F7, F8, F9,
-            F10, F11, F12, F13, F14, F15, F16, F17, F18, F19,
-            F20, F21, F22, F23, F24, F25, F26, F27, F28, F29,
-            F30, F31, F32, F33, F34, F35, F36, F37, F38, F39,
-            F40, F41, F42, F43, F44, F45, F46, F47, F48, F49,
-            F50, F51, F52, F53, F54, F55, F56, F57, F58, F59,
-            F60, F61, F62, F63, F64, F65, F66, F67, F68, F69,
-            F70, F71, F72, F73, F74, F75, F76, F77, F78, F79,
-            F80, F81, F82, F83, F84, F85, F86, F87, F88, F89,
-            F90, F91, F92, F93, F94, F95, F96, F97, F98, F99,
-            F100, F101, F102, F103, F104, F105, F106, F107, F108, F109,
-            F110, F111, F112, F113, F114, F115, F116, F117, F118, F119,
-            F120, F121, F122, F123, F124, F125, F126, F127
-        });
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Helper.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.ia64;
-
-import sun.jvm.hotspot.asm.*;
-
-public class IA64Helper implements CPUHelper {
-   public Disassembler createDisassembler(long startPc, byte[] code) {
-      // FIXME: IA64 disassembler not implemented
-      return null;
-   }
-
-   public Register getIntegerRegister(int num) {
-      // FIXME: IA64 disassembler not implemented
-      return null;
-   }
-
-   public Register getFloatRegister(int num) {
-      // FIXME: IA64 disassembler not implemented
-      return null;
-   }
-
-   public Register getStackPointer() {
-      // FIXME: IA64 disassembler not implemented
-      return null;
-   }
-
-   public Register getFramePointer() {
-      // FIXME: IA64 disassembler not implemented
-      return null;
-   }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Register.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.ia64;
-
-import sun.jvm.hotspot.asm.*;
-import sun.jvm.hotspot.runtime.*;
-import sun.jvm.hotspot.utilities.*;
-
-public class IA64Register extends Register {
-
-  //
-  private static final int STACKED_BASE = 32;
-  private static final int STACKED_END = 127;
-
-  // We put application registers here too rather than separate types
-  private static final int APPL_BASE   = 128;
-
-  private static final int nofRegisters = 129;  // total number of registers
-
-  /** Constructor for an explicitly numbered register */
-  public IA64Register(int number) {
-    super(number);
-  }
-
-  public int getNumberOfRegisters() {
-    return nofRegisters;
-  }
-
-  public boolean isStacked() {
-    return (32 <= getNumber());
-  }
-
-  /** NOTE: this returns an offset in BYTES in this system! */
-  public long spOffsetInSavedWindow() {
-    return 0;
-  }
-
-  public String toString() {
-    return IA64Registers.getRegisterName(number);
-  }
-
-  public boolean isFramePointer() {
-    return number == APPL_BASE;
-  }
-
-  public boolean isStackPointer() {
-    return number == 12;
-  }
-
-  public boolean isFloat() {
-    return false;
-  }
-
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,353 +0,0 @@
-/*
- * Copyright (c) 2003, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.ia64;
-
-import sun.jvm.hotspot.utilities.*;
-
-public class IA64Registers {
-
-    public static final IA64Register GR0;
-    public static final IA64Register GR1;
-    public static final IA64Register GR2;
-    public static final IA64Register GR3;
-    public static final IA64Register GR4;
-    public static final IA64Register GR5;
-    public static final IA64Register GR6;
-    public static final IA64Register GR7;
-    public static final IA64Register GR8;
-    public static final IA64Register GR9;
-    public static final IA64Register GR10;
-    public static final IA64Register GR11;
-    public static final IA64Register GR12;
-    public static final IA64Register GR13;
-    public static final IA64Register GR14;
-    public static final IA64Register GR15;
-    public static final IA64Register GR16;
-    public static final IA64Register GR17;
-    public static final IA64Register GR18;
-    public static final IA64Register GR19;
-    public static final IA64Register GR20;
-    public static final IA64Register GR21;
-    public static final IA64Register GR22;
-    public static final IA64Register GR23;
-    public static final IA64Register GR24;
-    public static final IA64Register GR25;
-    public static final IA64Register GR26;
-    public static final IA64Register GR27;
-    public static final IA64Register GR28;
-    public static final IA64Register GR29;
-    public static final IA64Register GR30;
-    public static final IA64Register GR31;
-    public static final IA64Register GR32;
-    public static final IA64Register GR33;
-    public static final IA64Register GR34;
-    public static final IA64Register GR35;
-    public static final IA64Register GR36;
-    public static final IA64Register GR37;
-    public static final IA64Register GR38;
-    public static final IA64Register GR39;
-    public static final IA64Register GR40;
-    public static final IA64Register GR41;
-    public static final IA64Register GR42;
-    public static final IA64Register GR43;
-    public static final IA64Register GR44;
-    public static final IA64Register GR45;
-    public static final IA64Register GR46;
-    public static final IA64Register GR47;
-    public static final IA64Register GR48;
-    public static final IA64Register GR49;
-    public static final IA64Register GR50;
-    public static final IA64Register GR51;
-    public static final IA64Register GR52;
-    public static final IA64Register GR53;
-    public static final IA64Register GR54;
-    public static final IA64Register GR55;
-    public static final IA64Register GR56;
-    public static final IA64Register GR57;
-    public static final IA64Register GR58;
-    public static final IA64Register GR59;
-    public static final IA64Register GR60;
-    public static final IA64Register GR61;
-    public static final IA64Register GR62;
-    public static final IA64Register GR63;
-    public static final IA64Register GR64;
-    public static final IA64Register GR65;
-    public static final IA64Register GR66;
-    public static final IA64Register GR67;
-    public static final IA64Register GR68;
-    public static final IA64Register GR69;
-    public static final IA64Register GR70;
-    public static final IA64Register GR71;
-    public static final IA64Register GR72;
-    public static final IA64Register GR73;
-    public static final IA64Register GR74;
-    public static final IA64Register GR75;
-    public static final IA64Register GR76;
-    public static final IA64Register GR77;
-    public static final IA64Register GR78;
-    public static final IA64Register GR79;
-    public static final IA64Register GR80;
-    public static final IA64Register GR81;
-    public static final IA64Register GR82;
-    public static final IA64Register GR83;
-    public static final IA64Register GR84;
-    public static final IA64Register GR85;
-    public static final IA64Register GR86;
-    public static final IA64Register GR87;
-    public static final IA64Register GR88;
-    public static final IA64Register GR89;
-    public static final IA64Register GR90;
-    public static final IA64Register GR91;
-    public static final IA64Register GR92;
-    public static final IA64Register GR93;
-    public static final IA64Register GR94;
-    public static final IA64Register GR95;
-    public static final IA64Register GR96;
-    public static final IA64Register GR97;
-    public static final IA64Register GR98;
-    public static final IA64Register GR99;
-    public static final IA64Register GR100;
-    public static final IA64Register GR101;
-    public static final IA64Register GR102;
-    public static final IA64Register GR103;
-    public static final IA64Register GR104;
-    public static final IA64Register GR105;
-    public static final IA64Register GR106;
-    public static final IA64Register GR107;
-    public static final IA64Register GR108;
-    public static final IA64Register GR109;
-    public static final IA64Register GR110;
-    public static final IA64Register GR111;
-    public static final IA64Register GR112;
-    public static final IA64Register GR113;
-    public static final IA64Register GR114;
-    public static final IA64Register GR115;
-    public static final IA64Register GR116;
-    public static final IA64Register GR117;
-    public static final IA64Register GR118;
-    public static final IA64Register GR119;
-    public static final IA64Register GR120;
-    public static final IA64Register GR121;
-    public static final IA64Register GR122;
-    public static final IA64Register GR123;
-    public static final IA64Register GR124;
-    public static final IA64Register GR125;
-    public static final IA64Register GR126;
-    public static final IA64Register GR127;
-
-    public static final IA64Register AR_BSP;
-
-    public static final int NUM_REGISTERS = 129;
-    private static final IA64Register registers[];
-
-    static {
-     GR0 = new IA64Register(0);
-     GR1 = new IA64Register(1);
-     GR2 = new IA64Register(2);
-     GR3 = new IA64Register(3);
-     GR4 = new IA64Register(4);
-     GR5 = new IA64Register(5);
-     GR6 = new IA64Register(6);
-     GR7 = new IA64Register(7);
-     GR8 = new IA64Register(8);
-     GR9 = new IA64Register(9);
-     GR10 = new IA64Register(10);
-     GR11 = new IA64Register(11);
-     GR12 = new IA64Register(12);
-     GR13 = new IA64Register(13);
-     GR14 = new IA64Register(14);
-     GR15 = new IA64Register(15);
-     GR16 = new IA64Register(16);
-     GR17 = new IA64Register(17);
-     GR18 = new IA64Register(18);
-     GR19 = new IA64Register(19);
-     GR20 = new IA64Register(20);
-     GR21 = new IA64Register(21);
-     GR22 = new IA64Register(22);
-     GR23 = new IA64Register(23);
-     GR24 = new IA64Register(24);
-     GR25 = new IA64Register(25);
-     GR26 = new IA64Register(26);
-     GR27 = new IA64Register(27);
-     GR28 = new IA64Register(28);
-     GR29 = new IA64Register(29);
-     GR30 = new IA64Register(30);
-     GR31 = new IA64Register(31);
-     GR32 = new IA64Register(32);
-     GR33 = new IA64Register(33);
-     GR34 = new IA64Register(34);
-     GR35 = new IA64Register(35);
-     GR36 = new IA64Register(36);
-     GR37 = new IA64Register(37);
-     GR38 = new IA64Register(38);
-     GR39 = new IA64Register(39);
-     GR40 = new IA64Register(40);
-     GR41 = new IA64Register(41);
-     GR42 = new IA64Register(42);
-     GR43 = new IA64Register(43);
-     GR44 = new IA64Register(44);
-     GR45 = new IA64Register(45);
-     GR46 = new IA64Register(46);
-     GR47 = new IA64Register(47);
-     GR48 = new IA64Register(48);
-     GR49 = new IA64Register(49);
-     GR50 = new IA64Register(50);
-     GR51 = new IA64Register(51);
-     GR52 = new IA64Register(52);
-     GR53 = new IA64Register(53);
-     GR54 = new IA64Register(54);
-     GR55 = new IA64Register(55);
-     GR56 = new IA64Register(56);
-     GR57 = new IA64Register(57);
-     GR58 = new IA64Register(58);
-     GR59 = new IA64Register(59);
-     GR60 = new IA64Register(60);
-     GR61 = new IA64Register(61);
-     GR62 = new IA64Register(62);
-     GR63 = new IA64Register(63);
-     GR64 = new IA64Register(64);
-     GR65 = new IA64Register(65);
-     GR66 = new IA64Register(66);
-     GR67 = new IA64Register(67);
-     GR68 = new IA64Register(68);
-     GR69 = new IA64Register(69);
-     GR70 = new IA64Register(70);
-     GR71 = new IA64Register(71);
-     GR72 = new IA64Register(72);
-     GR73 = new IA64Register(73);
-     GR74 = new IA64Register(74);
-     GR75 = new IA64Register(75);
-     GR76 = new IA64Register(76);
-     GR77 = new IA64Register(77);
-     GR78 = new IA64Register(78);
-     GR79 = new IA64Register(79);
-     GR80 = new IA64Register(80);
-     GR81 = new IA64Register(81);
-     GR82 = new IA64Register(82);
-     GR83 = new IA64Register(83);
-     GR84 = new IA64Register(84);
-     GR85 = new IA64Register(85);
-     GR86 = new IA64Register(86);
-     GR87 = new IA64Register(87);
-     GR88 = new IA64Register(88);
-     GR89 = new IA64Register(89);
-     GR90 = new IA64Register(90);
-     GR91 = new IA64Register(91);
-     GR92 = new IA64Register(92);
-     GR93 = new IA64Register(93);
-     GR94 = new IA64Register(94);
-     GR95 = new IA64Register(95);
-     GR96 = new IA64Register(96);
-     GR97 = new IA64Register(97);
-     GR98 = new IA64Register(98);
-     GR99 = new IA64Register(99);
-     GR100 = new IA64Register(100);
-     GR101 = new IA64Register(101);
-     GR102 = new IA64Register(102);
-     GR103 = new IA64Register(103);
-     GR104 = new IA64Register(104);
-     GR105 = new IA64Register(105);
-     GR106 = new IA64Register(106);
-     GR107 = new IA64Register(107);
-     GR108 = new IA64Register(108);
-     GR109 = new IA64Register(109);
-     GR110 = new IA64Register(110);
-     GR111 = new IA64Register(111);
-     GR112 = new IA64Register(112);
-     GR113 = new IA64Register(113);
-     GR114 = new IA64Register(114);
-     GR115 = new IA64Register(115);
-     GR116 = new IA64Register(116);
-     GR117 = new IA64Register(117);
-     GR118 = new IA64Register(118);
-     GR119 = new IA64Register(119);
-     GR120 = new IA64Register(120);
-     GR121 = new IA64Register(121);
-     GR122 = new IA64Register(122);
-     GR123 = new IA64Register(123);
-     GR124 = new IA64Register(124);
-     GR125 = new IA64Register(125);
-     GR126 = new IA64Register(126);
-     GR127 = new IA64Register(127);
-
-     AR_BSP = new IA64Register(128);
-
-        registers = (new IA64Register[] {
-            GR0, GR1, GR2, GR3, GR4, GR5, GR6, GR7, GR8, GR9,
-            GR10, GR11, GR12, GR13, GR14, GR15, GR16, GR17, GR18, GR19,
-            GR20, GR21, GR22, GR23, GR24, GR25, GR26, GR27, GR28, GR29,
-            GR30, GR31, GR32, GR33, GR34, GR35, GR36, GR37, GR38, GR39,
-            GR40, GR41, GR42, GR43, GR44, GR45, GR46, GR47, GR48, GR49,
-            GR50, GR51, GR52, GR53, GR54, GR55, GR56, GR57, GR58, GR59,
-            GR60, GR61, GR62, GR63, GR64, GR65, GR66, GR67, GR68, GR69,
-            GR70, GR71, GR72, GR73, GR74, GR75, GR76, GR77, GR78, GR79,
-            GR80, GR81, GR82, GR83, GR84, GR85, GR86, GR87, GR88, GR89,
-            GR90, GR91, GR92, GR93, GR94, GR95, GR96, GR97, GR98, GR99,
-            GR100, GR101, GR102, GR103, GR104, GR105, GR106, GR107, GR108, GR109,
-            GR110, GR111, GR112, GR113, GR114, GR115, GR116, GR117, GR118, GR119,
-            GR120, GR121, GR122, GR123, GR124, GR125, GR126, GR127, AR_BSP
-        });
-
-  }
-
-  public static final IA64Register FP = AR_BSP;
-  public static final IA64Register SP = GR12;
-
-
-  /** Prefer to use this instead of the constant above */
-  public static int getNumRegisters() {
-    return NUM_REGISTERS;
-  }
-
-
-  public static String getRegisterName(int regNum) {
-    if (regNum < 0 || regNum >= NUM_REGISTERS) {
-      return "[Illegal register " + regNum + "]";
-    }
-
-    if (Assert.ASSERTS_ENABLED) {
-      Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid integer register number!");
-    }
-
-    if (regNum == 128 ) {
-      return "BSP";
-    }
-
-    if (regNum == 12) {
-      return "SP";
-    }
-
-    return "R" + regNum;
-
-  }
-
-  public static IA64Register getRegister(int regNum) {
-    if (Assert.ASSERTS_ENABLED) {
-      Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid register number!");
-    }
-
-    return registers[regNum];
-  }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLdstubDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class AlternateSpaceLdstubDecoder extends LdstubDecoder {
-    AlternateSpaceLdstubDecoder(int op3, String name, int dataType) {
-        super(op3, name, dataType);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction,
-                                               SPARCRegisterIndirectAddress addr,
-                                               SPARCRegister rd,
-                                               SPARCInstructionFactory factory) {
-        setAddressSpace(instruction, addr);
-        return factory.newLdstubInstruction(name, addr, rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceLoadDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class AlternateSpaceLoadDecoder extends LoadDecoder {
-    AlternateSpaceLoadDecoder(int op3, String name, int dataType) {
-        super(op3, name, dataType);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction,
-                                     SPARCRegisterIndirectAddress addr,
-                                     SPARCRegister rd,
-                                     SPARCInstructionFactory factory) {
-        setAddressSpace(instruction, addr);
-        return factory.newLoadInstruction(name, op3, addr, rd, dataType);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceStoreDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class AlternateSpaceStoreDecoder extends StoreDecoder {
-    AlternateSpaceStoreDecoder(int op3, String name, int dataType) {
-        super(op3, name, dataType);
-    }
-
-    protected Instruction decodeMemoryInstruction(int instruction,
-                                               SPARCRegisterIndirectAddress addr,
-                                               SPARCRegister rd,
-                                               SPARCInstructionFactory factory) {
-        setAddressSpace(instruction, addr);
-        return factory.newStoreInstruction(name, op3, addr, rd, dataType);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/AlternateSpaceSwapDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class AlternateSpaceSwapDecoder extends SwapDecoder {
-    AlternateSpaceSwapDecoder(int op3, String name, int dataType) {
-        super(op3, name, dataType);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction,
-                                     SPARCRegisterIndirectAddress addr,
-                                     SPARCRegister rd,
-                                     SPARCInstructionFactory factory) {
-        setAddressSpace(instruction, addr);
-        return factory.newSwapInstruction(name, addr, rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ArithmeticDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class ArithmeticDecoder extends Format3ADecoder {
-    ArithmeticDecoder(int op3, String name, int rtlOperation) {
-        super(op3, name, rtlOperation);
-    }
-
-    Instruction decodeFormat3AInstruction(int instruction,
-                                       SPARCRegister rs1,
-                                       ImmediateOrRegister operand2,
-                                       SPARCRegister rd,
-                                       SPARCInstructionFactory factory) {
-        return factory.newArithmeticInstruction(name, op3, rtlOperation, rs1, operand2, rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/BranchDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-abstract class BranchDecoder extends InstructionDecoder {
-
-    // format 2 - condition code names.
-    // Appendix F - Opcodes and Condition Codes - Page 231 - Table F-7.
-    static final String integerConditionNames[] = {
-        "bn", "be", "ble", "bl", "bleu", "bcs", "bneg", "bvs",
-        "ba", "bne", "bg", "bge", "bgu", "bcc", "bpos", "bvc"
-    };
-
-    static final String integerAnnuledConditionNames[] = {
-        "bn,a", "be,a", "ble,a", "bl,a", "bleu,a", "bcs,a", "bneg,a", "bvs,a",
-        "ba,a", "bne,a", "bg,a", "bge,a", "bgu,a", "bcc,a", "bpos,a", "bvc,a"
-    };
-
-    // format 2 - condition code names.
-    // Appendix F - Opcodes and Condition Codes - Page 231 - Table F-7.
-    static final String floatConditionNames[] = {
-        "fbn", "fbne", "fblg", "fbul", "fbl", "fbug", "fbg", "fbu",
-        "fba", "fbe",  "fbue", "fbge", "fbuge", "fble", "fbule", "fbo"
-    };
-
-    static final String floatAnnuledConditionNames[] = {
-        "fbn,a", "fbne,a", "fblg,a", "fbul,a", "fbl,a", "fbug,a", "fbg,a", "fbu,a",
-        "fba,a", "fbe,a",  "fbue,a", "fbge,a", "fbuge,a", "fble,a", "fbule,a", "fbo,a"
-    };
-
-    static boolean getAnnuledBit(int instruction) {
-        return (instruction & ANNUL_MASK) != 0;
-    }
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        boolean isAnnuled = getAnnuledBit(instruction);
-        int conditionCode = getConditionCode(instruction);
-        String conditionName = getConditionName(conditionCode, isAnnuled);
-        int offset = extractSignedIntFromNBits(instruction, 22);
-        // word align the offset by right shifting 2 bits
-        offset <<= 2;
-        PCRelativeAddress addr = new PCRelativeAddress(offset);
-        return factory.newBranchInstruction(conditionName, addr, isAnnuled, conditionCode);
-    }
-
-    abstract String getConditionName(int conditionCode, boolean isAnnuled);
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CallDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class CallDecoder extends InstructionDecoder {
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        // sign extend, word align the offset
-        int offset = (instruction & DISP_30_MASK) << 2;
-        return factory.newCallInstruction(new PCRelativeAddress(offset));
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorBranchDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-// format 2 - condition code names.
-// Appendix F - Opcodes and Condition Codes - Page 231 - Table F-7.
-
-class CoprocessorBranchDecoder extends BranchDecoder {
-    private static final String coprocessorConditionNames[] = {
-        "cbn", "cb123", "cb12", "cb13", "cb1", "cb23", "cb2", "cb3",
-        "cba", "cb0",  "cb03", "cb02", "cb023", "cb01", "cb013", "cb012"
-    };
-
-    private static final String coprocessorAnnuledConditionNames[] = {
-        "cbn,a", "cb123,a", "cb12,a", "cb13,a", "cb1,a", "cb23,a", "cb2,a", "cb3,a",
-        "cba,a", "cb0,a",  "cb03,a", "cb02,a", "cb023,a", "cb01,a", "cb013,a", "cb012,a"
-    };
-
-    String getConditionName(int conditionCode, boolean isAnnuled) {
-        return isAnnuled ? coprocessorAnnuledConditionNames[conditionCode]
-                         : coprocessorConditionNames[conditionCode];
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/CoprocessorDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class CoprocessorDecoder extends InstructionDecoder {
-    private int op3;
-    CoprocessorDecoder(int op3) {
-        this.op3 = op3;
-    }
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        int rs1Num = getSourceRegister1(instruction);
-        int rs2Num = getSourceRegister2(instruction);
-        int rdNum = getDestinationRegister(instruction);
-
-        return factory.newCoprocessorInstruction(instruction, op3,
-                                     (instruction & OPC_MASK) >> OPF_START_BIT,
-                                     rs1Num, rs2Num, rdNum);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FP2RegisterDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-import sun.jvm.hotspot.utilities.Assert;
-
-class FP2RegisterDecoder extends FloatDecoder {
-
-    FP2RegisterDecoder(int opf, String name, int srcType, int resultType) {
-        super(opf, name, srcType, resultType);
-    }
-
-    Instruction decodeFloatInstruction(int instruction,
-                                       SPARCRegister rs1, SPARCRegister rs2,
-                                       SPARCRegister rd,
-                                       SPARCInstructionFactory factory) {
-        if (Assert.ASSERTS_ENABLED)
-            Assert.that(rs2.isFloat() && rd.isFloat(), "rs2, rd have to be float registers");
-
-        return factory.newFP2RegisterInstruction(name, opf, (SPARCFloatRegister)rs2, (SPARCFloatRegister)rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPArithmeticDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-import sun.jvm.hotspot.utilities.Assert;
-
-class FPArithmeticDecoder extends FloatDecoder {
-    private final int rtlOperation;
-
-    FPArithmeticDecoder(int opf, String name, int rtlOperation,
-                        int src1Type, int src2Type, int resultType) {
-       super(opf, name, src1Type, src2Type, resultType);
-       this.rtlOperation = rtlOperation;
-    }
-
-    Instruction decodeFloatInstruction(int instruction,
-                       SPARCRegister rs1, SPARCRegister rs2,
-                       SPARCRegister rd,
-                       SPARCInstructionFactory factory) {
-        if (Assert.ASSERTS_ENABLED)
-            Assert.that(rs1.isFloat() && rs2.isFloat() && rd.isFloat(), "rs1, rs2 and rd must be floats");
-        return factory.newFPArithmeticInstruction(name, opf, rtlOperation,
-                                                 (SPARCFloatRegister)rs1,
-                                                 (SPARCFloatRegister)rs2,
-                                                 (SPARCFloatRegister)rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPMoveDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-import sun.jvm.hotspot.utilities.Assert;
-
-class FPMoveDecoder extends FloatDecoder {
-
-    FPMoveDecoder(int opf, String name, int srcType, int resultType) {
-        super(opf, name, srcType, resultType);
-    }
-
-    Instruction decodeFloatInstruction(int instruction,
-                                       SPARCRegister rs1, SPARCRegister rs2,
-                                       SPARCRegister rd,
-                                       SPARCInstructionFactory factory) {
-        if (Assert.ASSERTS_ENABLED)
-            Assert.that(rs2.isFloat() && rd.isFloat(), "rs2, rd have to be float registers");
-
-        return factory.newFPMoveInstruction(name, opf, (SPARCFloatRegister)rs2, (SPARCFloatRegister)rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FPopDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-abstract class FPopDecoder extends InstructionDecoder {
-    abstract InstructionDecoder getOpfDecoder(int opf);
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        int opf = getOpf(instruction);
-        InstructionDecoder decoder = getOpfDecoder(opf);
-        return (decoder == null) ? factory.newIllegalInstruction(instruction)
-                                 : decoder.decode(instruction, factory);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatBranchDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-class FloatBranchDecoder extends BranchDecoder {
-    String getConditionName(int conditionCode, boolean isAnnuled) {
-        return isAnnuled ? floatAnnuledConditionNames[conditionCode]
-                         : floatConditionNames[conditionCode];
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FloatDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-abstract class FloatDecoder extends InstructionDecoder {
-    final int    opf;
-    final String name;
-    final int    numSources; // 1 or 2;
-    final int    src1Type;   // RTLDT_FL_SINGLE, _DOUBLE, _QUAD
-    final int    src2Type;   // RTLDT_FL_SINGLE, _DOUBLE, _QUAD
-    final int    resultType; // RTLDT_FL_SINGLE, _DOUBLE, _QUAD
-
-    FloatDecoder(int opf, String name, int src1Type, int src2Type, int resultType) {
-        this.opf = opf;
-        this.name = name;
-        numSources = 2;
-        this.src1Type = src1Type;
-        this.src2Type = src2Type;
-        this.resultType = resultType;
-    }
-
-    FloatDecoder(int opf, String name, int src2Type, int resultType) {
-        this.opf = opf;
-        this.name = name;
-        numSources = 1;
-        this.src1Type = RTLOP_UNKNOWN;
-        this.src2Type = src2Type;
-        this.resultType = resultType;
-    }
-
-    abstract Instruction decodeFloatInstruction(int instruction,
-                               SPARCRegister rs1, SPARCRegister rs2, SPARCRegister rd,
-                               SPARCInstructionFactory factory);
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        int rs1Num = getSourceRegister1(instruction);
-        int rs2Num = getSourceRegister2(instruction);
-        int rdNum = getDestinationRegister(instruction);
-
-        SPARCRegister rs1 = null;
-        if (numSources == 2) {
-           rs1 = RegisterDecoder.decode(src1Type, rs1Num);
-           if (rs1 == null) {
-              return factory.newIllegalInstruction(instruction);
-           }
-        }
-
-        SPARCRegister rd = RegisterDecoder.decode(resultType, rdNum);
-        SPARCRegister rs2 = RegisterDecoder.decode(src2Type, rs2Num);
-        if (rd == null || rs2 == null) {
-           return factory.newIllegalInstruction(instruction);
-        }
-
-        return decodeFloatInstruction(instruction, rs1, rs2, rd, factory);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/FlushDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class FlushDecoder extends MemoryInstructionDecoder {
-    FlushDecoder() {
-        super(FLUSH, "flush", RTLDT_UNKNOWN);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction, SPARCRegisterIndirectAddress addr,
-                      SPARCRegister rd, SPARCInstructionFactory factory) {
-        return factory.newFlushInstruction(addr);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/Format3ADecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-abstract class Format3ADecoder extends InstructionDecoder
-                           implements /* imports */ RTLOperations {
-    final int op3;
-    final String name;
-    final int rtlOperation;
-
-    Format3ADecoder(int op3, String name, int rtlOperation) {
-        this.op3 = op3;
-        this.name = name;
-        this.rtlOperation = rtlOperation;
-    }
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        SPARCRegister rs1 = SPARCRegisters.getRegister(getSourceRegister1(instruction));
-        SPARCRegister rd = SPARCRegisters.getRegister(getDestinationRegister(instruction));
-        ImmediateOrRegister operand2 = getOperand2(instruction);
-        return decodeFormat3AInstruction(instruction, rs1, operand2, rd, factory);
-    }
-
-    abstract Instruction decodeFormat3AInstruction(int instruction,
-                                       SPARCRegister rs1,
-                                       ImmediateOrRegister operand2,
-                                       SPARCRegister rd,
-                                       SPARCInstructionFactory factory);
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IllegalInstructionDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class IllegalInstructionDecoder extends InstructionDecoder {
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        return factory.newIllegalInstruction(instruction);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/InstructionDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-// basic instruction decoder class
-abstract class InstructionDecoder implements /* imports */ SPARCOpcodes , RTLDataTypes, RTLOperations {
-    // some general utility functions - for format 2, 3 & 3A instructions
-
-    static int extractSignedIntFromNBits(int value, int num_bits) {
-        return (value << (32 - num_bits)) >> (32 - num_bits);
-    }
-
-    // "rs1"
-    static int getSourceRegister1(int instruction) {
-        return (instruction & RS1_MASK) >>> RS1_START_BIT;
-    }
-
-    // "rs2"
-    static int getSourceRegister2(int instruction) {
-        return (instruction & RS2_MASK);
-    }
-
-    // "rd"
-    static int getDestinationRegister(int instruction) {
-        return (instruction & RD_MASK) >>> RD_START_BIT;
-    }
-
-    static int getConditionCode(int instruction) {
-        return (instruction & CONDITION_CODE_MASK) >>> CONDITION_CODE_START_BIT;
-    }
-
-    // "i" bit - used to indicate whether second component in an indirect
-    // address is immediate value or a register. (format 3 & 3A).
-
-    static boolean isIBitSet(int instruction) {
-        return (instruction & I_MASK) != 0;
-    }
-
-    static ImmediateOrRegister getOperand2(int instruction) {
-        boolean iBit = isIBitSet(instruction);
-        ImmediateOrRegister operand2 = null;
-        if (iBit) {
-           operand2 = new Immediate(new Short((short)extractSignedIntFromNBits(instruction, 13)));
-        } else {
-           operand2 = SPARCRegisters.getRegister(getSourceRegister2(instruction));
-        }
-        return operand2;
-    }
-
-    // "opf" - floating point operation code.
-    static int getOpf(int instruction) {
-        return (instruction & OPF_MASK) >>> OPF_START_BIT;
-    }
-
-    abstract Instruction decode(int instruction, SPARCInstructionFactory factory);
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/IntegerBranchDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-class IntegerBranchDecoder extends BranchDecoder {
-    String getConditionName(int conditionCode, boolean isAnnuled) {
-        return isAnnuled ? integerAnnuledConditionNames[conditionCode]
-                         : integerConditionNames[conditionCode];
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/JmplDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class JmplDecoder extends MemoryInstructionDecoder {
-    JmplDecoder() {
-        super(JMPL, "jmpl", RTLDT_UNSIGNED_WORD);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction, SPARCRegisterIndirectAddress addr,
-                       SPARCRegister rd,  SPARCInstructionFactory factory) {
-        // this may be most probably indirect call or ret or retl
-        Instruction instr = null;
-        if (rd == SPARCRegisters.O7) {
-            instr = factory.newIndirectCallInstruction(addr, rd);
-        } else if (rd == SPARCRegisters.G0) {
-            int disp = (int) addr.getDisplacement();
-            Register base = addr.getBase();
-            if (base == SPARCRegisters.I7 && disp == 8) {
-                instr = factory.newReturnInstruction(addr, rd, false /* not leaf */);
-            } else if (base == SPARCRegisters.O7 && disp == 8) {
-                instr = factory.newReturnInstruction(addr, rd, true /* leaf */);
-            } else {
-                instr = factory.newJmplInstruction(addr, rd);
-            }
-        } else {
-            instr = factory.newJmplInstruction(addr, rd);
-        }
-        return instr;
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LdstubDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class LdstubDecoder extends MemoryInstructionDecoder {
-    LdstubDecoder(int op3, String name, int dataType) {
-        super(op3, name, dataType);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction,
-                                     SPARCRegisterIndirectAddress addr,
-                                     SPARCRegister rd,
-                                     SPARCInstructionFactory factory) {
-        return factory.newLdstubInstruction(name, addr, rd);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LoadDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class LoadDecoder extends MemoryInstructionDecoder {
-    LoadDecoder(int op3, String name, int dataType) {
-        super(op3, name, dataType);
-    }
-
-    Instruction decodeMemoryInstruction(int instruction,
-                                     SPARCRegisterIndirectAddress addr,
-                                     SPARCRegister rd,
-                                     SPARCInstructionFactory factory) {
-        return factory.newLoadInstruction(name, op3, addr, rd, dataType);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/LogicDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class LogicDecoder extends Format3ADecoder {
-    LogicDecoder(int op3, String name, int rtlOperation) {
-        super(op3, name, rtlOperation);
-    }
-
-    Instruction decodeFormat3AInstruction(int instruction,
-                                           SPARCRegister rs1,
-                                           ImmediateOrRegister operand2,
-                                           SPARCRegister rd,
-                                           SPARCInstructionFactory factory) {
-        Instruction instr = null;
-        if (op3 == OR && rs1 == SPARCRegisters.G0 && rd != SPARCRegisters.G0) {
-            instr = factory.newMoveInstruction(name, op3, operand2, rd);
-        } else {
-            instr = factory.newLogicInstruction(name, op3, rtlOperation, rs1, operand2, rd);
-        }
-        return instr;
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/MemoryInstructionDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-abstract class MemoryInstructionDecoder extends InstructionDecoder {
-    final int    op3;
-    final String name;
-    final int    dataType;
-
-    SPARCRegisterIndirectAddress newRegisterIndirectAddress(SPARCRegister rs1, SPARCRegister rs2) {
-        return new SPARCRegisterIndirectAddress(rs1, rs2);
-    }
-
-    SPARCRegisterIndirectAddress newRegisterIndirectAddress(SPARCRegister rs1, int offset) {
-        return new SPARCRegisterIndirectAddress(rs1, offset);
-    }
-
-    static void setAddressSpace(int instruction, SPARCRegisterIndirectAddress addr) {
-        int asi = (instruction & ASI_MASK) >>> ASI_START_BIT;
-        addr.setAddressSpace(asi);
-    }
-
-    SPARCRegisterIndirectAddress getRegisterIndirectAddress(int instruction) {
-        SPARCRegister rs1 = SPARCRegisters.getRegister(getSourceRegister1(instruction));
-        boolean iBit = isIBitSet(instruction);
-        SPARCRegisterIndirectAddress addr = null;
-        if (iBit) {
-            int simm13 = extractSignedIntFromNBits(instruction, 13);
-            addr = newRegisterIndirectAddress(rs1,simm13);
-        } else {
-            SPARCRegister rs2 = SPARCRegisters.getRegister(getSourceRegister2(instruction));
-            addr = newRegisterIndirectAddress(rs1,rs2);
-        }
-        return addr;
-    }
-
-    MemoryInstructionDecoder(int op3, String name, int dataType) {
-        this.op3 = op3;
-        this.name = name;
-        this.dataType = dataType;
-    }
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        SPARCRegisterIndirectAddress addr = getRegisterIndirectAddress(instruction);
-        SPARCRegister rd = getDestination(instruction);
-        boolean isV9Okay = (factory instanceof SPARCV9InstructionFactory);
-        if ( (rd == null) || (! isV9Okay && rd.isV9Only()) )
-            return factory.newIllegalInstruction(instruction);
-
-        return decodeMemoryInstruction(instruction, addr, rd, factory);
-    }
-
-    SPARCRegister getDestination(int instruction) {
-        int rdNum = getDestinationRegister(instruction);
-        SPARCRegister rd = RegisterDecoder.decode(dataType, rdNum);
-        return rd;
-    }
-
-    abstract Instruction decodeMemoryInstruction(int instruction,
-                                   SPARCRegisterIndirectAddress addr,
-                                   SPARCRegister rd, SPARCInstructionFactory factory);
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-class ReadDecoder extends ReadWriteDecoder {
-    ReadDecoder(int specialRegNum) {
-        super(specialRegNum);
-    }
-
-    Instruction decodeReadWrite(int instruction, SPARCInstructionFactory factory,
-                                int rs1Num, int rdNum) {
-        Instruction instr = null;
-        int specialReg = specialRegNum;
-        if (rs1Num == 0)
-            specialReg = SPARCSpecialRegisters.Y;
-        if (rs1Num == 15 && rdNum == 0) {
-            instr = factory.newStbarInstruction();
-        } else {
-            instr = factory.newReadInstruction(specialReg, rs1Num,
-                                  SPARCRegisters.getRegister(rdNum));
-        }
-        return instr;
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/ReadWriteDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.*;
-
-abstract class ReadWriteDecoder extends InstructionDecoder {
-    final int specialRegNum;
-
-    abstract Instruction decodeReadWrite(int instruction,
-                               SPARCInstructionFactory factory,
-                               int rs1Num, int rdNum);
-
-    ReadWriteDecoder(int specialRegNum) {
-        this.specialRegNum = specialRegNum;
-    }
-
-    Instruction decode(int instruction, SPARCInstructionFactory factory) {
-        Instruction instr = null;
-        int rs1Num = getSourceRegister1(instruction);
-        int rdNum = getDestinationRegister(instruction);
-        return decodeReadWrite(instruction, factory, rs1Num, rdNum);
-    }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/asm/sparc/RegisterDecoder.java	Tue Oct 09 14:19:11 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2002, 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.
- *
- */
-
-package sun.jvm.hotspot.asm.sparc;
-
-import sun.jvm.hotspot.asm.RTLDataTypes;
-
-class RegisterDecoder implements /* imports */ RTLDataTypes {
-    // refer to page 40 - section 5.1.4.1 - Floating-point Register Number Encoding
-    private static SPARCFloatRegister decodeDouble(int num) {
-        // 6 bit double precision registers are encoded in 5 bits as
-        // b<4> b<3> b<2> b<1> b<5>.
-
-        boolean lsb = (0x1 & num) != 0;
-        if (lsb)
-            num |= 0x20;  // 10000b
-
-        if ((num % 2) != 0)
-            return null;
-
-        return SPARCFloatRegisters.getRegister(num);
-    }
-
-    private static SPARCFloatRegister decodeQuad(int num) {
-        // 6 bit quad precision registers are encoded in 5 bits as
-        // b<4> b<3> b<2> 0 b<5>
-
-        boolean lsb = (0x1 & num) != 0;
-        if (lsb)
-            num |= 0x20; // 10000b
-
-        if ((num % 4) != 0)
-            return null;
-
-        return SPARCFloatRegisters.getRegister(num);
-    }
-
-    static SPARCRegister decode(int dataType, int regNum) {
-        regNum &= 0x1F; // mask out all but lsb 5 bits
-        SPARCRegister result = null;
-        switch (dataType) {
-            case RTLDT_FL_SINGLE:
-                result = SPARCFloatRegisters.getRegister(regNum);
-                break;
-
-            case RTLDT_FL_DOUBLE:
-                result = decodeDouble(regNum);
-                break;
-
-            case RTLDT_FL_QUAD:
-                result = decodeQuad(regNum);
-                break;