src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl.java
equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
23 |
23 |
24 |
24 |
25 package org.graalvm.compiler.hotspot; |
25 package org.graalvm.compiler.hotspot; |
26 |
26 |
27 import static jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime; |
27 import static jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime; |
28 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.RegisterEffect.DESTROYS_REGISTERS; |
28 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.RegisterEffect.DESTROYS_ALL_CALLER_SAVE_REGISTERS; |
29 |
29 |
30 import jdk.internal.vm.compiler.collections.EconomicSet; |
30 import jdk.internal.vm.compiler.collections.EconomicSet; |
31 import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor; |
31 import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor; |
32 import org.graalvm.compiler.core.target.Backend; |
32 import org.graalvm.compiler.core.target.Backend; |
33 import org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider; |
33 import org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider; |
182 public boolean isGuaranteedSafepoint() { |
182 public boolean isGuaranteedSafepoint() { |
183 return transition == Transition.SAFEPOINT; |
183 return transition == Transition.SAFEPOINT; |
184 } |
184 } |
185 |
185 |
186 @Override |
186 @Override |
|
187 public RegisterEffect getEffect() { |
|
188 return effect; |
|
189 } |
|
190 |
|
191 @Override |
187 public LocationIdentity[] getKilledLocations() { |
192 public LocationIdentity[] getKilledLocations() { |
188 return killedLocations; |
193 return killedLocations; |
189 } |
194 } |
190 |
195 |
191 @Override |
196 @Override |
266 return address; |
271 return address; |
267 } |
272 } |
268 |
273 |
269 @Override |
274 @Override |
270 public boolean destroysRegisters() { |
275 public boolean destroysRegisters() { |
271 return effect == DESTROYS_REGISTERS; |
276 return effect == DESTROYS_ALL_CALLER_SAVE_REGISTERS; |
272 } |
277 } |
273 |
278 |
274 @Override |
279 @Override |
275 public boolean needsDebugInfo() { |
280 public boolean needsDebugInfo() { |
276 return transition == Transition.SAFEPOINT; |
281 return transition == Transition.SAFEPOINT; |