Search in sources :

Example 16 with ForeignCallLinkage

use of org.graalvm.compiler.core.common.spi.ForeignCallLinkage in project graal by oracle.

the class StubForeignCallNode method generate.

@Override
public void generate(NodeLIRBuilderTool gen) {
    assert graph().start() instanceof StubStartNode;
    ForeignCallLinkage linkage = foreignCalls.lookupForeignCall(descriptor);
    Value[] operands = operands(gen);
    Value result = gen.getLIRGeneratorTool().emitForeignCall(linkage, null, operands);
    if (result != null) {
        gen.setResult(this, result);
    }
}
Also used : Value(jdk.vm.ci.meta.Value) ForeignCallLinkage(org.graalvm.compiler.core.common.spi.ForeignCallLinkage)

Aggregations

ForeignCallLinkage (org.graalvm.compiler.core.common.spi.ForeignCallLinkage)16 CallingConvention (jdk.vm.ci.code.CallingConvention)9 Register (jdk.vm.ci.code.Register)7 RegisterValue (jdk.vm.ci.code.RegisterValue)6 ValueUtil.asRegister (jdk.vm.ci.code.ValueUtil.asRegister)4 Value (jdk.vm.ci.meta.Value)4 HotSpotForeignCallLinkage (org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage)4 Variable (org.graalvm.compiler.lir.Variable)4 AllocatableValue (jdk.vm.ci.meta.AllocatableValue)2 AArch64HotSpotRegisterConfig.inlineCacheRegister (jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.inlineCacheRegister)1 AArch64HotSpotRegisterConfig.metaspaceMethodRegister (jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.metaspaceMethodRegister)1 ResolvedJavaMethod (jdk.vm.ci.meta.ResolvedJavaMethod)1 SPARCKind (jdk.vm.ci.sparc.SPARCKind)1 ScratchRegister (org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.ScratchRegister)1 AMD64Address (org.graalvm.compiler.asm.amd64.AMD64Address)1 LIRKind (org.graalvm.compiler.core.common.LIRKind)1 HotSpotForeignCallsProvider (org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider)1 HotSpotProviders (org.graalvm.compiler.hotspot.meta.HotSpotProviders)1 ConstantValue (org.graalvm.compiler.lir.ConstantValue)1 SPARCAddressValue (org.graalvm.compiler.lir.sparc.SPARCAddressValue)1