1@ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s | llvm-readobj -u \ 2@ RUN: | FileCheck %s 3 4 .syntax unified 5 6 .type save,%function 7 .thumb_func 8save: 9 .fnstart 10 .unwind_raw 4, 0xb1, 0x01 11 push {r0} 12 pop {r0} 13 bx lr 14 .fnend 15 16 .type empty,%function 17 .thumb_func 18empty: 19 .fnstart 20 .unwind_raw 0, 0xb0 21 bx lr 22 .fnend 23 24 .type extended,%function 25 .thumb_func 26extended: 27 .fnstart 28 .unwind_raw 12, 0x9b, 0x40, 0x84, 0x80, 0xb0, 0xb0 29 @ .save {fp, lr} 30 stmfd sp!, {fp, lr} 31 @ .setfp fp, sp, #4 32 add fp, sp, #4 33 @ .pad #8 34 sub sp, sp, #8 35 add sp, sp, #8 36 sub fp, sp, #4 37 ldmfd sp!, {fp, lr} 38 bx lr 39 .fnend 40 41 .type refuse,%function 42 .thumb_func 43refuse: 44 .fnstart 45 .unwind_raw 0, 0x80, 0x00 46 bx lr 47 .fnend 48 49 .type stack_adjust,%function 50 .thumb_func 51stack_adjust: 52 .fnstart 53 .setfp fp, sp, #32 54 .unwind_raw 24, 0xc2 55 .fnend 56 57@ CHECK: UnwindInformation { 58@ CHECK: UnwindIndexTable { 59@ CHECK: SectionName: .ARM.exidx 60@ CHECK: Entries [ 61@ CHECK: Entry { 62@ CHECK: Model: Compact (Inline) 63@ CHECK: PersonalityIndex: 0 64@ CHECK: Opcodes [ 65@ CHECK: 0xB1 0x01 ; pop {r0} 66@ CHECK: 0xB0 ; finish 67@ CHECK: ] 68@ CHECK: } 69@ CHECK: Entry { 70@ CHECK: Model: Compact (Inline) 71@ CHECK: PersonalityIndex: 0 72@ CHECK: Opcodes [ 73@ CHECK: 0xB0 ; finish 74@ CHECK: 0xB0 ; finish 75@ CHECK: 0xB0 ; finish 76@ CHECK: ] 77@ CHECK: } 78@ CHECK: Entry { 79@ CHECK: ExceptionHandlingTable: .ARM.extab 80@ CHECK: Model: Compact 81@ CHECK: PersonalityIndex: 1 82@ CHECK: Opcodes [ 83@ CHECK: 0x9B ; vsp = r11 84@ CHECK: 0x40 ; vsp = vsp - 4 85@ CHECK: 0x84 0x80 ; pop {fp, lr} 86@ CHECK: 0xB0 ; finish 87@ CHECK: 0xB0 ; finish 88@ CHECK: ] 89@ CHECK: } 90@ CHECK: Entry { 91@ CHECK: Model: Compact (Inline) 92@ CHECK: PersonalityIndex: 0 93@ CHECK: Opcodes [ 94@ CHECK: 0x80 0x00 ; refuse to unwind 95@ CHECK: 0xB0 ; finish 96@ CHECK: ] 97@ CHECK: } 98@ CHECK: Entry { 99@ CHECK: Model: Compact (Inline) 100@ CHECK: PersonalityIndex: 0 101@ CHECK: Opcodes [ 102@ CHECK: 0x9B ; vsp = r11 103@ CHECK: 0x4D ; vsp = vsp - 56 104@ CHECK: 0xC2 ; pop {wR10, wR11, wR12} 105@ CHECK: ] 106@ CHECK: } 107@ CHECK: ] 108@ CHECK: } 109@ CHECK: } 110 111