public class BSwitchInstr extends MultiBranchInstr
EMPTY_OPERANDS
Constructor and Description |
---|
BSwitchInstr(int[] jumps,
Operand operand,
Label rubyCase,
Label[] targets,
Label elseTarget) |
Modifier and Type | Method and Description |
---|---|
Instr |
clone(CloneInfo info)
Clone the instruction for use in an inlining context (either when a scope is inlined into
another scope, or when a block has to be cloned because its associated call belongs to
an inlined scope).
|
static BSwitchInstr |
decode(IRReaderDecoder d) |
void |
encode(IRWriterEncoder e) |
Operand |
getCaseOperand() |
Label |
getElseTarget() |
int[] |
getJumps() |
Label[] |
getJumpTargets() |
Operand[] |
getOperands() |
Label |
getRubyCaseLabel() |
Label[] |
getTargets() |
int |
interpretAndGetNewIPC(ThreadContext context,
DynamicScope currDynScope,
StaticScope currScope,
IRubyObject self,
java.lang.Object[] temp,
int ipc) |
void |
setOperand(int i,
Operand operand) |
void |
visit(IRVisitor visitor) |
canBeDeletedFromScope, canRaiseException, cloneOperands, computeScopeFlags, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpret, isDead, isDeletable, markDead, renameVars, simplifyAndGetResult, simplifyOperands, toString, toStringNonOperandArgs, transfersControl
public Operand[] getOperands()
getOperands
in class Instr
public Operand getCaseOperand()
public int[] getJumps()
public Label getRubyCaseLabel()
public Label[] getTargets()
public Label getElseTarget()
public void setOperand(int i, Operand operand)
setOperand
in class Instr
public Instr clone(CloneInfo info)
Instr
public void encode(IRWriterEncoder e)
public static BSwitchInstr decode(IRReaderDecoder d)
public int interpretAndGetNewIPC(ThreadContext context, DynamicScope currDynScope, StaticScope currScope, IRubyObject self, java.lang.Object[] temp, int ipc)
interpretAndGetNewIPC
in class Instr
public Label[] getJumpTargets()
getJumpTargets
in class MultiBranchInstr
Copyright © 2001-2020 JRuby. All Rights Reserved.