# HG changeset patch # User Roland Schatz # Date 1398435447 -7200 # Node ID 7e07c99663cb6f86eb8fa5cf7f8a68531068cbb5 # Parent 73f419a501ac6ed25e8002cf80db29785aa6c631 HSAIL: support for emitLea. diff -r 73f419a501ac -r 7e07c99663cb 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 Fri Apr 25 14:57:53 2014 +0200 +++ b/graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java Fri Apr 25 16:17:27 2014 +0200 @@ -136,6 +136,11 @@ emitAddrOp("lda_global_u64", dest, addr); } + public final void emitLea(Value dest, HSAILAddress addr) { + String prefix = getArgType(dest); + emitString(String.format("add_%s %s, $%s, 0x%s;", prefix, HSAIL.mapRegister(dest), addr.getBase().name, Long.toHexString(addr.getDisplacement()))); + } + public final void emitLoadKernelArg(Value dest, String kernArgName, String argTypeStr) { emitString("ld_kernarg_" + argTypeStr + " " + HSAIL.mapRegister(dest) + ", [" + kernArgName + "];"); } diff -r 73f419a501ac -r 7e07c99663cb graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILMove.java --- a/graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILMove.java Fri Apr 25 14:57:53 2014 +0200 +++ b/graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILMove.java Fri Apr 25 16:17:27 2014 +0200 @@ -395,7 +395,8 @@ @Override public void emitCode(CompilationResultBuilder crb, HSAILAssembler masm) { - throw new InternalError("NYI"); + HSAILAddress addr = address.toAddress(); + masm.emitLea(result, addr); } }