# HG changeset patch # User Josef Eisl # Date 1436773148 -7200 # Node ID aff4dce0b9f6c66154cd92ec4e91f60da357816f # Parent 339beb6375087a82f10d3e210366deb51ac7e1e7 AMD64Move#const2stack: add support for Char. diff -r 339beb637508 -r aff4dce0b9f6 graal/com.oracle.graal.asm/src/com/oracle/graal/asm/NumUtil.java --- a/graal/com.oracle.graal.asm/src/com/oracle/graal/asm/NumUtil.java Mon Jul 13 11:03:41 2015 +0200 +++ b/graal/com.oracle.graal.asm/src/com/oracle/graal/asm/NumUtil.java Mon Jul 13 09:39:08 2015 +0200 @@ -93,6 +93,10 @@ return s == (s & 0xFFFF); } + public static boolean isUShort(long s) { + return s == (s & 0xFFFF); + } + public static boolean is32bit(long x) { return -0x80000000L <= x && x < 0x80000000L; } diff -r 339beb637508 -r aff4dce0b9f6 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Mon Jul 13 11:03:41 2015 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Mon Jul 13 09:39:08 2015 +0200 @@ -673,6 +673,10 @@ assert NumUtil.isShort(imm) : "Is not in short range: " + imm; AMD64MIOp.MOV.emit(masm, OperandSize.WORD, dest, (int) imm); break; + case Char: + assert NumUtil.isUShort(imm) : "Is not in char range: " + imm; + AMD64MIOp.MOV.emit(masm, OperandSize.WORD, dest, (int) imm); + break; case Int: case Float: assert NumUtil.isInt(imm) : "Is not in int range: " + imm;