[PATCH] D56785: [MSP430] Fix absolute addressing mode printing in AsmPrinter

Anton Korobeynikov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 25 01:14:22 PST 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL352178: [MSP430] Fix absolute addressing mode printing in AsmPrinter (authored by asl, committed by ).

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D56785/new/

https://reviews.llvm.org/D56785

Files:
  llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp
  llvm/trunk/test/CodeGen/MSP430/inline-asm-absolute-addressing.ll


Index: llvm/trunk/test/CodeGen/MSP430/inline-asm-absolute-addressing.ll
===================================================================
--- llvm/trunk/test/CodeGen/MSP430/inline-asm-absolute-addressing.ll
+++ llvm/trunk/test/CodeGen/MSP430/inline-asm-absolute-addressing.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s | FileCheck %s
+
+; Check that absolute addressing mode is represented in a way
+; defined in MSP430 EABI and not as indexed addressing mode form.
+; See PR39993 for details.
+
+target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8-n8:16"
+target triple = "msp430-elf"
+
+define void @f() {
+entry:
+; CHECK: mov r1, &256
+  call void asm sideeffect "mov r1, $0", "*m"(i8* inttoptr (i16 256 to i8*))
+  ret void
+}
Index: llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp
===================================================================
--- llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp
+++ llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp
@@ -113,12 +113,12 @@
   // Print displacement first
 
   // Imm here is in fact global address - print extra modifier.
-  if (Disp.isImm() && !Base.getReg())
+  if (Disp.isImm() && Base.getReg() == MSP430::SR)
     O << '&';
   printOperand(MI, OpNum+1, O, "nohash");
 
   // Print register base field
-  if (Base.getReg()) {
+  if (Base.getReg() != MSP430::SR && Base.getReg() != MSP430::PC) {
     O << '(';
     printOperand(MI, OpNum, O);
     O << ')';


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56785.183493.patch
Type: text/x-patch
Size: 1420 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190125/0abf43bc/attachment.bin>


More information about the llvm-commits mailing list