public static final class AMD64ControlFlow.RangeTableSwitchOp extends AMD64BlockEndOp
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
protected Value |
idxScratch |
protected Value |
index |
protected Value |
scratch |
static LIRInstructionClass<AMD64ControlFlow.RangeTableSwitchOp> |
TYPE |
ADDRESS_FLAGS, ALLOWED_FLAGS| Constructor and Description |
|---|
RangeTableSwitchOp(int lowKey,
LabelRef defaultTarget,
LabelRef[] targets,
Value index,
Variable scratch,
Variable idxScratch) |
| Modifier and Type | Method and Description |
|---|---|
void |
emitCode(CompilationResultBuilder crb,
AMD64MacroAssembler masm) |
static void |
emitJumpTable(CompilationResultBuilder crb,
AMD64MacroAssembler masm,
Register scratchReg,
Register idxScratchReg,
int lowKey,
int highKey,
Stream<Label> targets) |
emitCodeaddStackSlotsToTemporaries, destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getComment, getLIRInstructionClass, getPosition, hashCode, hasOperands, hasState, id, isLoadConstantOp, isMoveOp, isValueMoveOp, name, needsClearUpperVectorRegisters, setComment, setId, setPosition, toString, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemppublic static final LIRInstructionClass<AMD64ControlFlow.RangeTableSwitchOp> TYPE
protected Value index
protected Value idxScratch
protected Value scratch
public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm)
emitCode in class AMD64BlockEndOppublic static void emitJumpTable(CompilationResultBuilder crb, AMD64MacroAssembler masm, Register scratchReg, Register idxScratchReg, int lowKey, int highKey, Stream<Label> targets)