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 HotSpotVMConfig |
config |
private String[] |
groups |
protected Value[] |
increments |
private String[] |
names |
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,
HotSpotVMConfig config) |
HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c,
String name,
String group,
Value increment,
HotSpotRegistersProvider registers,
HotSpotVMConfig config) |
Modifier and Type | Method and Description |
---|---|
protected static int |
asInt(JavaConstant value) |
private static long |
asLong(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.
|
destroysCallerSavedRegisters, emitCode, 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<HotSpotCounterOp> TYPE
protected final HotSpotVMConfig config
protected Value[] increments
public HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c, String name, String group, Value increment, HotSpotRegistersProvider registers, HotSpotVMConfig config)
public HotSpotCounterOp(LIRInstructionClass<? extends HotSpotCounterOp> c, String[] names, String[] groups, Value[] increments, HotSpotRegistersProvider registers, HotSpotVMConfig 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
- private static long asLong(JavaConstant value)
protected static int asInt(JavaConstant value)