public static final class SPARCControlFlow.StrategySwitchOp extends SPARCBlockEndOp
SPARCLIRInstruction.SizeEstimate
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use
Modifier and Type | Field and Description |
---|---|
private List<Label> |
conditionalLabels |
protected Value |
constantTableBase |
private LabelRef |
defaultTarget |
protected Value |
key |
protected JavaConstant[] |
keyConstants |
private LabelRef[] |
keyTargets |
private Map<Label,Assembler.LabelHint> |
labelHints |
protected Value |
scratch |
private SwitchStrategy |
strategy |
static LIRInstructionClass<SPARCControlFlow.StrategySwitchOp> |
TYPE |
delayedControlTransfer
ADDRESS_FLAGS, ALLOWED_FLAGS
Constructor and Description |
---|
StrategySwitchOp(Value constantTableBase,
SwitchStrategy strategy,
LabelRef[] keyTargets,
LabelRef defaultTarget,
Value key,
Value scratch) |
Modifier and Type | Method and Description |
---|---|
void |
emitCode(CompilationResultBuilder crb,
SPARCMacroAssembler masm) |
SPARCLIRInstruction.SizeEstimate |
estimateSize() |
private Assembler.LabelHint |
requestHint(SPARCMacroAssembler masm,
Label label) |
addOutgoingValues, clearOutgoingValues, getOutgoingSize, getOutgoingValue, setOutgoingValues
emitCode, leavesRegisterWindow, setDelayedControlTransfer
destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getLIRInstructionClass, hasOperands, hasState, id, name, setId, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemp
public static final LIRInstructionClass<SPARCControlFlow.StrategySwitchOp> TYPE
protected JavaConstant[] keyConstants
private final LabelRef[] keyTargets
private LabelRef defaultTarget
protected Value constantTableBase
private final SwitchStrategy strategy
private final Map<Label,Assembler.LabelHint> labelHints
private final List<Label> conditionalLabels
public StrategySwitchOp(Value constantTableBase, SwitchStrategy strategy, LabelRef[] keyTargets, LabelRef defaultTarget, Value key, Value scratch)
public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm)
emitCode
in class SPARCLIRInstruction
private Assembler.LabelHint requestHint(SPARCMacroAssembler masm, Label label)
public SPARCLIRInstruction.SizeEstimate estimateSize()
estimateSize
in class SPARCLIRInstruction