use of org.graalvm.compiler.core.common.LIRKind in project graal by oracle.
the class ReadNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
LIRKind readKind = gen.getLIRGeneratorTool().getLIRKind(getAccessStamp());
gen.setResult(this, gen.getLIRGeneratorTool().getArithmetic().emitLoad(readKind, gen.operand(address), gen.state(this)));
}
use of org.graalvm.compiler.core.common.LIRKind in project graal by oracle.
the class WriteNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
LIRKind writeKind = gen.getLIRGeneratorTool().getLIRKind(value().stamp(NodeView.DEFAULT));
gen.getLIRGeneratorTool().getArithmetic().emitStore(writeKind, gen.operand(address), gen.operand(value()), gen.state(this));
}
use of org.graalvm.compiler.core.common.LIRKind in project graal by oracle.
the class VMThreadLocalSTHolderNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
Object holder;
if (threadLocalInfo.isObject) {
holder = ImageSingletons.lookup(VMThreadLocalSTSupport.class).objectThreadLocals;
} else {
holder = ImageSingletons.lookup(VMThreadLocalSTSupport.class).primitiveThreadLocals;
}
LIRKind kind = gen.getLIRGeneratorTool().getLIRKind(stamp(NodeView.DEFAULT));
gen.setResult(this, gen.getLIRGeneratorTool().emitLoadConstant(kind, SubstrateObjectConstant.forObject(holder)));
}
use of org.graalvm.compiler.core.common.LIRKind 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 org.graalvm.compiler.core.common.LIRKind in project graal by oracle.
the class DirectStoreNode method generate.
@Override
public void generate(NodeLIRBuilderTool gen) {
Value v = gen.operand(value);
LIRKind lirKind = LIRKind.fromJavaKind(gen.getLIRGeneratorTool().target().arch, kind);
gen.getLIRGeneratorTool().getArithmetic().emitStore(lirKind, gen.operand(address), v, null);
}
Aggregations