use of org.graalvm.compiler.lir.gen.LIRGeneratorTool in project graal by oracle.
the class WriteHeapBaseNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
LIRGeneratorTool tool = gen.getLIRGeneratorTool();
tool.emitMove(((SubstrateRegisterConfig) tool.getResult().getRegisterConfig()).getHeapBaseRegister().asValue(tool.getLIRKind(FrameAccess.getWordStamp())), gen.operand(value));
}
use of org.graalvm.compiler.lir.gen.LIRGeneratorTool in project graal by oracle.
the class ReadRegisterFixedNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
LIRGeneratorTool tool = gen.getLIRGeneratorTool();
SubstrateRegisterConfig registerConfig = (SubstrateRegisterConfig) tool.getRegisterConfig();
LIRKind lirKind = tool.getLIRKind(FrameAccess.getWordStamp());
RegisterValue value = registerSupplier.apply(registerConfig).asValue(lirKind);
gen.setResult(this, tool.emitMove(value));
}
use of org.graalvm.compiler.lir.gen.LIRGeneratorTool in project graal by oracle.
the class ValueCompareAndSwapNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
assert getNewValue().stamp(NodeView.DEFAULT).isCompatible(getExpectedValue().stamp(NodeView.DEFAULT));
LIRGeneratorTool tool = gen.getLIRGeneratorTool();
assert !this.canDeoptimize();
gen.setResult(this, tool.emitValueCompareAndSwap(gen.operand(getAddress()), gen.operand(getExpectedValue()), gen.operand(getNewValue())));
}
Aggregations