public abstract class HotSpotCounterOp extends LIRInstruction
| Modifier and Type | Class and Description |
|---|---|
protected static interface |
HotSpotCounterOp.CounterProcedure |
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
protected GraalHotSpotVMConfig |
config |
protected Value[] |
increments |
protected Register |
thread |
static LIRInstructionClass<HotSpotCounterOp> |
TYPE |
ADDRESS_FLAGS, ALLOWED_FLAGS| Constructor and Description |
|---|
HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c,
String[] names,
String[] groups,
Value[] increments,
HotSpotRegistersProvider registers,
GraalHotSpotVMConfig config) |
HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c,
String name,
String group,
Value increment,
HotSpotRegistersProvider registers,
GraalHotSpotVMConfig config) |
| Modifier and Type | Method and Description |
|---|---|
protected static int |
asInt(JavaConstant value) |
protected void |
forEachCounter(HotSpotCounterOp.CounterProcedure proc,
TargetDescription target)
Calls the
HotSpotCounterOp.CounterProcedure for each counter in ascending order of their displacement
in the counter array. |
protected static int |
getDisplacementForLongIndex(TargetDescription target,
long index) |
String[] |
getGroups() |
protected int |
getIndex(String name,
String group,
Value increment) |
String[] |
getNames() |
void |
patchCounterIncrement(Assembler asm,
int[] increment)
Patches the increment value in the instruction emitted by this instruction.
|
addStackSlotsToTemporaries, destroysCallerSavedRegisters, emitCode, 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<HotSpotCounterOp> TYPE
protected final Register thread
protected final GraalHotSpotVMConfig config
protected Value[] increments
public HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c, String name, String group, Value increment, HotSpotRegistersProvider registers, GraalHotSpotVMConfig config)
public HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c, String[] names, String[] groups, Value[] increments, HotSpotRegistersProvider registers, GraalHotSpotVMConfig config)
protected static int getDisplacementForLongIndex(TargetDescription target,
long index)
protected void forEachCounter(HotSpotCounterOp.CounterProcedure proc, TargetDescription target)
HotSpotCounterOp.CounterProcedure for each counter in ascending order of their displacement
in the counter array.proc - The procedure to be calledtarget - Target architecture (used to calculate the array displacements)public void patchCounterIncrement(Assembler asm, int[] increment)
asm - increment - protected static int asInt(JavaConstant value)
public String[] getNames()
public String[] getGroups()