# HG changeset patch # User Stefan Anzinger # Date 1431694043 -7200 # Node ID 8adf2a82669688def7eef6c4748c3466d7941784 # Parent 307a1ee8f714ec63bc2973a48579632237df3802 [SPARC] Sign extend address to 64 bit when building an address diff -r 307a1ee8f714 -r 8adf2a826696 graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java --- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Fri May 15 11:55:52 2015 +0200 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Fri May 15 14:47:23 2015 +0200 @@ -154,15 +154,15 @@ finalDisp += asConstant(index).asLong() * scale; indexRegister = Value.ILLEGAL; } else { + Value longIndex = index.getKind() == Kind.Long ? index : emitSignExtend(index, 32, 64); if (scale != 1) { - Value longIndex = index.getKind() == Kind.Long ? index : emitSignExtend(index, 32, 64); if (CodeUtil.isPowerOf2(scale)) { indexRegister = emitShl(longIndex, JavaConstant.forLong(CodeUtil.log2(scale))); } else { indexRegister = emitMul(longIndex, JavaConstant.forLong(scale), false); } } else { - indexRegister = asAllocatable(index); + indexRegister = asAllocatable(longIndex); } } } else {