From c1fb525cc504cf19cd1bdaac07975191f47e9875 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 16 Dec 2015 18:14:49 +0000 Subject: [PATCH] [WebAssembly] Use the new offset syntax for memory operands in inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255788 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp | 4 +++- test/CodeGen/WebAssembly/inline-asm.ll | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp b/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp index 68cfee42802..079c864c7bc 100644 --- a/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp +++ b/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp @@ -260,7 +260,9 @@ bool WebAssemblyAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, report_fatal_error("There are no defined alternate asm variants"); if (!ExtraCode) { - OS << regToString(MI->getOperand(OpNo)); + // TODO: For now, we just hard-code 0 as the constant offset; teach + // SelectInlineAsmMemoryOperand how to do address mode matching. + OS << "0(" + regToString(MI->getOperand(OpNo)) + ')'; return false; } diff --git a/test/CodeGen/WebAssembly/inline-asm.ll b/test/CodeGen/WebAssembly/inline-asm.ll index 5eea83a771c..fc066c4b812 100644 --- a/test/CodeGen/WebAssembly/inline-asm.ll +++ b/test/CodeGen/WebAssembly/inline-asm.ll @@ -21,7 +21,7 @@ entry: ; CHECK-LABEL: bar: ; CHECK-NEXT: .param i32, i32{{$}} ; CHECK-NEXT: #APP{{$}} -; CHECK-NEXT: # $1 = bbb($0){{$}} +; CHECK-NEXT: # 0($1) = bbb(0($0)){{$}} ; CHECK-NEXT: #NO_APP{{$}} ; CHECK-NEXT: return{{$}} define void @bar(i32* %r, i32* %s) { -- 2.34.1