# HG changeset patch # User Stefan Anzinger # Date 1406568987 25200 # Node ID ee2b88c44b4394d65e1bfeceabdb2df292e04295 # Parent e87d16c605d2f836a12e179ff650c348b3e2e555 [SPARC] ld/st for char, byte and boolean diff -r e87d16c605d2 -r ee2b88c44b43 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Fri Jul 25 20:57:11 2014 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Mon Jul 28 10:36:27 2014 -0700 @@ -410,6 +410,10 @@ return; } switch (input.getKind()) { + case Boolean: + case Byte: + case Short: + case Char: case Int: case Long: case Object: @@ -451,9 +455,14 @@ SPARCAddress dst = (SPARCAddress) crb.asAddress(result); Register src = asRegister(input); switch (input.getKind()) { - case Char: case Byte: case Boolean: + new Stb(src, dst).emit(masm); + break; + case Char: + case Short: + new Sth(src, dst).emit(masm); + break; case Int: new Stw(src, dst).emit(masm); break; @@ -476,6 +485,16 @@ SPARCAddress src = (SPARCAddress) crb.asAddress(input); Register dst = asRegister(result); switch (input.getKind()) { + case Boolean: + case Byte: + new Ldsb(src, dst).emit(masm); + break; + case Short: + new Ldsh(src, dst).emit(masm); + break; + case Char: + new Lduh(src, dst).emit(masm); + break; case Int: new Ldsw(src, dst).emit(masm); break;