Added Mapping Symbols for ARM ELF
[oota-llvm.git] / test / MC / ARM / data-in-code.ll
1 ;; RUN: llc -O0 -mtriple=armv7-linux-gnueabi -filetype=obj %s -o - | \
2 ;; RUN:   elf-dump | FileCheck -check-prefix=ARM %s
3
4 ;; RUN: llc -O0 -mtriple=thumbv7-linux-gnueabi -filetype=obj %s -o - | \
5 ;; RUN:   elf-dump --dump-section-data | FileCheck -check-prefix=TMB %s
6
7 ;; Ensure that if a jump table is generated that it has Mapping Symbols
8 ;; marking the data-in-code region.
9
10 define void @foo(i32* %ptr) nounwind ssp {
11   %tmp = load i32* %ptr, align 4
12   switch i32 %tmp, label %default [
13     i32 11, label %bb0
14     i32 10, label %bb1
15     i32 8, label %bb2
16     i32 4, label %bb3
17     i32 2, label %bb4
18     i32 6, label %bb5
19     i32 9, label %bb6
20     i32 15, label %bb7
21     i32 1, label %bb8
22     i32 3, label %bb9
23     i32 5, label %bb10
24     i32 30, label %bb11
25     i32 31, label %bb12
26     i32 13, label %bb13
27     i32 14, label %bb14
28     i32 20, label %bb15
29     i32 19, label %bb16
30     i32 17, label %bb17
31     i32 18, label %bb18
32     i32 21, label %bb19
33     i32 22, label %bb20
34     i32 16, label %bb21
35     i32 24, label %bb22
36     i32 25, label %bb23
37     i32 26, label %bb24
38     i32 27, label %bb25
39     i32 28, label %bb26
40     i32 23, label %bb27
41     i32 12, label %bb28
42   ]
43
44 default:
45   br label %exit
46 bb0:
47   br label %exit
48 bb1:
49   br label %exit
50 bb2:
51   br label %exit
52 bb3:
53   br label %exit
54 bb4:
55   br label %exit
56 bb5:
57   br label %exit
58 bb6:
59   br label %exit
60 bb7:
61   br label %exit
62 bb8:
63   br label %exit
64 bb9:
65   br label %exit
66 bb10:
67   br label %exit
68 bb11:
69   br label %exit
70 bb12:
71   br label %exit
72 bb13:
73   br label %exit
74 bb14:
75   br label %exit
76 bb15:
77   br label %exit
78 bb16:
79   br label %exit
80 bb17:
81   br label %exit
82 bb18:
83   br label %exit
84 bb19:
85   br label %exit
86 bb20:
87   br label %exit
88 bb21:
89   br label %exit
90 bb22:
91   br label %exit
92 bb23:
93   br label %exit
94 bb24:
95   br label %exit
96 bb25:
97   br label %exit
98 bb26:
99   br label %exit
100 bb27:
101   br label %exit
102 bb28:
103   br label %exit
104
105
106 exit:
107
108   ret void
109 }
110
111 ;; ARM:         # Symbol 2
112 ;; ARM-NEXT:    $a
113 ;; ARM-NEXT:   'st_value', 0x00000000
114 ;; ARM-NEXT:   'st_size', 0x00000000
115 ;; ARM-NEXT:   'st_bind', 0x0
116 ;; ARM-NEXT:   'st_type', 0x0
117 ;; ARM-NEXT:   'st_other'
118 ;; ARM-NEXT:   'st_shndx', [[MIXED_SECT:0x[0-9a-f]+]]
119
120 ;; ARM:         # Symbol 3
121 ;; ARM-NEXT:    $a
122 ;; ARM-NEXT:   'st_value', 0x000000ac
123 ;; ARM-NEXT:   'st_size', 0x00000000
124 ;; ARM-NEXT:   'st_bind', 0x0
125 ;; ARM-NEXT:   'st_type', 0x0
126 ;; ARM-NEXT:   'st_other'
127 ;; ARM-NEXT:   'st_shndx', [[MIXED_SECT]]
128
129 ;; ARM:         # Symbol 4
130 ;; ARM-NEXT:    $d
131 ;; ARM-NEXT:    'st_value', 0x00000000
132 ;; ARM-NEXT:    'st_size', 0x00000000
133 ;; ARM-NEXT:    'st_bind', 0x0
134 ;; ARM-NEXT:    'st_type', 0x0
135
136 ;; ARM:         # Symbol 5
137 ;; ARM-NEXT:    $d
138 ;; ARM-NEXT:   'st_value', 0x00000030
139 ;; ARM-NEXT:   'st_size', 0x00000000
140 ;; ARM-NEXT:   'st_bind', 0x0
141 ;; ARM-NEXT:   'st_type', 0x0
142 ;; ARM-NEXT:   'st_other'
143 ;; ARM-NEXT:   'st_shndx', [[MIXED_SECT]]
144
145 ;; ARM-NOT:     ${{[atd]}}
146
147 ;; TMB:         # Symbol 3
148 ;; TMB-NEXT:    $d
149 ;; TMB-NEXT:   'st_value', 0x00000016
150 ;; TMB-NEXT:   'st_size', 0x00000000
151 ;; TMB-NEXT:   'st_bind', 0x0
152 ;; TMB-NEXT:   'st_type', 0x0
153 ;; TMB-NEXT:   'st_other'
154 ;; TMB-NEXT:   'st_shndx', [[MIXED_SECT:0x[0-9a-f]+]]
155
156 ;; TMB:         # Symbol 4
157 ;; TMB-NEXT:    $t
158 ;; TMB-NEXT:   'st_value', 0x00000000
159 ;; TMB-NEXT:   'st_size', 0x00000000
160 ;; TMB-NEXT:   'st_bind', 0x0
161 ;; TMB-NEXT:   'st_type', 0x0
162 ;; TMB-NEXT:   'st_other'
163 ;; TMB-NEXT:   'st_shndx', [[MIXED_SECT]]
164
165 ;; TMB:         # Symbol 5
166 ;; TMB-NEXT:    $t
167 ;; TMB-NEXT:   'st_value', 0x00000036
168 ;; TMB-NEXT:   'st_size', 0x00000000
169 ;; TMB-NEXT:   'st_bind', 0x0
170 ;; TMB-NEXT:   'st_type', 0x0
171 ;; TMB-NEXT:   'st_other'
172 ;; TMB-NEXT:   'st_shndx', [[MIXED_SECT]]
173
174
175 ;; TMB-NOT:     ${{[atd]}}
176