diff options
| author | Akira Hatanaka <ahatanaka@apple.com> | 2015-11-10 00:10:41 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanaka@apple.com> | 2015-11-10 00:10:41 +0000 |
| commit | 3bfc3e2d2a8a57faf0946a2babc5320452546a14 (patch) | |
| tree | c90aa2947d573b47ce2e9c93c3b45a44b3ff9098 /llvm | |
| parent | 8ab7e8e1b551313cfe69e810090a202af4a2ae7b (diff) | |
| download | bcm5719-llvm-3bfc3e2d2a8a57faf0946a2babc5320452546a14.tar.gz bcm5719-llvm-3bfc3e2d2a8a57faf0946a2babc5320452546a14.zip | |
[ARM] Handle t2ADDri in ARMAsmPrinter::EmitUnwindingInstruction.
This fixes a bug in ARMAsmPrinter::EmitUnwindingInstruction where
llvm_unreachable was reached because t2ADDri wasn't handled.
Test case provided by Tim Northover.
rdar://problem/23270609
http://reviews.llvm.org/D14518
llvm-svn: 252557
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMAsmPrinter.cpp | 1 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Thumb2/emit-unwinding.ll | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp index ef56a0114f5..67ebfa2b581 100644 --- a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp @@ -1125,6 +1125,7 @@ void ARMAsmPrinter::EmitUnwindingInstruction(const MachineInstr *MI) { Offset = 0; break; case ARM::ADDri: + case ARM::t2ADDri: Offset = -MI->getOperand(2).getImm(); break; case ARM::SUBri: diff --git a/llvm/test/CodeGen/Thumb2/emit-unwinding.ll b/llvm/test/CodeGen/Thumb2/emit-unwinding.ll new file mode 100644 index 00000000000..1f1ea1b48af --- /dev/null +++ b/llvm/test/CodeGen/Thumb2/emit-unwinding.ll @@ -0,0 +1,11 @@ +; RUN: llc -mtriple thumbv7em-apple-unknown-eabi-macho %s -o - -O0 | FileCheck %s + +; CHECK: add.w r11, sp, #{{[1-9]+}} + +define void @foo1() { + call void asm sideeffect "", "~{r4}"() + call void @foo2() + ret void +} + +declare void @foo2() |

