Mercurial > hg > graal-compiler
diff graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotMove.java @ 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 | d24e4f349cbc |
children | 1da7aef31a08 |
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: