# HG changeset patch # User Lukas Stadler # Date 1408639818 -7200 # Node ID b4e088bea501866491585cebcefd3e582341069d # Parent bbb987aec58dc671b92123e1db1bf40960c456fd don't generate invalid mov_b hsail instructions diff -r bbb987aec58d -r b4e088bea501 graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java --- 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) + ";"); } }