use of com.oracle.svm.core.graal.meta.SubstrateRegisterConfig in project graal by oracle.
the class ReadRegisterFloatingNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
VMError.guarantee(usages().filter(FrameState.class).isEmpty(), "When used in a FrameState, need a ReadRegisterFixedNode and not a ReadRegisterFloatingNode");
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, value);
}
use of com.oracle.svm.core.graal.meta.SubstrateRegisterConfig in project graal by oracle.
the class AMD64DecrementingSafepointCheckOp method emitCode.
@Override
public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) {
assert SubstrateOptions.MultiThreaded.getValue();
SubstrateRegisterConfig threadRegister = (SubstrateRegisterConfig) crb.codeCache.getRegisterConfig();
masm.decrementl(new AMD64Address(threadRegister.getThreadRegister(), Math.toIntExact(Safepoint.getThreadLocalSafepointRequestedOffset())), 1);
}
use of com.oracle.svm.core.graal.meta.SubstrateRegisterConfig in project graal by oracle.
the class WriteCurrentVMThreadNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
LIRGeneratorTool tool = gen.getLIRGeneratorTool();
SubstrateRegisterConfig registerConfig = (SubstrateRegisterConfig) tool.getRegisterConfig();
gen.getLIRGeneratorTool().emitMove(registerConfig.getThreadRegister().asValue(tool.getLIRKind(FrameAccess.getWordStamp())), gen.operand(value));
}
use of com.oracle.svm.core.graal.meta.SubstrateRegisterConfig 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 com.oracle.svm.core.graal.meta.SubstrateRegisterConfig 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));
}
Aggregations