25 package org.graalvm.compiler.hotspot;
26
27 import static jdk.vm.ci.code.CodeUtil.K;
28 import static jdk.vm.ci.code.CodeUtil.getCallingConvention;
29 import static jdk.vm.ci.common.InitTimer.timer;
30
31 import java.util.Collections;
32
33 import org.graalvm.compiler.core.common.NumUtil;
34 import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor;
35 import org.graalvm.compiler.debug.DebugHandlersFactory;
36 import org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider;
37 import org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider;
38 import org.graalvm.compiler.hotspot.meta.HotSpotProviders;
39 import org.graalvm.compiler.hotspot.stubs.Stub;
40 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
41 import org.graalvm.compiler.lir.framemap.ReferenceMapBuilder;
42 import org.graalvm.compiler.nodes.StructuredGraph;
43 import org.graalvm.compiler.options.OptionValues;
44 import org.graalvm.compiler.printer.GraalDebugHandlersFactory;
45
46 import jdk.vm.ci.code.CallingConvention;
47 import jdk.vm.ci.common.InitTimer;
48 import jdk.vm.ci.hotspot.HotSpotCallingConventionType;
49 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
50 import jdk.vm.ci.meta.JavaKind;
51 import jdk.vm.ci.meta.JavaType;
52 import jdk.vm.ci.runtime.JVMCICompiler;
53 import org.graalvm.compiler.word.Word;
54
55 /**
56 * Common functionality of HotSpot host backends.
57 */
58 public abstract class HotSpotHostBackend extends HotSpotBackend {
59
60 /**
61 * Descriptor for {@code SharedRuntime::deopt_blob()->unpack()}.
62 */
63 public static final ForeignCallDescriptor DEOPTIMIZATION_HANDLER = new ForeignCallDescriptor("deoptHandler", void.class);
64
65 /**
66 * Descriptor for {@code SharedRuntime::deopt_blob()->uncommon_trap()}.
67 */
68 public static final ForeignCallDescriptor UNCOMMON_TRAP_HANDLER = new ForeignCallDescriptor("uncommonTrapHandler", void.class);
69
70 public static final ForeignCallDescriptor ENABLE_STACK_RESERVED_ZONE = new ForeignCallDescriptor("enableStackReservedZoneEntry", void.class, Word.class);
71
72 public static final ForeignCallDescriptor THROW_DELAYED_STACKOVERFLOW_ERROR = new ForeignCallDescriptor("throwDelayedStackoverflowError", void.class);
73
|
25 package org.graalvm.compiler.hotspot;
26
27 import static jdk.vm.ci.code.CodeUtil.K;
28 import static jdk.vm.ci.code.CodeUtil.getCallingConvention;
29 import static jdk.vm.ci.common.InitTimer.timer;
30
31 import java.util.Collections;
32
33 import org.graalvm.compiler.core.common.NumUtil;
34 import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor;
35 import org.graalvm.compiler.debug.DebugHandlersFactory;
36 import org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider;
37 import org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider;
38 import org.graalvm.compiler.hotspot.meta.HotSpotProviders;
39 import org.graalvm.compiler.hotspot.stubs.Stub;
40 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
41 import org.graalvm.compiler.lir.framemap.ReferenceMapBuilder;
42 import org.graalvm.compiler.nodes.StructuredGraph;
43 import org.graalvm.compiler.options.OptionValues;
44 import org.graalvm.compiler.printer.GraalDebugHandlersFactory;
45 import org.graalvm.compiler.word.Word;
46
47 import jdk.vm.ci.code.CallingConvention;
48 import jdk.vm.ci.common.InitTimer;
49 import jdk.vm.ci.hotspot.HotSpotCallingConventionType;
50 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
51 import jdk.vm.ci.meta.JavaKind;
52 import jdk.vm.ci.meta.JavaType;
53 import jdk.vm.ci.runtime.JVMCICompiler;
54
55 /**
56 * Common functionality of HotSpot host backends.
57 */
58 public abstract class HotSpotHostBackend extends HotSpotBackend {
59
60 /**
61 * Descriptor for {@code SharedRuntime::deopt_blob()->unpack()}.
62 */
63 public static final ForeignCallDescriptor DEOPTIMIZATION_HANDLER = new ForeignCallDescriptor("deoptHandler", void.class);
64
65 /**
66 * Descriptor for {@code SharedRuntime::deopt_blob()->uncommon_trap()}.
67 */
68 public static final ForeignCallDescriptor UNCOMMON_TRAP_HANDLER = new ForeignCallDescriptor("uncommonTrapHandler", void.class);
69
70 public static final ForeignCallDescriptor ENABLE_STACK_RESERVED_ZONE = new ForeignCallDescriptor("enableStackReservedZoneEntry", void.class, Word.class);
71
72 public static final ForeignCallDescriptor THROW_DELAYED_STACKOVERFLOW_ERROR = new ForeignCallDescriptor("throwDelayedStackoverflowError", void.class);
73
|