public class SetReturnAddressInstr extends Instr implements ResultInstr
EMPTY_OPERANDS
Constructor and Description |
---|
SetReturnAddressInstr(Variable result,
Label l) |
Modifier and Type | Method and Description |
---|---|
Instr |
cloneForBlockCloning(InlinerInfo ii)
Clone the instruction so it can be used in a cloned block which is present in a scope that itself
or an ancestor scope (in the case of nested blocks) is being inlined.
|
Instr |
cloneForInlinedScope(InlinerInfo ii)
Clone the instruction (present in a method/closure) so it can be inlined into another scope.
|
Operand[] |
getOperands() |
Variable |
getResult() |
Label |
getReturnAddr() |
Object |
interpret(ThreadContext context,
DynamicScope currDynScope,
IRubyObject self,
Object[] temp,
Block block) |
void |
simplifyOperands(Map<Operand,Operand> valueMap,
boolean force)
This method takes as input a map of operands to their values, and outputs
If the value map provides a value for any of the instruction's operands
this method is expected to replace the original operands with the simplified values.
|
String |
toString() |
void |
updateResult(Variable v) |
void |
visit(IRVisitor visitor) |
canBeDeleted, canRaiseException, cloneForInlinedClosure, cloneForInlining, getOperation, getUsedVariables, hasSideEffects, hasUnusedResult, interpretAndGetNewIPC, isDead, markDead, markUnusedResult, renameVars, simplifyAndGetResult, transfersControl
public Variable getResult()
getResult
in interface ResultInstr
public void updateResult(Variable v)
updateResult
in interface ResultInstr
public Label getReturnAddr()
public Operand[] getOperands()
getOperands
in class Instr
public void simplifyOperands(Map<Operand,Operand> valueMap, boolean force)
Instr
simplifyOperands
in class Instr
public Instr cloneForInlinedScope(InlinerInfo ii)
Instr
cloneForInlinedScope
in class Instr
public Instr cloneForBlockCloning(InlinerInfo ii)
Instr
cloneForBlockCloning
in class Instr
public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block)
Copyright © 2001–2016 JRuby. All rights reserved.