Mercurial > hg > graal-compiler
changeset 15400:7e07c99663cb
HSAIL: support for emitLea.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Fri, 25 Apr 2014 16:17:27 +0200 |
parents | 73f419a501ac |
children | 3dde8d8c95b8 |
files | graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILMove.java |
diffstat | 2 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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 + "];"); }
--- 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); } }