diff graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java @ 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 ed3e144ced29
children ccddbb1409d2
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));