public static final class SPARCControlFlow.StrategySwitchOp extends SPARCBlockEndOp
SPARCLIRInstruction.SizeEstimateLIRInstruction.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 |
delayedControlTransferADDRESS_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, setOutgoingValuesemitCode, leavesRegisterWindow, setDelayedControlTransferdestroysCallerSavedRegisters, 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, visitEachTemppublic 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 SPARCLIRInstructionprivate Assembler.LabelHint requestHint(SPARCMacroAssembler masm, Label label)
public SPARCLIRInstruction.SizeEstimate estimateSize()
estimateSize in class SPARCLIRInstruction