changeset 21350:f85738837dae

[SPARC] Use proper stackslot offset in SPARCHotSpotMove
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Tue, 12 May 2015 21:36:57 +0200
parents 25bd9e2320de
children 1b3270c6d87c 427f3b505656
files graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotMove.java
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotMove.java	Tue May 12 20:56:04 2015 +0200
+++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotMove.java	Tue May 12 21:36:57 2015 +0200
@@ -69,13 +69,16 @@
                     try (ScratchRegister s2 = masm.getScratchRegister()) {
                         Register sr2 = s2.getRegister();
                         int stackBias = HotSpotGraalRuntime.runtime().getConfig().stackBias;
-                        new SPARCMacroAssembler.Setx(ss.getOffset(crb.frameMap.currentFrameSize()) + stackBias, sr2).emit(masm);
+                        int offset = crb.frameMap.offsetForStackSlot(ss);
+                        new SPARCMacroAssembler.Setx(offset + stackBias, sr2).emit(masm);
                         SPARCAddress addr = new SPARCAddress(SPARC.sp, sr2);
-                        switch (((Kind) result.getPlatformKind()).getBitCount()) {
-                            case 32:
+                        Kind resultKind = (Kind) result.getPlatformKind();
+                        switch (resultKind) {
+                            case Int:
                                 masm.stw(sr1, addr);
                                 break;
-                            case 64:
+                            case Long:
+                            case Object:
                                 masm.stx(sr1, addr);
                                 break;
                             default: