diff options
author | Dylan McKay <dylanmckay34@gmail.com> | 2017-02-05 10:42:49 +0000 |
---|---|---|
committer | Dylan McKay <dylanmckay34@gmail.com> | 2017-02-05 10:42:49 +0000 |
commit | b78f36657e3c91f0779efaa36817257fae26af0f (patch) | |
tree | cef34ba8b9f0c10bed6230d69438511ba6692687 | |
parent | c0fb36f4429f3b9971e87edd7d0dfedb01f4c1a6 (diff) | |
download | bcm5719-llvm-b78f36657e3c91f0779efaa36817257fae26af0f.tar.gz bcm5719-llvm-b78f36657e3c91f0779efaa36817257fae26af0f.zip |
[AVR] Fix a bug where asm operands are printed twice
We would unconditionally call printOperand, even if PrintAsmOperand
already printed the immediate.
llvm-svn: 294121
-rw-r--r-- | llvm/lib/Target/AVR/AVRAsmPrinter.cpp | 3 | ||||
-rw-r--r-- | llvm/test/CodeGen/AVR/no-print-operand-twice.ll | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Target/AVR/AVRAsmPrinter.cpp b/llvm/lib/Target/AVR/AVRAsmPrinter.cpp index 4afdd3a0ec0..50bb50b44f2 100644 --- a/llvm/lib/Target/AVR/AVRAsmPrinter.cpp +++ b/llvm/lib/Target/AVR/AVRAsmPrinter.cpp @@ -130,7 +130,8 @@ bool AVRAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum, } } - printOperand(MI, OpNum, O); + if (Error) + printOperand(MI, OpNum, O); return false; } diff --git a/llvm/test/CodeGen/AVR/no-print-operand-twice.ll b/llvm/test/CodeGen/AVR/no-print-operand-twice.ll new file mode 100644 index 00000000000..8326507768b --- /dev/null +++ b/llvm/test/CodeGen/AVR/no-print-operand-twice.ll @@ -0,0 +1,8 @@ +; RUN: llc -no-integrated-as -march=avr < %s | FileCheck %s + +define void @test() { +entry: +; CHECK: /* result: 68719476738 */ + tail call void asm sideeffect "/* result: ${0:c} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 ) + ret void +} |