use of org.graalvm.compiler.hotspot.HotSpotLIRGenerator in project graal by oracle.
the class LoadConstantIndirectlyNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
assert constant != null : "Expected the value to fold: " + value;
Value result;
if (constant instanceof HotSpotObjectConstant) {
result = ((HotSpotLIRGenerator) gen.getLIRGeneratorTool()).emitLoadObjectAddress(constant);
} else if (constant instanceof HotSpotMetaspaceConstant) {
result = ((HotSpotLIRGenerator) gen.getLIRGeneratorTool()).emitLoadMetaspaceAddress(constant, action);
} else {
throw new PermanentBailoutException("Unsupported constant type: " + constant);
}
gen.setResult(this, result);
}
use of org.graalvm.compiler.hotspot.HotSpotLIRGenerator in project graal by oracle.
the class ResolveMethodAndLoadCountersStubCall method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
assert methodConstant != null : "Expected method to fold: " + method;
Value methodDescriptionValue = gen.operand(methodDescription);
Value klassHintValue = gen.operand(klassHint);
LIRFrameState fs = gen.state(this);
assert fs != null : "The stateAfter is null";
Value result = ((HotSpotLIRGenerator) gen.getLIRGeneratorTool()).emitResolveMethodAndLoadCounters(methodConstant, klassHintValue, methodDescriptionValue, fs);
gen.setResult(this, result);
}
use of org.graalvm.compiler.hotspot.HotSpotLIRGenerator in project graal by oracle.
the class RandomSeedNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
Value result = ((HotSpotLIRGenerator) gen.getLIRGeneratorTool()).emitRandomSeed();
gen.setResult(this, result);
}
use of org.graalvm.compiler.hotspot.HotSpotLIRGenerator in project graal by oracle.
the class GraalHotSpotVMConfigNode method generate.
@Override
public void generate(NodeLIRBuilderTool generator) {
Value res = ((HotSpotLIRGenerator) generator.getLIRGeneratorTool()).emitLoadConfigValue(markId, generator.getLIRGeneratorTool().getLIRKind(stamp));
generator.setResult(this, res);
}
use of org.graalvm.compiler.hotspot.HotSpotLIRGenerator in project graal by oracle.
the class CurrentLockNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
assert lockDepth != -1;
HotSpotLIRGenerator hsGen = (HotSpotLIRGenerator) gen.getLIRGeneratorTool();
VirtualStackSlot slot = hsGen.getLockSlot(lockDepth);
// The register allocator cannot handle stack -> register moves so we use an LEA here
Value result = gen.getLIRGeneratorTool().emitAddress(slot);
gen.setResult(this, result);
}
Aggregations