[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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252557 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Akira Hatanaka 2015-11-10 00:10:41 +00:00
parent 5ca8076fcc
commit 67f0f878cd
2 changed files with 12 additions and 0 deletions

View File

@ -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:

View File

@ -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()