169 lines · plain
1@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \2@ RUN: | llvm-readobj -S --sd - | FileCheck %s3 4@ Check for different combination of .setfp, .pad, .save and .vsave.5 6 .syntax unified7 8@-------------------------------------------------------------------------------9@ TEST1: Check .pad before .setfp directive.10@-------------------------------------------------------------------------------11 .section .TEST112 .globl func113 .type func1,%function14 .align 215 .fnstart16func1:17 .pad #1218 sub sp, sp, #1219 .setfp fp, sp, #820 add fp, sp, #821 sub sp, fp, #822 add sp, sp, #1223 bx lr24 .personality __gxx_personality_v025 .handlerdata26 .fnend27 28@ CHECK: Section {29@ CHECK: Name: .ARM.extab.TEST130@ CHECK: SectionData (31@ CHECK: 0000: 00000000 B0009B00 |........|32@ CHECK: )33@ CHECK: }34 35 36 37@-------------------------------------------------------------------------------38@ TEST2: Check .pad after .setfp directive.39@-------------------------------------------------------------------------------40 .section .TEST241 .globl func242 .type func2,%function43 .align 244 .fnstart45func2:46 .setfp fp, sp, #847 add fp, sp, #848 .pad #1249 sub sp, sp, #1250 add sp, sp, #1251 sub sp, fp, #852 bx lr53 .personality __gxx_personality_v054 .handlerdata55 .fnend56 57@ CHECK: Section {58@ CHECK: Name: .ARM.extab.TEST259@ CHECK: SectionData (60@ CHECK: 0000: 00000000 B0419B00 |.....A..|61@ CHECK: )62@ CHECK: }63 64 65 66@-------------------------------------------------------------------------------67@ TEST3: Check .setfp, .pad, .setfp directive.68@-------------------------------------------------------------------------------69 .section .TEST370 .globl func371 .type func3,%function72 .align 273 .fnstart74func3:75 @ prologue:76 .setfp fp, sp, #477 add fp, sp, #478 .pad #879 sub sp, sp, #880 .setfp fp, sp, #481 add fp, sp, #482 83 @ epilogue:84 add sp, fp, #485 bx lr86 .personality __gxx_personality_v087 .handlerdata88 .fnend89 90@ CHECK: Section {91@ CHECK: Name: .ARM.extab.TEST392@ CHECK: SectionData (93@ CHECK: 0000: 00000000 B0009B00 |........|94@ CHECK: )95@ CHECK: }96 97 98 99@-------------------------------------------------------------------------------100@ TEST4: Check ".setfp fp, sp" and ".setfp fp, fp" directive.101@-------------------------------------------------------------------------------102 .section .TEST4103 .globl func4104 .type func4,%function105 .align 2106 .fnstart107func4:108 @ prologue:109 .setfp fp, sp, #8110 add fp, sp, #8111 .setfp fp, fp, #8112 add fp, fp, #8113 114 @ epilogue:115 sub sp, fp, #16116 bx lr117 .personality __gxx_personality_v0118 .handlerdata119 .fnend120 121@ CHECK: Section {122@ CHECK: Name: .ARM.extab.TEST4123@ CHECK: SectionData (124@ CHECK: 0000: 00000000 B0439B00 |.....C..|125@ CHECK: )126@ CHECK: }127 128 129 130@-------------------------------------------------------------------------------131@ TEST5: Check .setfp, .save, .setfp directive.132@-------------------------------------------------------------------------------133 .section .TEST5134 .globl func5135 .type func5,%function136 .align 2137 .fnstart138func5:139 @ prologue:140 .setfp fp, sp, #16141 add fp, sp, #16142 .save {r4, r5, r6, r7, r8}143 push {r4, r5, r6, r7, r8}144 .pad #8145 add sp, sp, #8146 .pad #8147 sub sp, sp, #8148 .save {r9, r10}149 push {r9, r10}150 .setfp fp, sp, #24151 add fp, sp, #24152 153 @ epilogue:154 sub sp, fp, #24155 pop {r9, r10}156 add sp, sp, #16157 pop {r4, r5, r6, r7, r8}158 bx lr159 .personality __gxx_personality_v0160 .handlerdata161 .fnend162 163@ CHECK: Section {164@ CHECK: Name: .ARM.extab.TEST5165@ CHECK: SectionData (166@ CHECK: 0000: 00000000 80459B01 B0A40360 |.....E.....`|167@ CHECK: )168@ CHECK: }169