Mercurial > hg > graal-compiler
changeset 22207:aff4dce0b9f6
AMD64Move#const2stack: add support for Char.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 13 Jul 2015 09:39:08 +0200 |
parents | 339beb637508 |
children | 016608c0ce59 |
files | graal/com.oracle.graal.asm/src/com/oracle/graal/asm/NumUtil.java graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java |
diffstat | 2 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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; }
--- 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;