|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--at.dms.classfile.AbstractInstructionAccessor | +--at.dms.classfile.Instruction | +--at.dms.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 | |
static byte |
KND_LOAD
|
static byte |
KND_RET
|
static byte |
KND_STORE
|
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,
java.io.DataOutput out)
Write this instruction into a file. |
Methods inherited from class at.dms.classfile.Instruction |
check, computeEndAddress, dump, getAddress, getOpcode, getPoppedFromStack, isLiteral, setAddress, setOpcode |
Methods inherited from class at.dms.classfile.AbstractInstructionAccessor |
transform |
Methods inherited from class java.lang.Object |
|
Field Detail |
public static final byte KND_LOAD
public static final byte KND_STORE
public static final byte KND_RET
Constructor Detail |
public LocalVarInstruction(int opcode, int index)
opcode
- the opcode of the instruction.index
- the index of the local variable.Method Detail |
public boolean canComplete()
canComplete
in class Instruction
int getSize()
getSize
in class Instruction
public int getIndex()
public byte getReturnType()
getReturnType
in class Instruction
public byte getOperandType()
public byte getOperationKind()
int getLocalVar()
getLocalVar
in class Instruction
public boolean isLoad()
public boolean isStore()
public int getPushedOnStack()
getPushedOnStack
in class Instruction
public int getStack()
getStack
in class Instruction
void resolveConstants(ConstantPool cp)
resolveConstants
in class Instruction
cp
- the constant pool for this class.void write(ConstantPool cp, java.io.DataOutput out) throws java.io.IOException
write
in class Instruction
cp
- the constant pool that contain all data.out
- the file where to write this object info.java.io.IOException
- An io problem has occured.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |