From 6ab75b4dcbac0a2538177ed34819704f5e5373ee Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 30 May 2012 19:05:19 +0000 Subject: [PATCH] Add support for the mips inline asm 'm' output modifier. Patch by Jack Carter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157709 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Mips/MipsAsmPrinter.cpp | 5 +++++ test/CodeGen/Mips/inlineasm-operand-code.ll | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/lib/Target/Mips/MipsAsmPrinter.cpp b/lib/Target/Mips/MipsAsmPrinter.cpp index 6ed0513ac15..ed8a1871a1f 100644 --- a/lib/Target/Mips/MipsAsmPrinter.cpp +++ b/lib/Target/Mips/MipsAsmPrinter.cpp @@ -377,6 +377,11 @@ bool MipsAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum, return true; O << MO.getImm(); return false; + case 'm': // decimal const int minus 1 + if ((MO.getType()) != MachineOperand::MO_Immediate) + return true; + O << MO.getImm() - 1; + return false; } } diff --git a/test/CodeGen/Mips/inlineasm-operand-code.ll b/test/CodeGen/Mips/inlineasm-operand-code.ll index 92abf84cc7e..2dcc10def2f 100644 --- a/test/CodeGen/Mips/inlineasm-operand-code.ll +++ b/test/CodeGen/Mips/inlineasm-operand-code.ll @@ -23,5 +23,11 @@ entry: ;CHECK: #NO_APP tail call i32 asm sideeffect "addi $0,$1,${2:d}", "=r,r,I"(i32 7, i32 -3) nounwind +; m with -3 +;CHECK: #APP +;CHECK: addi ${{[0-9]+}},${{[0-9]+}},-4 +;CHECK: #NO_APP + tail call i32 asm sideeffect "addi $0,$1,${2:m}", "=r,r,I"(i32 7, i32 -3) nounwind + ret i32 0 }