sa-jdi

ring name, Address addr, int size, int prefixes)
  {
    return new X86JmpInstruction(name, addr, size, prefixes);
  }
  
  public X86Instruction newCondJmpInstruction(String name, X86PCRelativeAddress addr, int size, int prefixes)
  {
    return new X86CondJmpInstruction(name, addr, size, prefixes);
  }
  
  public X86Instruction newMoveInstruction(String name, X86Register rd, ImmediateOrRegister oSrc, int size, int prefixes)
  {
    return new X86MoveInstruction(name, rd, oSrc, size, prefixes);
  }
  
  public X86Instruction newMoveLoadInstruction(String name, X86Register op1, Address op2, int dataType, int size, int prefixes)
  {
    return new X86MoveLoadInstruction(name, op1, op2, dataType, size, prefixes);
  }
  
  public X86Instruction newMoveStoreInstruction(String name, Address op1, X86Register op2, int dataType, int size, int prefixes)
  {
    return new X86MoveStoreInstruction(name, op1, op2, dataType, size, prefixes);
  }
  
  public X86Instruction newArithmeticInstruction(String name, int rtlOperation, Operand op1, Operand op2, Operand op3, int size, int prefixes)
  {
    return new X86ArithmeticInstruction(name, rtlOperation, op1, op2, op3, size, prefixes);
  }
  
  public X86Instruction newArithmeticInstruction(String name, int rtlOperation, Operand op1, Operand op2, int size, int prefixes)
  {
    return new X86ArithmeticInstruction(name, rtlOperation, op1, op2, size, prefixes);
  }
  
  public X86Instruction newLogicInstruction(String name, int rtlOperation, Operand op1, Operand op2, int size, int prefixes)
  {
    return new X86LogicInstruction(name, rtlOperation, op1, op2, size, prefixes);
  }
  
  public X86Instruction newBranchInstruction(String name, X86PCRelativeAddress addr, int size, int prefixes)
  {
    return new X86BranchInstruction(name, addr, size, prefixes);
  }
  
  public X86Instruction newShiftInstruction(String name, int rtlOperation, Operand op1, ImmediateOrRegister op2, int size, int prefixes)
  {
    return new X86ShiftInstruction(name, rtlOperation, op1, op2, size, prefixes);
  }
  
  public X86Instruction newRotateInstruction(String name, Operand op1, ImmediateOrRegister op2, int size, int prefixes)
  {
    return new X86RotateInstruction(name, op1, op2, size, prefixes);
  }
  
  public X86Instruction newFPLoadInstruction(String name, Operand op, int size, int prefixes)
  {
    return new X86FPLoadInstruction(name, op, size, prefixes);
  }
  
  public X86Instruction newFPStoreInstruction(String name, Operand op, int size, int prefixes)
  {
    return new X86FPStoreInstruction(name, op, size, prefixes);
  }
  
  public X86Instruction newFPArithmeticInstruction(String name, int rtlOperation, Operand op1, Operand op2, int size, int prefixes)
  {
    return new X86FPArithmeticInstruction(name, rtlOperation, op1, op2, size, prefixes);
  }
  
  public X86Instruction newGeneralInstruction(String name, Operand op1, Operand op2, Operand op3, int size, int prefixes)
  {
    return new X86GeneralInstruction(name, op1, op2, op3, size, prefixes);
  }
  
  public X86Instruction newGeneralInstruction(String name, Operand op1, Operand op2, int size, int prefixes)
  {
    return new X86GeneralInstruction(name, op1, op2, size, prefixes);
  }
  
  public X86Instruction newGeneralInstruction(String name, Operand op1, int size, int prefixes)
  {
    return new X86GeneralInstruction(name, op1, size, prefixes);
  }
  
  public X86Instruction newIllegalInstruction()
  {
    return new X86IllegalInstruction();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86InstructionFactoryImpl
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Address;
import sun.jvm.hotspot.asm.BranchInstruction;
import sun.jvm.hotspot.asm.SymbolFinder;

public class X86JmpInstruction
  extends X86Instruction
  implements BranchInstruction
{
  private final Address addr;
  
  public X86JmpInstruction(String name, Address addr, int size, int prefixes)
  {
    super(name, size, prefixes);
    this.addr = addr;
    if ((addr instanceof X86PCRelativeAddress)) {
      ((X86PCRelativeAddress)addr).setInstructionSize(getSize());
    }
  }
  
  public String asString(long currentPc, SymbolFinder symFinder)
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    if ((addr instanceof X86PCRelativeAddress))
    {
      long disp = ((X86PCRelativeAddress)addr).getDisplacement();
      long address = disp + currentPc;
      buf.append(symFinder.getSymbolFor(address));
    }
    else
    {
      buf.append(addr.toString());
    }
    return buf.toString();
  }
  
  public Address getBranchDestination()
  {
    return addr;
  }
  
  public boolean isBranch()
  {
    return true;
  }
  
  public boolean isConditional()
  {
    return false;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86JmpInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.LogicInstruction;
import sun.jvm.hotspot.asm.Operand;
import sun.jvm.hotspot.asm.SymbolFinder;

public class X86LogicInstruction
  extends X86Instruction
  implements LogicInstruction
{
  private final Operand operand1;
  private final Operand operand2;
  private final int operation;
  
  public X86LogicInstruction(String name, int operation, Operand op1, Operand op2, int size, int prefixes)
  {
    super(name, size, prefixes);
    this.operation = operation;
    operand1 = op1;
    operand2 = op2;
  }
  
  public String asString(long currentPc, SymbolFinder symFinder)
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    buf.append(getOperandAsString(operand1));
    if (operand2 != null)
    {
      buf.append(comma);
      buf.append(getOperandAsString(operand2));
    }
    return buf.toString();
  }
  
  public Operand getLogicDestination()
  {
    return operand1;
  }
  
  public Operand[] getLogicSources()
  {
    return new Operand[] { operand2 };
  }
  
  public int getOperation()
  {
    return operation;
  }
  
  public boolean isLogic()
  {
    return true;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86LogicInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.IndirectAddress;

public class X86MemoryIndirectAddress
  extends IndirectAddress
{
  private long value;
  
  public X86MemoryIndirectAddress(long value)
  {
    this.value = value;
  }
  
  public String toString()
  {
    StringBuffer buf = new StringBuffer();
    buf.append("*");
    buf.append("[");
    buf.append(Long.toHexString(value));
    buf.append(']');
    return buf.toString();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MemoryIndirectAddress
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Address;
import sun.jvm.hotspot.asm.MemoryInstruction;
import sun.jvm.hotspot.asm.SymbolFinder;

public abstract class X86MemoryInstruction
  extends X86Instruction
  implements MemoryInstruction
{
  protected final Address address;
  protected final X86Register register;
  protected final int dataType;
  protected final String description;
  
  public X86MemoryInstruction(String name, Address address, X86Register register, int dataType, int size, int prefixes)
  {
    super(name, size, prefixes);
    this.address = address;
    this.register = register;
    this.dataType = dataType;
    description = initDescription();
  }
  
  protected String initDescription()
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    buf.append(register.toString());
    buf.append(comma);
    buf.append(address.toString());
    return buf.toString();
  }
  
  public String asString(long currentPc, SymbolFinder symFinder)
  {
    return description;
  }
  
  public int getDataType()
  {
    return dataType;
  }
  
  public boolean isConditional()
  {
    return false;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MemoryInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

public class X86MMXRegister
  extends X86Register
{
  public X86MMXRegister(int num, String name)
  {
    super(num, name);
  }
  
  public int getNumberOfRegisters()
  {
    return X86MMXRegisters.getNumberOfRegisters();
  }
  
  public String toString()
  {
    return name;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MMXRegister
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.utilities.Assert;

public class X86MMXRegisters
{
  public static final int NUM_MMX_REGISTERS = 8;
  public static final X86MMXRegister MM0 = new X86MMXRegister(0, "%mm0");
  public static final X86MMXRegister MM1 = new X86MMXRegister(1, "%mm1");
  public static final X86MMXRegister MM2 = new X86MMXRegister(2, "%mm2");
  public static final X86MMXRegister MM3 = new X86MMXRegister(3, "%mm3");
  public static final X86MMXRegister MM4 = new X86MMXRegister(4, "%mm4");
  public static final X86MMXRegister MM5 = new X86MMXRegister(5, "%mm5");
  public static final X86MMXRegister MM6 = new X86MMXRegister(6, "%mm6");
  public static final X86MMXRegister MM7 = new X86MMXRegister(7, "%mm7");
  private static X86MMXRegister[] mmxRegisters = { MM0, MM1, MM2, MM3, MM4, MM5, MM6, MM7 };
  
  public static int getNumberOfRegisters()
  {
    return 8;
  }
  
  public static String getRegisterName(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid MMX register number!");
    }
    return mmxRegisters[regNum].toString();
  }
  
  public static X86MMXRegister getRegister(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid MMX register number!");
    }
    return mmxRegisters[regNum];
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MMXRegisters
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Immediate;
import sun.jvm.hotspot.asm.ImmediateOrRegister;
import sun.jvm.hotspot.asm.MoveInstruction;
import sun.jvm.hotspot.asm.RTLOperations;
import sun.jvm.hotspot.asm.Register;
import sun.jvm.hotspot.asm.SymbolFinder;

public class X86MoveInstruction
  extends X86Instruction
  implements MoveInstruction, RTLOperations
{
  private ImmediateOrRegister source;
  private X86Register destination;
  
  public X86MoveInstruction(String name, X86Register rd, ImmediateOrRegister oSrc, int size, int prefixes)
  {
    super(name, size, prefixes);
    source = oSrc;
    destination = rd;
  }
  
  public String asString(long currentPc, SymbolFinder symFinder)
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    buf.append(destination.toString());
    buf.append(comma);
    buf.append(getSourceString());
    return buf.toString();
  }
  
  protected String getSourceString()
  {
    StringBuffer buf = new StringBuffer();
    if ((source instanceof Register))
    {
      buf.append(source.toString());
    }
    else
    {
      Number number = ((Immediate)source).getNumber();
      buf.append("0x");
      buf.append(Integer.toHexString(number.intValue()));
    }
    return buf.toString();
  }
  
  public ImmediateOrRegister getMoveSource()
  {
    return source;
  }
  
  public Register getMoveDestination()
  {
    return destination;
  }
  
  public boolean isConditional()
  {
    return false;
  }
  
  public boolean isMove()
  {
    return true;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MoveInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Address;
import sun.jvm.hotspot.asm.LoadInstruction;
import sun.jvm.hotspot.asm.Register;

public class X86MoveLoadInstruction
  extends X86MemoryInstruction
  implements LoadInstruction
{
  public X86MoveLoadInstruction(String name, X86Register register, Address address, int dataType, int size, int prefixes)
  {
    super(name, address, register, dataType, size, prefixes);
  }
  
  public boolean isLoad()
  {
    return true;
  }
  
  public Register[] getLoadDestinations()
  {
    Register[] destinations = new Register[1];
    destinations[0] = register;
    return destinations;
  }
  
  protected String initDescription()
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    buf.append(register.toString());
    buf.append(comma);
    buf.append(address.toString());
    return buf.toString();
  }
  
  public Address getLoadSource()
  {
    return address;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MoveLoadInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Address;
import sun.jvm.hotspot.asm.Register;
import sun.jvm.hotspot.asm.StoreInstruction;

public class X86MoveStoreInstruction
  extends X86MemoryInstruction
  implements StoreInstruction
{
  protected final Register[] storeSources;
  
  public X86MoveStoreInstruction(String name, Address address, X86Register register, int dataType, int size, int prefixes)
  {
    super(name, address, register, dataType, size, prefixes);
    storeSources = new Register[1];
    storeSources[0] = register;
  }
  
  protected String initDescription()
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    buf.append(address.toString());
    buf.append(comma);
    buf.append(register.toString());
    return buf.toString();
  }
  
  public int getDataType()
  {
    return dataType;
  }
  
  public Address getStoreDestination()
  {
    return address;
  }
  
  public Register[] getStoreSources()
  {
    return storeSources;
  }
  
  public boolean isStore()
  {
    return true;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86MoveStoreInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.RTLDataTypes;
import sun.jvm.hotspot.asm.RTLOperations;

public abstract interface X86Opcodes
  extends RTLDataTypes, RTLOperations
{
  public static final int b_mode = 1;
  public static final int v_mode = 2;
  public static final int w_mode = 3;
  public static final int d_mode = 4;
  public static final int p_mode = 5;
  public static final int dq_mode = 6;
  public static final int pi_mode = 7;
  public static final int ps_mode = 8;
  public static final int pd_mode = 9;
  public static final int sd_mode = 10;
  public static final int q_mode = 11;
  public static final int ss_mode = 12;
  public static final int si_mode = 13;
  public static final int s_mode = 14;
  public static final int INVALID_OPERANDTYPE = -1;
  public static final int EAX = 0;
  public static final int ECX = 1;
  public static final int EDX = 2;
  public static final int EBX = 3;
  public static final int ESP = 4;
  public static final int EBP = 5;
  public static final int ESI = 6;
  public static final int EDI = 7;
  public static final int AX = 8;
  public static final int CX = 9;
  public static final int DX = 10;
  public static final int BX = 11;
  public static final int SP = 12;
  public static final int BP = 13;
  public static final int SI = 14;
  public static final int DI = 15;
  public static final int AL = 16;
  public static final int CL = 17;
  public static final int DL = 18;
  public static final int BL = 19;
  public static final int AH = 20;
  public static final int CH = 21;
  public static final int DH = 22;
  public static final int BH = 23;
  public static final int ES = 24;
  public static final int CS = 25;
  public static final int SS = 26;
  public static final int DS = 27;
  public static final int FS = 28;
  public static final int GS = 29;
  public static final int ADDR_E = 1;
  public static final int ADDR_I = 2;
  public static final int ADDR_DIR = 3;
  public static final int ADDR_J = 4;
  public static final int ADDR_G = 5;
  public static final int ADDR_REG = 6;
  public static final int ADDR_ESDI = 7;
  public static final int ADDR_DSSI = 8;
  public static final int ADDR_SEG = 9;
  public static final int ADDR_OFF = 10;
  public static final int INDIR_REG = 11;
  public static final int ADDR_INDIR_E = 12;
  public static final int ADDR_R = 13;
  public static final int ADDR_C = 14;
  public static final int ADDR_D = 15;
  public static final int ADDR_T = 16;
  public static final int ADDR_M = 17;
  public static final int ADDR_FPREG = 18;
  public static final int ADDR_W = 19;
  public static final int ADDR_Q = 20;
  public static final int ADDR_V = 21;
  public static final int ADDR_P = 22;
  public static final int INVALID_ADDRMODE = -1;
  public static final int PREFIX_REPZ = 1;
  public static final int PREFIX_REPNZ = 2;
  public static final int PREFIX_LOCK = 4;
  public static final int PREFIX_CS = 8;
  public static final int PREFIX_SS = 16;
  public static final int PREFIX_DS = 32;
  public static final int PREFIX_ES = 64;
  public static final int PREFIX_FS = 128;
  public static final int PREFIX_GS = 256;
  public static final int PREFIX_DATA = 512;
  public static final int PREFIX_ADR = 1024;
  public static final int PREFIX_FWAIT = 2048;
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86Opcodes
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.PCRelativeAddress;

public class X86PCRelativeAddress
  extends PCRelativeAddress
{
  private int instrSize;
  
  public X86PCRelativeAddress(long disp)
  {
    super(disp);
  }
  
  public void setInstructionSize(int size)
  {
    instrSize = size;
  }
  
  public String toString()
  {
    long displacement = getDisplacement();
    return new Long(displacement).toString();
  }
  
  public long getDisplacement()
  {
    long displacement = super.getDisplacement() + instrSize;
    return displacement;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86PCRelativeAddress
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Register;

public class X86Register
  extends Register
{
  protected String name;
  
  public X86Register(int num, String name)
  {
    super(num);
    this.name = name;
  }
  
  public int getNumberOfRegisters()
  {
    return X86Registers.getNumberOfRegisters();
  }
  
  public String toString()
  {
    return name;
  }
  
  public boolean isFramePointer()
  {
    return number == 5;
  }
  
  public boolean isStackPointer()
  {
    return number == 4;
  }
  
  public boolean isFloat()
  {
    return false;
  }
  
  public boolean isSegmentPointer()
  {
    return false;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86Register
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Address;

public class X86RegisterDirectAddress
  extends Address
{
  private final X86Register base;
  
  public X86RegisterDirectAddress(X86Register base)
  {
    this.base = base;
  }
  
  public String toString()
  {
    return base.toString();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86RegisterDirectAddress
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.BaseIndexScaleDispAddress;
import sun.jvm.hotspot.asm.Register;

public class X86RegisterIndirectAddress
  extends BaseIndexScaleDispAddress
{
  private final X86SegmentRegister segReg;
  
  public X86RegisterIndirectAddress(X86SegmentRegister segReg, X86Register base, X86Register index, long disp, int scale)
  {
    super(base, index, disp, scale);
    this.segReg = segReg;
  }
  
  public X86RegisterIndirectAddress(X86SegmentRegister segReg, X86Register base, X86Register index, long disp)
  {
    super(base, index, disp, -1);
    this.segReg = segReg;
  }
  
  public String toString()
  {
    StringBuffer buf = new StringBuffer();
    if (segReg != null)
    {
      buf.append(segReg.toString());
      buf.append(":");
    }
    long disp = getDisplacement();
    if (disp != 0L) {
      buf.append(disp);
    }
    Register base = getBase();
    Register index = getIndex();
    int scaleVal = getScale();
    scaleVal = 1 << scaleVal;
    if ((base != null) || (index != null) || (scaleVal > 1)) {
      buf.append('[');
    }
    if (base != null)
    {
      buf.append(base.toString());
      if (index != null)
      {
        buf.append("+");
        buf.append(index.toString());
      }
    }
    else if (index != null)
    {
      buf.append(index.toString());
    }
    if (scaleVal > 1)
    {
      buf.append(" * ");
      buf.append(Integer.toString(scaleVal));
    }
    if ((base != null) || (index != null) || (scaleVal > 1)) {
      buf.append(']');
    }
    return buf.toString();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86RegisterIndirectAddress
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

public class X86RegisterPart
  extends X86Register
{
  private int startBit;
  private int length;
  
  public X86RegisterPart(int num, String name, int startBit, int length)
  {
    super(num, name);
    this.startBit = startBit;
    this.length = length;
  }
  
  public boolean is32BitRegister()
  {
    return length == 32;
  }
  
  public boolean is16BitRegister()
  {
    return length == 16;
  }
  
  public boolean is8BitRegister()
  {
    return length == 8;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86RegisterPart
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.utilities.Assert;

public class X86Registers
{
  public static final X86Register EAX = new X86RegisterPart(0, "%eax", 0, 32);
  public static final X86Register ECX = new X86RegisterPart(1, "%ecx", 0, 32);
  public static final X86Register EDX = new X86RegisterPart(2, "%edx", 0, 32);
  public static final X86Register EBX = new X86RegisterPart(3, "%ebx", 0, 32);
  public static final X86Register ESP = new X86RegisterPart(4, "%esp", 0, 32);
  public static final X86Register EBP = new X86RegisterPart(5, "%ebp", 0, 32);
  public static final X86Register ESI = new X86RegisterPart(6, "%esi", 0, 32);
  public static final X86Register EDI = new X86RegisterPart(7, "%edi", 0, 32);
  public static final X86Register AX = new X86RegisterPart(0, "%ax", 0, 16);
  public static final X86Register CX = new X86RegisterPart(1, "%cx", 0, 16);
  public static final X86Register DX = new X86RegisterPart(2, "%dx", 0, 16);
  public static final X86Register BX = new X86RegisterPart(3, "%bx", 0, 16);
  public static final X86Register SP = new X86RegisterPart(4, "%sp", 0, 16);
  public static final X86Register BP = new X86RegisterPart(5, "%bp", 0, 16);
  public static final X86Register SI = new X86RegisterPart(6, "%si", 0, 16);
  public static final X86Register DI = new X86RegisterPart(7, "%di", 0, 16);
  public static final X86Register AL = new X86RegisterPart(0, "%al", 0, 8);
  public static final X86Register CL = new X86RegisterPart(1, "%cl", 0, 8);
  public static final X86Register DL = new X86RegisterPart(2, "%dl", 0, 8);
  public static final X86Register BL = new X86RegisterPart(3, "%bl", 0, 8);
  public static final X86Register AH = new X86RegisterPart(0, "%ah", 8, 8);
  public static final X86Register CH = new X86RegisterPart(1, "%ch", 8, 8);
  public static final X86Register DH = new X86RegisterPart(2, "%dh", 8, 8);
  public static final X86Register BH = new X86RegisterPart(3, "%bh", 8, 8);
  private static X86Register[] registers32 = { EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI };
  
  static
  {
    registers16 = new X86Register[] { AX, CX, DX, BX, SP, BP, SI, DI };
  }
  
  private static X86Register[] registers8 = { AL, CL, DL, BL, AH, CH, DH, BH };
  public static final int NUM_REGISTERS = 8;
  private static X86Register[] registers16;
  
  public static int getNumberOfRegisters()
  {
    return 8;
  }
  
  public static X86Register getRegister8(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid integer register number!");
    }
    return registers8[regNum];
  }
  
  public static X86Register getRegister16(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid integer register number!");
    }
    return registers16[regNum];
  }
  
  public static X86Register getRegister32(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid integer register number!");
    }
    return registers32[regNum];
  }
  
  public static String getRegisterName(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid integer register number!");
    }
    return registers32[regNum].toString();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86Registers
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Immediate;
import sun.jvm.hotspot.asm.ImmediateOrRegister;
import sun.jvm.hotspot.asm.Operand;
import sun.jvm.hotspot.asm.Register;
import sun.jvm.hotspot.asm.SymbolFinder;

public class X86RotateInstruction
  extends X86Instruction
{
  private final Operand operand1;
  private final ImmediateOrRegister operand2;
  
  public X86RotateInstruction(String name, Operand operand1, ImmediateOrRegister operand2, int size, int prefixes)
  {
    super(name, size, prefixes);
    this.operand1 = operand1;
    this.operand2 = operand2;
  }
  
  public String asString(long currentPc, SymbolFinder symFinder)
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    if (operand2 != null)
    {
      if ((operand2 instanceof Register))
      {
        buf.append(operand2.toString());
      }
      else
      {
        Number number = ((Immediate)operand2).getNumber();
        buf.append("0x");
        buf.append(Integer.toHexString(number.intValue()));
      }
      buf.append(comma);
    }
    buf.append(getOperandAsString(operand1));
    return buf.toString();
  }
  
  public Operand getRotateDestination()
  {
    return operand1;
  }
  
  public Operand getRotateSource()
  {
    return operand1;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86RotateInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

public class X86SegmentRegister
  extends X86Register
{
  public X86SegmentRegister(int num, String name)
  {
    super(num, name);
  }
  
  public int getNumberOfRegisters()
  {
    return X86SegmentRegisters.getNumberOfRegisters();
  }
  
  public String toString()
  {
    return name;
  }
  
  public boolean isSegmentPointer()
  {
    return true;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86SegmentRegister
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.IndirectAddress;

public class X86SegmentRegisterAddress
  extends IndirectAddress
{
  private final X86SegmentRegister segment;
  private final X86Register offset;
  
  public X86SegmentRegisterAddress(X86SegmentRegister segment, X86Register offset)
  {
    this.segment = segment;
    this.offset = offset;
  }
  
  public String toString()
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getSegment().toString());
    buf.append(":");
    buf.append(getOffset().toString());
    return buf.toString();
  }
  
  public X86SegmentRegister getSegment()
  {
    return segment;
  }
  
  public X86Register getOffset()
  {
    return offset;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86SegmentRegisterAddress
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.utilities.Assert;

public class X86SegmentRegisters
{
  public static final int NUM_SEGMENT_REGISTERS = 6;
  public static final X86SegmentRegister ES = new X86SegmentRegister(0, "%es");
  public static final X86SegmentRegister CS = new X86SegmentRegister(1, "%cs");
  public static final X86SegmentRegister SS = new X86SegmentRegister(2, "%ss");
  public static final X86SegmentRegister DS = new X86SegmentRegister(3, "%ds");
  public static final X86SegmentRegister FS = new X86SegmentRegister(4, "%fs");
  public static final X86SegmentRegister GS = new X86SegmentRegister(5, "%gs");
  private static X86SegmentRegister[] segmentRegisters = { ES, CS, SS, DS, FS, GS };
  
  public static int getNumberOfRegisters()
  {
    return 6;
  }
  
  public static X86SegmentRegister getSegmentRegister(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 6), "invalid segment register number!");
    }
    return segmentRegisters[regNum];
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86SegmentRegisters
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.asm.Immediate;
import sun.jvm.hotspot.asm.ImmediateOrRegister;
import sun.jvm.hotspot.asm.Operand;
import sun.jvm.hotspot.asm.Register;
import sun.jvm.hotspot.asm.ShiftInstruction;
import sun.jvm.hotspot.asm.SymbolFinder;

public class X86ShiftInstruction
  extends X86Instruction
  implements ShiftInstruction
{
  private final int operation;
  private final Operand operand1;
  private final ImmediateOrRegister operand2;
  
  public X86ShiftInstruction(String name, int operation, Operand operand1, ImmediateOrRegister operand2, int size, int prefixes)
  {
    super(name, size, prefixes);
    this.operand1 = operand1;
    this.operand2 = operand2;
    this.operation = operation;
  }
  
  public String asString(long currentPc, SymbolFinder symFinder)
  {
    StringBuffer buf = new StringBuffer();
    buf.append(getPrefixString());
    buf.append(getName());
    buf.append(spaces);
    buf.append(getOperandAsString(operand1));
    if (operand2 != null)
    {
      buf.append(comma);
      if ((operand2 instanceof Register))
      {
        buf.append(operand2.toString());
      }
      else
      {
        Number number = ((Immediate)operand2).getNumber();
        buf.append("0x");
        buf.append(Integer.toHexString(number.intValue()));
      }
    }
    return buf.toString();
  }
  
  public int getOperation()
  {
    return operation;
  }
  
  public Operand getShiftDestination()
  {
    return operand1;
  }
  
  public Operand getShiftLength()
  {
    return operand2;
  }
  
  public Operand getShiftSource()
  {
    return operand1;
  }
  
  public boolean isShift()
  {
    return true;
  }
  
  protected String getOperand2String()
  {
    return operand2.toString();
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86ShiftInstruction
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

public class X86XMMRegister
  extends X86Register
{
  public X86XMMRegister(int num, String name)
  {
    super(num, name);
  }
  
  public int getNumberOfRegisters()
  {
    return X86XMMRegisters.getNumberOfRegisters();
  }
  
  public String toString()
  {
    return name;
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86XMMRegister
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.asm.x86;

import sun.jvm.hotspot.utilities.Assert;

public class X86XMMRegisters
{
  public static final int NUM_XMM_REGISTERS = 8;
  public static final X86XMMRegister XMM0 = new X86XMMRegister(0, "%xmm0");
  public static final X86XMMRegister XMM1 = new X86XMMRegister(1, "%xmm1");
  public static final X86XMMRegister XMM2 = new X86XMMRegister(2, "%xmm2");
  public static final X86XMMRegister XMM3 = new X86XMMRegister(3, "%xmm3");
  public static final X86XMMRegister XMM4 = new X86XMMRegister(4, "%xmm4");
  public static final X86XMMRegister XMM5 = new X86XMMRegister(5, "%xmm5");
  public static final X86XMMRegister XMM6 = new X86XMMRegister(6, "%xmm6");
  public static final X86XMMRegister XMM7 = new X86XMMRegister(7, "%xmm7");
  private static X86XMMRegister[] xmmRegisters = { XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7 };
  
  public static int getNumberOfRegisters()
  {
    return 8;
  }
  
  public static String getRegisterName(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid XMM register number!");
    }
    return xmmRegisters[regNum].toString();
  }
  
  public static X86XMMRegister getRegister(int regNum)
  {
    if (Assert.ASSERTS_ENABLED) {
      Assert.that((regNum > -1) && (regNum < 8), "invalid XMM register number!");
    }
    return xmmRegisters[regNum];
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.asm.x86.X86XMMRegisters
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

final class BugSpot$1
  extends Thread
{
  private final BugSpot this$0;
  
  BugSpot$1(BugSpot paramBugSpot) {}
  
  public void run()
  {
    BugSpot.access$000(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.1
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

final class BugSpot$10
  implements ActionListener
{
  private final BugSpot this$0;
  
  BugSpot$10(BugSpot paramBugSpot) {}
  
  public void actionPerformed(ActionEvent e)
  {
    BugSpot.access$700(this$0);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.10
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import sun.jvm.hotspot.ui.ProcessListPanel;

final class BugSpot$11
  implements ItemListener
{
  private final BugSpot this$0;
  
  BugSpot$11(BugSpot paramBugSpot, ProcessListPanel paramProcessListPanel) {}
  
  public void itemStateChanged(ItemEvent e)
  {
    if (e.getStateChange() == 1) {
      val$plist.start();
    } else {
      val$plist.stop();
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.11
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import sun.jvm.hotspot.ui.ProcessListPanel;

final class BugSpot$12
  implements ActionListener
{
  private final BugSpot this$0;
  
  BugSpot$12(BugSpot paramBugSpot, ProcessListPanel paramProcessListPanel) {}
  
  public void actionPerformed(ActionEvent e)
  {
    val$plist.stop();
    BugSpot.access$900(this$0, BugSpot.access$800(this$0), true);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.12
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import sun.jvm.hotspot.debugger.ProcessInfo;
import sun.jvm.hotspot.ui.FrameWrapper;
import sun.jvm.hotspot.ui.ProcessListPanel;

final class BugSpot$13
  implements ActionListener
{
  private final BugSpot this$0;
  
  BugSpot$13(BugSpot paramBugSpot, ProcessListPanel paramProcessListPanel, FrameWrapper paramFrameWrapper) {}
  
  public void actionPerformed(ActionEvent e)
  {
    val$plist.stop();
    val$attachDialog.setVisible(false);
    BugSpot.access$1000(this$0, val$attachDialog);
    ProcessInfo info = val$plist.getSelectedProcess();
    if (info != null) {
      BugSpot.access$1100(this$0, info.getPid());
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.13
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import sun.jvm.hotspot.ui.FrameWrapper;
import sun.jvm.hotspot.ui.ProcessListPanel;

final class BugSpot$14
  implements ActionListener
{
  private final BugSpot this$0;
  
  BugSpot$14(BugSpot paramBugSpot, ProcessListPanel paramProcessListPanel, FrameWrapper paramFrameWrapper) {}
  
  public void actionPerformed(ActionEvent e)
  {
    val$plist.stop();
    val$attachDialog.setVisible(false);
    BugSpot.access$1000(this$0, val$attachDialog);
    BugSpot.access$900(this$0, BugSpot.access$800(this$0), true);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.14
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.io.PrintStream;
import sun.jvm.hotspot.debugger.ThreadProxy;
import sun.jvm.hotspot.runtime.JavaThread;

final class BugSpot$15
  implements ThreadListPanel.Listener
{
  private final BugSpot this$0;
  
  BugSpot$15(BugSpot paramBugSpot) {}
  
  public void setFocus(ThreadProxy thread, JavaThread jthread)
  {
    BugSpot.access$1200(this$0, thread);
    
    System.err.println("Focus changed to thread " + thread);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.15
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.util.Map;
import sun.jvm.hotspot.ui.Editor;
import sun.jvm.hotspot.ui.EditorCommands;

final class BugSpot$16
  implements EditorCommands
{
  private final BugSpot this$0;
  
  BugSpot$16(BugSpot paramBugSpot) {}
  
  public void windowClosed(Editor editor)
  {
    BugSpot.access$1300(this$0).remove(editor.getSourceFileName());
  }
  
  public void toggleBreakpointAtLine(Editor editor, int lineNumber)
  {
    BugSpot.BreakpointResult res = BugSpot.access$1400(this$0, editor, lineNumber);
    if (res.succeeded())
    {
      if (res.set()) {
        editor.showBreakpointAtLine(res.getLine());
      } else {
        editor.clearBreakpointAtLine(res.getLine());
      }
    }
    else
    {
      String why = res.getWhy();
      if (why == null) {
        why = "";
      } else {
        why = ": " + why;
      }
      BugSpot.access$1500(this$0, "Unable to toggle breakpoint" + why, "Unable to toggle breakpoint", 2);
    }
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.16
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import sun.jvm.hotspot.debugger.cdbg.CFrame;
import sun.jvm.hotspot.runtime.JavaVFrame;

final class BugSpot$17
  implements StackTracePanel.Listener
{
  private final BugSpot this$0;
  
  BugSpot$17(BugSpot paramBugSpot) {}
  
  public void frameChanged(CFrame fr, JavaVFrame jfr)
  {
    BugSpot.access$1600(this$0, fr, jfr);
  }
}

/* Location:
 * Qualified Name:     sun.jvm.hotspot.bugspot.BugSpot.17
 * Java Class Version: 1.4 (48.0)
 * JD-Core Version:    0.7.1
 */
package sun.jvm.hotspot.bugspot;

import java.io.PrintStream;
import sun.jvm.hotspot.debugger.cdbg.LineNumberInfo;
import sun.jvm.hotspot.debugger.cdbg.LineNumberVisitor;

final class BugSpot$18
  implements LineNumberVisitor
{
  private final BugSpot this$0;
  
  BugSpot$18(BugSpot par
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

Further reading...

For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.

New!JAR listings


Copyright 2006-2019. Infinite Loop Ltd