[ARM]: Extend -mfpu options for half-precision and vfpv3xd
[oota-llvm.git] / test / MC / ARM / eh-directive-personality.s
1 @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2 @ RUN:   | llvm-readobj -s -sd -sr > %t
3 @ RUN: FileCheck %s < %t
4 @ RUN: FileCheck --check-prefix=RELOC %s < %t
5
6 @ Check the .personality directive.
7
8         .syntax unified
9
10 @-------------------------------------------------------------------------------
11 @ TEST1
12 @-------------------------------------------------------------------------------
13         .section        .TEST1
14         .globl  func1
15         .align  2
16         .type   func1,%function
17         .fnstart
18 func1:
19         bx      lr
20         .personality __gxx_personality_v0
21         .handlerdata
22         .fnend
23
24
25 @ CHECK: Section {
26 @ CHECK:   Name: .TEST1
27 @ CHECK:   SectionData (
28 @ CHECK:     0000: 1EFF2FE1                             |../.|
29 @ CHECK:   )
30 @ CHECK: }
31 @ CHECK: Section {
32 @ CHECK:   Name: .ARM.extab.TEST1
33 @ CHECK:   SectionData (
34 @ CHECK:     0000: 00000000 B0B0B000                    |........|
35 @ CHECK:   )
36 @ CHECK: }
37
38 @ RELOC: Section {
39 @ RELOC:   Name: .rel.ARM.extab.TEST1
40 @ RELOC:   Relocations [
41 @ RELOC:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
42 @ RELOC:   ]
43 @ RELOC: }
44
45 @ CHECK: Section {
46 @ CHECK:   Name: .ARM.exidx.TEST1
47 @ CHECK:   SectionData (
48 @ CHECK:     0000: 00000000 00000000                    |........|
49 @ CHECK:   )
50 @ CHECK: }
51
52 @ RELOC: Section {
53 @ RELOC:   Name: .rel.ARM.exidx.TEST1
54 @ RELOC:   Relocations [
55 @ RELOC:     0x0 R_ARM_PREL31 .TEST1 0x0
56 @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
57 @ RELOC:   ]
58 @ RELOC: }
59
60
61 @-------------------------------------------------------------------------------
62 @ TEST2
63 @-------------------------------------------------------------------------------
64         .section        .TEST2
65         .globl  func2
66         .align  2
67         .type   func2,%function
68         .fnstart
69 func2:
70         bx      lr
71         .personality __gxx_personality_v0
72         @ The .handlerdata directive is intentionally ignored.  The .fnend              @ directive should create the EXTAB entry and flush the unwind opcodes.
73         .fnend
74
75
76 @ CHECK: Section {
77 @ CHECK:   Name: .TEST2
78 @ CHECK:   SectionData (
79 @ CHECK:     0000: 1EFF2FE1                             |../.|
80 @ CHECK:   )
81 @ CHECK: }
82 @ CHECK: Section {
83 @ CHECK:   Name: .ARM.extab.TEST2
84 @ CHECK:   SectionData (
85 @ CHECK:     0000: 00000000 B0B0B000                    |........|
86 @ CHECK:   )
87 @ CHECK: }
88
89 @ RELOC: Section {
90 @ RELOC:   Name: .rel.ARM.extab.TEST2
91 @ RELOC:   Relocations [
92 @ RELOC:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
93 @ RELOC:   ]
94 @ RELOC: }
95
96 @ CHECK: Section {
97 @ CHECK:   Name: .ARM.exidx.TEST2
98 @ CHECK:   SectionData (
99 @ CHECK:     0000: 00000000 00000000                    |........|
100 @ CHECK:   )
101 @ CHECK: }
102
103 @ RELOC: Section {
104 @ RELOC:   Name: .rel.ARM.exidx.TEST2
105 @ RELOC:   Relocations [
106 @ RELOC:     0x0 R_ARM_PREL31 .TEST2 0x0
107 @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
108 @ RELOC:   ]
109 @ RELOC: }