< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProviderImpl.java

Print this page
rev 56282 : [mq]: graal

*** 1,7 **** /* ! * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 24,34 **** package org.graalvm.compiler.hotspot.meta; import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee; ! import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.RegisterEffect.PRESERVES_REGISTERS; import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.SAFEPOINT; import java.util.ArrayList; import java.util.List; --- 24,34 ---- package org.graalvm.compiler.hotspot.meta; import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee; ! import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.RegisterEffect.DESTROYS_ALL_CALLER_SAVE_REGISTERS; import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.SAFEPOINT; import java.util.ArrayList; import java.util.List;
*** 112,154 **** */ public HotSpotForeignCallLinkage registerStubCall( ForeignCallDescriptor descriptor, Transition transition, Reexecutability reexecutability, LocationIdentity... killedLocations) { return register(HotSpotForeignCallLinkageImpl.create(metaAccess, codeCache, wordTypes, this, descriptor, ! 0L, PRESERVES_REGISTERS, JavaCall, JavaCallee, transition, reexecutability, killedLocations)); } /** ! * Creates and registers the linkage for a foreign call. * * @param descriptor the signature of the foreign call * @param address the address of the code to call (must be non-zero) * @param outgoingCcType outgoing (caller) calling convention type - * @param effect specifies if the call destroys or preserves all registers (apart from - * temporaries which are always destroyed) * @param transition specifies if this is a {@linkplain Transition#LEAF leaf} call * @param reexecutability specifies if the foreign call can be re-executed without (meaningful) * side effects. Deoptimization will not return to a point before a foreign call that * cannot be re-executed. * @param killedLocations the memory locations killed by the foreign call */ public HotSpotForeignCallLinkage registerForeignCall( ForeignCallDescriptor descriptor, long address, CallingConvention.Type outgoingCcType, - RegisterEffect effect, Transition transition, Reexecutability reexecutability, LocationIdentity... killedLocations) { Class<?> resultType = descriptor.getResultType(); assert address != 0 : descriptor; --- 112,154 ---- */ public HotSpotForeignCallLinkage registerStubCall( ForeignCallDescriptor descriptor, Transition transition, Reexecutability reexecutability, + RegisterEffect effect, LocationIdentity... killedLocations) { return register(HotSpotForeignCallLinkageImpl.create(metaAccess, codeCache, wordTypes, this, descriptor, ! 0L, effect, JavaCall, JavaCallee, transition, reexecutability, killedLocations)); } /** ! * Creates and registers the linkage for a foreign call. All foreign calls are assumed to have ! * the effect {@link RegisterEffect#DESTROYS_ALL_CALLER_SAVE_REGISTERS} since they are outside ! * of Graal's knowledge. * * @param descriptor the signature of the foreign call * @param address the address of the code to call (must be non-zero) * @param outgoingCcType outgoing (caller) calling convention type * @param transition specifies if this is a {@linkplain Transition#LEAF leaf} call * @param reexecutability specifies if the foreign call can be re-executed without (meaningful) * side effects. Deoptimization will not return to a point before a foreign call that * cannot be re-executed. * @param killedLocations the memory locations killed by the foreign call */ public HotSpotForeignCallLinkage registerForeignCall( ForeignCallDescriptor descriptor, long address, CallingConvention.Type outgoingCcType, Transition transition, Reexecutability reexecutability, LocationIdentity... killedLocations) { Class<?> resultType = descriptor.getResultType(); assert address != 0 : descriptor;
*** 157,167 **** codeCache, wordTypes, this, descriptor, address, ! effect, outgoingCcType, null, // incomingCcType transition, reexecutability, killedLocations)); --- 157,167 ---- codeCache, wordTypes, this, descriptor, address, ! DESTROYS_ALL_CALLER_SAVE_REGISTERS, outgoingCcType, null, // incomingCcType transition, reexecutability, killedLocations));
< prev index next >