• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
10define 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
44default:
45  br label %exit
46bb0:
47  br label %exit
48bb1:
49  br label %exit
50bb2:
51  br label %exit
52bb3:
53  br label %exit
54bb4:
55  br label %exit
56bb5:
57  br label %exit
58bb6:
59  br label %exit
60bb7:
61  br label %exit
62bb8:
63  br label %exit
64bb9:
65  br label %exit
66bb10:
67  br label %exit
68bb11:
69  br label %exit
70bb12:
71  br label %exit
72bb13:
73  br label %exit
74bb14:
75  br label %exit
76bb15:
77  br label %exit
78bb16:
79  br label %exit
80bb17:
81  br label %exit
82bb18:
83  br label %exit
84bb19:
85  br label %exit
86bb20:
87  br label %exit
88bb21:
89  br label %exit
90bb22:
91  br label %exit
92bb23:
93  br label %exit
94bb24:
95  br label %exit
96bb25:
97  br label %exit
98bb26:
99  br label %exit
100bb27:
101  br label %exit
102bb28:
103  br label %exit
104
105
106exit:
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
177