Mercurial > hg > graal-jvmci-8
changeset 16879:b4e088bea501
don't generate invalid mov_b hsail instructions
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 21 Aug 2014 18:50:18 +0200 |
parents | bbb987aec58d |
children | f0e3b50c29c8 |
files | graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java |
diffstat | 1 files changed, 20 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java Thu Aug 21 11:12:38 2014 +0200 +++ b/graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java Thu Aug 21 18:50:18 2014 +0200 @@ -88,12 +88,30 @@ */ public abstract void mov(Register a, Constant src); + private static String getBitTypeFromKind(Kind kind) { + switch (kind) { + case Boolean: + case Byte: + case Short: + case Char: + case Int: + case Float: + return "b32"; + case Long: + case Double: + case Object: + return "b64"; + default: + throw GraalInternalError.shouldNotReachHere(); + } + } + public final void emitMov(Kind kind, Value dst, Value src) { if (isRegister(dst) && isConstant(src) && kind.getStackKind() == Kind.Object) { mov(asRegister(dst), asConstant(src)); } else { - String argtype = getArgTypeFromKind(kind).substring(1); - emitString("mov_b" + argtype + " " + mapRegOrConstToString(dst) + ", " + mapRegOrConstToString(src) + ";"); + String argtype = getBitTypeFromKind(kind); + emitString("mov_" + argtype + " " + mapRegOrConstToString(dst) + ", " + mapRegOrConstToString(src) + ";"); } }