Modifier and Type | Field and Description |
---|---|
ILOCOperand |
ILOCFunction.Variable.base |
static ILOCOperand |
ILOCOperand.INVALID
Invalid operand tag
|
ILOCOperand |
ILOCFunction.Variable.offset |
ILOCOperand[] |
ILOCInstruction.operands
Instruction operands
|
static ILOCOperand |
ILOCOperand.REG_BP
Base pointer register (ebp/rbp on x86)
|
static ILOCOperand |
ILOCOperand.REG_RET
Function return value register (eax/rax on x86)
|
static ILOCOperand |
ILOCOperand.REG_SP
Base pointer register (ebp/rbp on x86)
|
static ILOCOperand |
ILOCOperand.ZERO
Special constant (zero)
|
Modifier and Type | Field and Description |
---|---|
Set<ILOCOperand> |
ILOCBasicBlock.killedVars |
Set<ILOCOperand> |
ILOCBasicBlock.liveIn |
Set<ILOCOperand> |
ILOCBasicBlock.liveOut |
Set<ILOCOperand> |
ILOCBasicBlock.upwardExposedVars |
Modifier and Type | Method and Description |
---|---|
ILOCOperand |
ILOCGenerator.base(ASTNode dest,
Symbol variable)
Fills a register with the base address of a variable.
|
ILOCOperand |
ILOCGenerator.emitLoad(ASTLocation dest)
Emits a right-hand-side load for a given location.
|
ILOCOperand |
ILOCGenerator.getTempReg(ASTNode node)
Returns the temporary ILOC virtual register associated with the result of
evaluating a node in the AST.
|
ILOCOperand |
ILOCInstruction.getWriteOperand()
Returns a single ILOCOperands written by this instruction.
|
ILOCOperand |
ILOCGenerator.indexedOffset(ASTNode dest,
Symbol variable,
ILOCOperand indexReg)
Calculates the offset of an indexed variable reference and returns the
adjusted offset in an
ILOCOperand . |
static ILOCOperand |
ILOCOperand.newAnonymousLabel()
Allocate and return a new anonymous jump label
|
static ILOCOperand |
ILOCOperand.newCallLabel(String name)
Return an operand for the given call target
|
static ILOCOperand |
ILOCOperand.newIntConstant(int value)
Return an operand for the given integer literal
|
static ILOCOperand |
ILOCOperand.newStrConstant(String value)
Return an operand for the given string literal
|
static ILOCOperand |
ILOCOperand.newVirtualReg()
Allocate and return a new virtual register reference
|
ILOCOperand |
ILOCGenerator.offset(Symbol variable)
Calculates the offset of a scalar variable reference and returns the
adjusted offset in an
ILOCOperand . |
Modifier and Type | Method and Description |
---|---|
List<ILOCOperand> |
ILOCInstruction.getReadOperands()
Returns a list of ILOCOperands read by this instruction.
|
List<ILOCOperand> |
ILOCInstruction.getReadOperands(boolean includeLiterals)
Returns a list of ILOCOperands read by this instruction.
|
List<ILOCOperand> |
ILOCInstruction.getWriteOperands()
Returns a list of ILOCOperands written by this instruction.
|
Modifier and Type | Method and Description |
---|---|
void |
ILOCInterpreter.assertOperandIsRegister(ILOCInstruction insn,
ILOCOperand op) |
void |
ILOCInterpreter.assertOperandType(ILOCInstruction insn,
ILOCOperand op,
ILOCOperand.Type type) |
void |
ILOCGenerator.emit(ASTNode node,
ILOCInstruction.Form form,
ILOCOperand op)
Generate a new ILOC instruction and add it to the code for an AST node.
|
void |
ILOCGenerator.emit(ASTNode node,
ILOCInstruction.Form form,
ILOCOperand op1,
ILOCOperand op2)
Generate a new ILOC instruction and add it to the code for an AST node.
|
void |
ILOCGenerator.emit(ASTNode node,
ILOCInstruction.Form form,
ILOCOperand op1,
ILOCOperand op2,
ILOCOperand op3)
Generate a new ILOC instruction and add it to the code for an AST node.
|
void |
ILOCGenerator.emitStore(ASTAssignment dest,
ILOCOperand srcReg)
Emits a store for a given assignment.
|
int |
ILOCInterpreter.findJumpTarget(ILOCOperand targ) |
boolean |
ILOCInterpreter.getBool(ILOCOperand src) |
int |
ILOCInterpreter.getInt(ILOCOperand src) |
ILOCOperand |
ILOCGenerator.indexedOffset(ASTNode dest,
Symbol variable,
ILOCOperand indexReg)
Calculates the offset of an indexed variable reference and returns the
adjusted offset in an
ILOCOperand . |
void |
ILOCInterpreter.setBool(ILOCOperand dst,
boolean value) |
void |
ILOCInterpreter.setBool(ILOCOperand dst,
int value) |
void |
ILOCInterpreter.setInt(ILOCOperand dst,
int value) |
void |
ILOCGenerator.setTempReg(ASTNode node,
ILOCOperand reg)
Sets the temporary ILOC virtual register associated with the result of
evaluating a node in the AST.
|
Modifier and Type | Method and Description |
---|---|
void |
ExportControlFlowDOT.processOperandSet(Set<ILOCOperand> ops,
StringBuffer label) |
Constructor and Description |
---|
ILOCInstruction(ILOCInstruction.Form form,
ILOCOperand[] operands)
Create a new instruction
|
ILOCInstruction(ILOCInstruction.Form form,
ILOCOperand[] operands,
String comment)
Create a new instruction
|
Variable(ILOCOperand base,
ILOCOperand offset) |
Copyright © 2019. All rights reserved.