Logan Chien | 4ea23b5 | 2013-05-10 16:17:24 +0000 | [diff] [blame] | 1 | @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \ |
| 2 | @ RUN: | llvm-readobj -s -sd -sr | FileCheck %s |
| 3 | |
| 4 | @ Check the .handlerdata directive (without .personality directive) |
| 5 | |
| 6 | .syntax unified |
| 7 | |
| 8 | @------------------------------------------------------------------------------- |
| 9 | @ TEST1 |
| 10 | @------------------------------------------------------------------------------- |
| 11 | .section .TEST1 |
| 12 | .globl func1 |
| 13 | .align 2 |
| 14 | .type func1,%function |
| 15 | .fnstart |
| 16 | func1: |
| 17 | bx lr |
| 18 | .handlerdata |
| 19 | .fnend |
| 20 | |
| 21 | |
| 22 | @ CHECK:Section { |
| 23 | @ CHECK: Name: .TEST1 |
| 24 | @ CHECK: SectionData ( |
| 25 | @ CHECK: 0000: 1EFF2FE1 |../.| |
| 26 | @ CHECK: ) |
| 27 | @ CHECK:} |
| 28 | |
| 29 | @ CHECK:Section { |
| 30 | @ CHECK: Name: .ARM.extab.TEST1 |
| 31 | @ CHECK: SectionData ( |
| 32 | @ CHECK: 0000: B0B0B080 |....| |
| 33 | @ CHECK: ) |
| 34 | @ CHECK:} |
| 35 | |
| 36 | @ CHECK:Section { |
| 37 | @ CHECK: Name: .ARM.exidx.TEST1 |
Rafael Espindola | 4f60a38 | 2013-05-30 03:05:14 +0000 | [diff] [blame] | 38 | @ CHECK: SectionData ( |
| 39 | @ CHECK: 0000: 00000000 00000000 |........| |
| 40 | @ CHECK: ) |
| 41 | @ CHECK:} |
Logan Chien | 4ea23b5 | 2013-05-10 16:17:24 +0000 | [diff] [blame] | 42 | @------------------------------------------------------------------------------- |
| 43 | @ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the |
| 44 | @ linker can keep __aeabi_unwind_cpp_pr0. |
| 45 | @------------------------------------------------------------------------------- |
| 46 | @ CHECK: Relocations [ |
| 47 | @ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0 |
| 48 | @ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0 |
| 49 | @ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0 |
| 50 | @ CHECK: ] |
Logan Chien | 4ea23b5 | 2013-05-10 16:17:24 +0000 | [diff] [blame] | 51 | |
| 52 | |
| 53 | |
| 54 | @------------------------------------------------------------------------------- |
| 55 | @ TEST2 |
| 56 | @------------------------------------------------------------------------------- |
| 57 | .section .TEST2 |
| 58 | .globl func2 |
| 59 | .align 2 |
| 60 | .type func2,%function |
| 61 | .fnstart |
| 62 | func2: |
| 63 | @------------------------------------------------------------------------------- |
| 64 | @ Use a lot of unwind opcdes to get __aeabi_unwind_cpp_pr1. |
| 65 | @------------------------------------------------------------------------------- |
| 66 | .save {r4, r5, r6, r7, r8, r9, r10, r11, r12} |
| 67 | push {r4, r5, r6, r7, r8, r9, r10, r11, r12} |
| 68 | pop {r4, r5, r6, r7, r8, r9, r10, r11, r12} |
| 69 | .pad #0x240 |
| 70 | sub sp, sp, #0x240 |
| 71 | add sp, sp, #0x240 |
| 72 | bx lr |
| 73 | .handlerdata |
| 74 | .fnend |
| 75 | |
| 76 | |
| 77 | |
| 78 | @ CHECK:Section { |
| 79 | @ CHECK: Name: .TEST2 |
| 80 | @ CHECK: SectionData ( |
| 81 | @ CHECK: 0000: F01F2DE9 F01FBDE8 09DD4DE2 09DD8DE2 |..-.......M.....| |
| 82 | @ CHECK: 0010: 1EFF2FE1 |../.| |
| 83 | @ CHECK: ) |
| 84 | @ CHECK:} |
| 85 | |
| 86 | @ CHECK:Section { |
| 87 | @ CHECK: Name: .ARM.extab.TEST2 |
| 88 | @ CHECK: SectionData ( |
| 89 | @ CHECK: 0000: 0FB20181 B0B0FF81 |........| |
| 90 | @ CHECK: ) |
| 91 | @ CHECK:} |
| 92 | |
| 93 | @ CHECK:Section { |
| 94 | @ CHECK: Name: .ARM.exidx.TEST2 |
Rafael Espindola | 4f60a38 | 2013-05-30 03:05:14 +0000 | [diff] [blame] | 95 | @ CHECK: SectionData ( |
| 96 | @ CHECK: 0000: 00000000 00000000 |........| |
| 97 | @ CHECK: ) |
| 98 | @ CHECK:} |
Logan Chien | 4ea23b5 | 2013-05-10 16:17:24 +0000 | [diff] [blame] | 99 | @------------------------------------------------------------------------------- |
| 100 | @ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the |
| 101 | @ linker can keep __aeabi_unwind_cpp_pr0. |
| 102 | @------------------------------------------------------------------------------- |
| 103 | @ CHECK: Relocations [ |
| 104 | @ CHECK: 0x0 R_ARM_PREL31 .TEST2 0x0 |
| 105 | @ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0 |
| 106 | @ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0 |
| 107 | @ CHECK: ] |