changeset 20883:7f4339cca304

[SPARC] Save thread register when doing a foreign call which destroys registers.
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Fri, 10 Apr 2015 12:00:38 +0200
parents e0b3dc6b025c
children dc41766b35e1
files graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java	Thu Apr 09 23:40:18 2015 +0200
+++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java	Fri Apr 10 12:00:38 2015 +0200
@@ -129,7 +129,7 @@
             assert deoptInfo != null || getStub() != null;
         }
 
-        if (hotspotLinkage.needsJavaFrameAnchor()) {
+        if (linkage.destroysRegisters() || hotspotLinkage.needsJavaFrameAnchor()) {
             HotSpotRegistersProvider registers = getProviders().getRegisters();
             Register thread = registers.getThreadRegister();
             Value threadTemp = newVariable(LIRKind.value(Kind.Long));