• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1;; RUN: llc -verify-machineinstrs \
2;; RUN:   -mtriple=armv7-linux-gnueabi -filetype=obj %s -o - | \
3;; RUN:   llvm-readobj -t | FileCheck -check-prefix=ARM %s
4
5;; RUN: llc -verify-machineinstrs \
6;; RUN:   -mtriple=thumbv7-linux-gnueabi -filetype=obj %s -o - | \
7;; RUN:   llvm-readobj -t | FileCheck -check-prefix=TMB %s
8
9;; Ensure that if a jump table is generated that it has Mapping Symbols
10;; marking the data-in-code region.
11
12define void @foo(i32* %ptr) nounwind ssp {
13  %tmp = load i32, i32* %ptr, align 4
14  switch i32 %tmp, label %exit [
15    i32 0, label %bb0
16    i32 1, label %bb1
17    i32 2, label %bb2
18    i32 3, label %bb3
19  ]
20bb0:
21  store i32 0, i32* %ptr, align 4
22  br label %exit
23bb1:
24  store i32 1, i32* %ptr, align 4
25  br label %exit
26bb2:
27  store i32 2, i32* %ptr, align 4
28  br label %exit
29bb3:
30  store i32 3, i32* %ptr, align 4
31  br label %exit
32exit:
33  ret void
34}
35
36;; ARM:        Symbol {
37;; ARM:          Name: $a
38;; ARM-NEXT:     Value: 0x0
39;; ARM-NEXT:     Size: 0
40;; ARM-NEXT:     Binding: Local
41;; ARM-NEXT:     Type: None
42;; ARM-NEXT:     Other:
43;; ARM-NEXT:     Section: [[MIXED_SECT:[^ ]+]]
44
45;; ARM:        Symbol {
46;; ARM:          Name: $a
47;; ARM-NEXT:     Value: 0x{{[0-9A-F]+}}
48;; ARM-NEXT:     Size: 0
49;; ARM-NEXT:     Binding: Local
50;; ARM-NEXT:     Type: None
51;; ARM-NEXT:     Other:
52;; ARM-NEXT:     Section: [[MIXED_SECT]]
53
54;; ARM:        Symbol {
55;; ARM:          Name: $d
56;; ARM-NEXT:     Value: 0x{{[0-9A-F]+}}
57;; ARM-NEXT:     Size: 0
58;; ARM-NEXT:     Binding: Local
59;; ARM-NEXT:     Type: None
60;; ARM-NEXT:     Other:
61;; ARM-NEXT:     Section: [[MIXED_SECT]]
62
63;; ARM:        Symbol {
64;; ARM:          Name: $d
65;; ARM-NEXT:     Value: 0x0
66;; ARM-NEXT:     Size: 0
67;; ARM-NEXT:     Binding: Local (0x0)
68;; ARM-NEXT:     Type: None (0x0)
69;; ARM-NEXT:     Other: 0
70;; ARM-NEXT:     Section: .ARM.exidx
71;; ARM-NEXT:   }
72
73;; ARM:        Symbol {
74;; ARM:          Name: $d
75;; ARM-NEXT:     Value: 0
76;; ARM-NEXT:     Size: 0
77;; ARM-NEXT:     Binding: Local
78;; ARM-NEXT:     Type: None
79
80;; ARM-NOT:     ${{[atd]}}
81
82;; TMB:        Symbol {
83;; TMB:          Name: $d.1
84;; TMB-NEXT:     Value: 0x{{[0-9A-F]+}}
85;; TMB-NEXT:     Size: 0
86;; TMB-NEXT:     Binding: Local
87;; TMB-NEXT:     Type: None
88;; TMB-NEXT:     Other:
89;; TMB-NEXT:     Section: [[MIXED_SECT:[^ ]+]]
90
91;; TMB:        Symbol {
92;; TMB:          Name: $t
93;; TMB-NEXT:     Value: 0x0
94;; TMB-NEXT:     Size: 0
95;; TMB-NEXT:     Binding: Local
96;; TMB-NEXT:     Type: None
97;; TMB-NEXT:     Other:
98;; TMB-NEXT:     Section: [[MIXED_SECT]]
99
100;; TMB:        Symbol {
101;; TMB:          Name: $t
102;; TMB-NEXT:     Value: 0x{{[0-9A-F]+}}
103;; TMB-NEXT:     Size: 0
104;; TMB-NEXT:     Binding: Local
105;; TMB-NEXT:     Type: None
106;; TMB-NEXT:     Other:
107;; TMB-NEXT:     Section: [[MIXED_SECT]]
108
109
110;; TMB-NOT:     ${{[atd]}}
111
112