1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s \ 2*9880d681SAndroid Build Coastguard Worker@ RUN: | llvm-readobj -s -sd -sr > %t 3*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck %s < %t 4*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck --check-prefix=RELOC %s < %t 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker .syntax unified 7*9880d681SAndroid Build Coastguard Worker .thumb 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker .section .pr0 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker .global pr0 13*9880d681SAndroid Build Coastguard Worker .type pr0,%function 14*9880d681SAndroid Build Coastguard Worker .thumb_func 15*9880d681SAndroid Build Coastguard Workerpr0: 16*9880d681SAndroid Build Coastguard Worker .fnstart 17*9880d681SAndroid Build Coastguard Worker .personalityindex 0 18*9880d681SAndroid Build Coastguard Worker bx lr 19*9880d681SAndroid Build Coastguard Worker .fnend 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 22*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.exidx.pr0 23*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 24*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 B0B0B080 25*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 26*9880d681SAndroid Build Coastguard Worker@ CHECK: } 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker@ RELOC: Section { 29*9880d681SAndroid Build Coastguard Worker@ RELOC: Name: .rel.ARM.exidx.pr0 30*9880d681SAndroid Build Coastguard Worker@ RELOC: Relocations [ 31*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0 32*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_PREL31 .pr0 0x0 33*9880d681SAndroid Build Coastguard Worker@ RELOC: ] 34*9880d681SAndroid Build Coastguard Worker@ RELOC: } 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker .section .pr0.nontrivial 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker .global pr0_nontrivial 39*9880d681SAndroid Build Coastguard Worker .type pr0_nontrivial,%function 40*9880d681SAndroid Build Coastguard Worker .thumb_func 41*9880d681SAndroid Build Coastguard Workerpr0_nontrivial: 42*9880d681SAndroid Build Coastguard Worker .fnstart 43*9880d681SAndroid Build Coastguard Worker .personalityindex 0 44*9880d681SAndroid Build Coastguard Worker .pad #0x10 45*9880d681SAndroid Build Coastguard Worker sub sp, sp, #0x10 46*9880d681SAndroid Build Coastguard Worker add sp, sp, #0x10 47*9880d681SAndroid Build Coastguard Worker bx lr 48*9880d681SAndroid Build Coastguard Worker .fnend 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 51*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.exidx.pr0.nontrivial 52*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 53*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 B0B00380 54*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 55*9880d681SAndroid Build Coastguard Worker@ CHECK: } 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker@ RELOC: Section { 58*9880d681SAndroid Build Coastguard Worker@ RELOC: Name: .rel.ARM.exidx.pr0.nontrivial 59*9880d681SAndroid Build Coastguard Worker@ RELOC: Relocations [ 60*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0 61*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_PREL31 .pr0.nontrivial 0x0 62*9880d681SAndroid Build Coastguard Worker@ RELOC: ] 63*9880d681SAndroid Build Coastguard Worker@ RELOC: } 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker .section .pr1 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker .global pr1 68*9880d681SAndroid Build Coastguard Worker .type pr1,%function 69*9880d681SAndroid Build Coastguard Worker .thumb_func 70*9880d681SAndroid Build Coastguard Workerpr1: 71*9880d681SAndroid Build Coastguard Worker .fnstart 72*9880d681SAndroid Build Coastguard Worker .personalityindex 1 73*9880d681SAndroid Build Coastguard Worker bx lr 74*9880d681SAndroid Build Coastguard Worker .fnend 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 77*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.extab.pr1 78*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 79*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: B0B00081 00000000 80*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 81*9880d681SAndroid Build Coastguard Worker@ CHECK: } 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 84*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.exidx.pr1 85*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 86*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 00000000 87*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 88*9880d681SAndroid Build Coastguard Worker@ CHECK: } 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Worker@ RELOC: Section { 91*9880d681SAndroid Build Coastguard Worker@ RELOC: Name: .rel.ARM.exidx.pr1 92*9880d681SAndroid Build Coastguard Worker@ RELOC: Relocations [ 93*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0 94*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_PREL31 .pr1 0x0 95*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr1 0x0 96*9880d681SAndroid Build Coastguard Worker@ RELOC: ] 97*9880d681SAndroid Build Coastguard Worker@ RELOC: } 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Worker .section .pr1.nontrivial 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker .global pr1_nontrivial 102*9880d681SAndroid Build Coastguard Worker .type pr1_nontrivial,%function 103*9880d681SAndroid Build Coastguard Worker .thumb_func 104*9880d681SAndroid Build Coastguard Workerpr1_nontrivial: 105*9880d681SAndroid Build Coastguard Worker .fnstart 106*9880d681SAndroid Build Coastguard Worker .personalityindex 1 107*9880d681SAndroid Build Coastguard Worker .pad #0x10 108*9880d681SAndroid Build Coastguard Worker sub sp, sp, #0x10 109*9880d681SAndroid Build Coastguard Worker add sp, sp, #0x10 110*9880d681SAndroid Build Coastguard Worker bx lr 111*9880d681SAndroid Build Coastguard Worker .fnend 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 114*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.extab.pr1.nontrivial 115*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 116*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: B0030081 00000000 117*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 118*9880d681SAndroid Build Coastguard Worker@ CHECK: } 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 121*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.exidx.pr1.nontrivial 122*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 123*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 00000000 124*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 125*9880d681SAndroid Build Coastguard Worker@ CHECK: } 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Worker@ RELOC: Section { 128*9880d681SAndroid Build Coastguard Worker@ RELOC: Name: .rel.ARM.exidx.pr1.nontrivial 129*9880d681SAndroid Build Coastguard Worker@ RELOC: Relocations [ 130*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0 131*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_PREL31 .pr1.nontrivial 0x0 132*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr1.nontrivial 0x0 133*9880d681SAndroid Build Coastguard Worker@ RELOC: ] 134*9880d681SAndroid Build Coastguard Worker@ RELOC: } 135*9880d681SAndroid Build Coastguard Worker 136*9880d681SAndroid Build Coastguard Worker .section .pr2 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Worker .global pr2 139*9880d681SAndroid Build Coastguard Worker .type pr2,%function 140*9880d681SAndroid Build Coastguard Worker .thumb_func 141*9880d681SAndroid Build Coastguard Workerpr2: 142*9880d681SAndroid Build Coastguard Worker .fnstart 143*9880d681SAndroid Build Coastguard Worker .personalityindex 2 144*9880d681SAndroid Build Coastguard Worker bx lr 145*9880d681SAndroid Build Coastguard Worker .fnend 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 148*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.extab.pr2 149*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 150*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: B0B00082 00000000 151*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 152*9880d681SAndroid Build Coastguard Worker@ CHECK: } 153*9880d681SAndroid Build Coastguard Worker 154*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 155*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.exidx.pr2 156*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 157*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 00000000 158*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 159*9880d681SAndroid Build Coastguard Worker@ CHECK: } 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Worker@ RELOC: Section { 162*9880d681SAndroid Build Coastguard Worker@ RELOC: Name: .rel.ARM.exidx.pr2 163*9880d681SAndroid Build Coastguard Worker@ RELOC: Relocations [ 164*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0 165*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_PREL31 .pr2 0x0 166*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr2 0x0 167*9880d681SAndroid Build Coastguard Worker@ RELOC: ] 168*9880d681SAndroid Build Coastguard Worker@ RELOC: } 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Worker .section .pr2.nontrivial 171*9880d681SAndroid Build Coastguard Worker .type pr2_nontrivial,%function 172*9880d681SAndroid Build Coastguard Worker .thumb_func 173*9880d681SAndroid Build Coastguard Workerpr2_nontrivial: 174*9880d681SAndroid Build Coastguard Worker .fnstart 175*9880d681SAndroid Build Coastguard Worker .personalityindex 2 176*9880d681SAndroid Build Coastguard Worker .pad #0x10 177*9880d681SAndroid Build Coastguard Worker sub sp, sp, #0x10 178*9880d681SAndroid Build Coastguard Worker add sp, sp, #0x10 179*9880d681SAndroid Build Coastguard Worker bx lr 180*9880d681SAndroid Build Coastguard Worker .fnend 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 183*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.extab.pr2.nontrivial 184*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 185*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: B0030082 00000000 186*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 187*9880d681SAndroid Build Coastguard Worker@ CHECK: } 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 190*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: .ARM.exidx.pr2.nontrivial 191*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 192*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 00000000 193*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 194*9880d681SAndroid Build Coastguard Worker@ CHECK: } 195*9880d681SAndroid Build Coastguard Worker 196*9880d681SAndroid Build Coastguard Worker@ RELOC: Section { 197*9880d681SAndroid Build Coastguard Worker@ RELOC: Name: .rel.ARM.exidx.pr2.nontrivial 198*9880d681SAndroid Build Coastguard Worker@ RELOC: Relocations [ 199*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0 200*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x0 R_ARM_PREL31 .pr2.nontrivial 0x0 201*9880d681SAndroid Build Coastguard Worker@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr2.nontrivial 0x0 202*9880d681SAndroid Build Coastguard Worker@ RELOC: ] 203*9880d681SAndroid Build Coastguard Worker@ RELOC: } 204