|
mjc | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.multijava.util.classfile.AbstractInstructionAccessor
org.multijava.util.classfile.Instruction
org.multijava.util.classfile.LocalVarInstruction
This class represents instructions that take a local variable as argument. Shortcuts (single byte instructions) are created for the opcodes: iload, fload, aload, lload, dload, istore, fstore, astore, lstore, dstore if the variable index is 0, 1, 2 or 3. An extra wide prefix is automatically added for these instructions if the numeric argument is larger than 255.
| Field Summary | |
private int |
index
|
static byte |
KND_LOAD
|
static byte |
KND_RET
|
static byte |
KND_STORE
|
private int |
width
|
| Fields inherited from class org.multijava.util.classfile.Instruction |
|
| Constructor Summary | |
LocalVarInstruction(int opcode,
int index)
Constructs a new instruction that takes a local variable as argument. |
|
| Method Summary | |
boolean |
canComplete()
Returns true iff control flow can reach the next instruction in textual order. |
int |
getIndex()
Returns the position of the variable in the local var set |
(package private) int |
getLocalVar()
Returns the maximum index of local vars used by this instruction. |
byte |
getOperandType()
Returns the type of the operand. |
byte |
getOperationKind()
Returns the operation kind. |
int |
getPushedOnStack()
Returns the size of data pushed on the stack by this instruction |
byte |
getReturnType()
Returns the type pushed on the stack |
(package private) int |
getSize()
Returns the number of bytes used by the the instruction in the code array. |
int |
getStack()
Return the amount of stack (positive or negative) used by this instruction. |
boolean |
isLoad()
|
boolean |
isStore()
|
(package private) void |
resolveConstants(ConstantPool cp)
Insert or check location of constant value on constant pool |
(package private) void |
write(ConstantPool cp,
DataOutput out)
Write this instruction into a file |
| Methods inherited from class org.multijava.util.classfile.Instruction |
check, computeEndAddress, dump, getAddress, getOpcode, getPoppedFromStack, isLiteral, setAddress, setOpcode |
| Methods inherited from class org.multijava.util.classfile.AbstractInstructionAccessor |
transform |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final byte KND_LOAD
public static final byte KND_STORE
public static final byte KND_RET
private int index
private int width
| Constructor Detail |
public LocalVarInstruction(int opcode,
int index)
opcode - the opcode of the instructionindex - the index of the local variable| Method Detail |
public boolean canComplete()
int getSize()
public int getIndex()
public byte getReturnType()
public byte getOperandType()
public byte getOperationKind()
int getLocalVar()
getLocalVar in class Instructionpublic boolean isLoad()
public boolean isStore()
public int getPushedOnStack()
public int getStack()
void resolveConstants(ConstantPool cp)
cp - the constant pool for this class
void write(ConstantPool cp,
DataOutput out)
throws IOException
cp - the constant pool that contain all dataout - the file where to write this object info
IOException - an io problem has occured
|
mjc | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||