1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

[ARM][Thumb][FIX] Add unwinding information to t4

Summary:
Add missing part of patch D71361. Now that the stack-frame
can be operated using a addw/subw instruction, they should
appear in the unwinding list.

Reviewers: dmgreen, efriedma

Reviewed By: dmgreen

Subscribers: kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72000
This commit is contained in:
Diogo Sampaio 2019-12-30 15:43:32 +00:00
parent 1c648ca267
commit 9d97314f4a
2 changed files with 17 additions and 0 deletions

View File

@ -1170,10 +1170,12 @@ void ARMAsmPrinter::EmitUnwindingInstruction(const MachineInstr *MI) {
break;
case ARM::ADDri:
case ARM::t2ADDri:
case ARM::t2ADDri12:
Offset = -MI->getOperand(2).getImm();
break;
case ARM::SUBri:
case ARM::t2SUBri:
case ARM::t2SUBri12:
Offset = MI->getOperand(2).getImm();
break;
case ARM::tSUBspi:

View File

@ -9,3 +9,18 @@ define void @foo1() {
}
declare void @foo2()
; CHECK: _bar:
; CHECK-NEXT: .cfi_startproc
; CHECK-NEXT: @ %bb.0:
; CHECK-NEXT: subw sp, sp, #3800
; CHECK-NEXT: .cfi_def_cfa_offset 3800
; CHECK-NEXT: addw sp, sp, #3800
; CHECK-NEXT: bx lr
; CHECK-NEXT: .cfi_endproc
define void @bar() {
%a1 = alloca [3800 x i8], align 4
%p = getelementptr inbounds [3800 x i8], [3800 x i8]* %a1, i32 0, i32 0
ret void
}