@ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s | llvm-readobj -u \ @ RUN: | FileCheck %s .syntax unified .type save,%function .thumb_func save: .fnstart .unwind_raw 4, 0xb1, 0x01 push {r0} pop {r0} bx lr .fnend .type empty,%function .thumb_func empty: .fnstart .unwind_raw 0, 0xb0 bx lr .fnend .type extended,%function .thumb_func extended: .fnstart .unwind_raw 12, 0x9b, 0x40, 0x84, 0x80, 0xb0, 0xb0 @ .save {fp, lr} stmfd sp!, {fp, lr} @ .setfp fp, sp, #4 add fp, sp, #4 @ .pad #8 sub sp, sp, #8 add sp, sp, #8 sub fp, sp, #4 ldmfd sp!, {fp, lr} bx lr .fnend .type refuse,%function .thumb_func refuse: .fnstart .unwind_raw 0, 0x80, 0x00 bx lr .fnend .type stack_adjust,%function .thumb_func stack_adjust: .fnstart .setfp fp, sp, #32 .unwind_raw 24, 0xc2 .fnend @ CHECK: UnwindInformation { @ CHECK: UnwindIndexTable { @ CHECK: SectionName: .ARM.exidx @ CHECK: Entries [ @ CHECK: Entry { @ CHECK: Model: Compact (Inline) @ CHECK: PersonalityIndex: 0 @ CHECK: Opcodes [ @ CHECK: 0xB1 0x01 ; pop {r0} @ CHECK: 0xB0 ; finish @ CHECK: ] @ CHECK: } @ CHECK: Entry { @ CHECK: Model: Compact (Inline) @ CHECK: PersonalityIndex: 0 @ CHECK: Opcodes [ @ CHECK: 0xB0 ; finish @ CHECK: 0xB0 ; finish @ CHECK: 0xB0 ; finish @ CHECK: ] @ CHECK: } @ CHECK: Entry { @ CHECK: ExceptionHandlingTable: .ARM.extab @ CHECK: Model: Compact @ CHECK: PersonalityIndex: 1 @ CHECK: Opcodes [ @ CHECK: 0x9B ; vsp = r11 @ CHECK: 0x40 ; vsp = vsp - 4 @ CHECK: 0x84 0x80 ; pop {fp, lr} @ CHECK: 0xB0 ; finish @ CHECK: 0xB0 ; finish @ CHECK: ] @ CHECK: } @ CHECK: Entry { @ CHECK: Model: Compact (Inline) @ CHECK: PersonalityIndex: 0 @ CHECK: Opcodes [ @ CHECK: 0x80 0x00 ; refuse to unwind @ CHECK: 0xB0 ; finish @ CHECK: ] @ CHECK: } @ CHECK: Entry { @ CHECK: Model: Compact (Inline) @ CHECK: PersonalityIndex: 0 @ CHECK: Opcodes [ @ CHECK: 0x9B ; vsp = r11 @ CHECK: 0x4D ; vsp = vsp - 56 @ CHECK: 0xC2 ; pop {wR10, wR11, wR12} @ CHECK: ] @ CHECK: } @ CHECK: ] @ CHECK: } @ CHECK: }