1
1
RUN: llvm-readobj -stackmap %p/Inputs/stackmap-test.macho-x86-64 | FileCheck %s
2
2
3
3
; Note: the macho object file in this test was generated in the following way:
4
- ; llc -mtriple=x86_64-apple-darwin %p/test/CodeGen/X86/stackmap.ll -o stackmap.s
5
- ; clang -c stackmap.s -o %p/test/Object/Inputs/stackmap-test.macho-x86-64
4
+ ; llc -mtriple=x86_64-apple-darwin test/CodeGen/X86/stackmap.ll -o test/Object/Inputs/stackmap-test.macho-x86-64 -filetype=obj
6
5
7
- CHECK: LLVM StackMap Version: 2
6
+ CHECK: LLVM StackMap Version: 3
8
7
CHECK-NEXT: Num Functions: 16
9
8
CHECK-NEXT: Function address: 0, stack size: 8, callsite record count: 1
10
9
CHECK-NEXT: Function address: 0, stack size: 24, callsite record count: 1
@@ -13,8 +12,8 @@ CHECK-NEXT: Function address: 0, stack size: 8, callsite record count: 1
13
12
CHECK-NEXT: Function address: 0, stack size: 8, callsite record count: 1
14
13
CHECK-NEXT: Function address: 0, stack size: 8, callsite record count: 1
15
14
CHECK-NEXT: Function address: 0, stack size: 8, callsite record count: 1
16
- CHECK-NEXT: Function address: 0, stack size: 56 , callsite record count: 1
17
- CHECK-NEXT: Function address: 0, stack size: 56 , callsite record count: 1
15
+ CHECK-NEXT: Function address: 0, stack size: 8 , callsite record count: 1
16
+ CHECK-NEXT: Function address: 0, stack size: 8 , callsite record count: 1
18
17
CHECK-NEXT: Function address: 0, stack size: 56, callsite record count: 1
19
18
CHECK-NEXT: Function address: 0, stack size: 56, callsite record count: 1
20
19
CHECK-NEXT: Function address: 0, stack size: 8, callsite record count: 1
@@ -79,16 +78,16 @@ CHECK-NEXT: #1: Register R#2, size: 8
79
78
CHECK-NEXT: #2: Register R#8, size: 8
80
79
CHECK-NEXT: 2 live-outs: [ R#0 (8-bytes) R#7 (8-bytes) ]
81
80
82
- CHECK: Record ID: 11, instruction offset: 42
81
+ CHECK: Record ID: 11, instruction offset: 4
83
82
CHECK-NEXT: 17 locations:
84
83
CHECK-NEXT: #1: Register R#9, size: 8
85
- CHECK-NEXT: #2: Register R#14 , size: 8
86
- CHECK-NEXT: #3: Register R#10 , size: 8
87
- CHECK-NEXT: #4: Register R#3 , size: 8
88
- CHECK-NEXT: #5: Register R#0 , size: 8
89
- CHECK-NEXT: #6: Register R#13 , size: 8
90
- CHECK-NEXT: #7: Register R#12 , size: 8
91
- CHECK-NEXT: #8: Register R#15 , size: 8
84
+ CHECK-NEXT: #2: Indirect [R#6 + 16] , size: 8
85
+ CHECK-NEXT: #3: Indirect [R#6 + 24] , size: 8
86
+ CHECK-NEXT: #4: Indirect [R#6 + 32] , size: 8
87
+ CHECK-NEXT: #5: Indirect [R#6 + 40] , size: 8
88
+ CHECK-NEXT: #6: Indirect [R#6 + 48] , size: 8
89
+ CHECK-NEXT: #7: Indirect [R#6 + 56] , size: 8
90
+ CHECK-NEXT: #8: Indirect [R#6 + 64] , size: 8
92
91
CHECK-NEXT: #9: Indirect [R#6 + 72], size: 8
93
92
CHECK-NEXT: #10: Indirect [R#6 + 80], size: 8
94
93
CHECK-NEXT: #11: Indirect [R#6 + 88], size: 8
@@ -100,21 +99,21 @@ CHECK-NEXT: #16: Indirect [R#6 + 128], size: 8
100
99
CHECK-NEXT: #17: Indirect [R#6 + 136], size: 8
101
100
CHECK-NEXT: 1 live-outs: [ R#7 (8-bytes) ]
102
101
103
- CHECK: Record ID: 12, instruction offset: 62
102
+ CHECK: Record ID: 12, instruction offset: 4
104
103
CHECK-NEXT: 17 locations:
105
104
CHECK-NEXT: #1: Register R#0, size: 8
106
- CHECK-NEXT: #2: Register R#14 , size: 8
107
- CHECK-NEXT: #3: Register R#10 , size: 8
108
- CHECK-NEXT: #4: Register R#9 , size: 8
109
- CHECK-NEXT: #5: Register R#8 , size: 8
110
- CHECK-NEXT: #6: Register R#4 , size: 8
111
- CHECK-NEXT: #7: Register R#1 , size: 8
112
- CHECK-NEXT: #8: Register R#2 , size: 8
113
- CHECK-NEXT: #9: Register R#5 , size: 8
114
- CHECK-NEXT: #10: Register R#3 , size: 8
115
- CHECK-NEXT: #11: Register R#13 , size: 8
116
- CHECK-NEXT: #12: Register R#12 , size: 8
117
- CHECK-NEXT: #13: Register R#15 , size: 8
105
+ CHECK-NEXT: #2: Indirect [R#6 + 16] , size: 8
106
+ CHECK-NEXT: #3: Indirect [R#6 + 24] , size: 8
107
+ CHECK-NEXT: #4: Indirect [R#6 + 32] , size: 8
108
+ CHECK-NEXT: #5: Indirect [R#6 + 40] , size: 8
109
+ CHECK-NEXT: #6: Indirect [R#6 + 48] , size: 8
110
+ CHECK-NEXT: #7: Indirect [R#6 + 56] , size: 8
111
+ CHECK-NEXT: #8: Indirect [R#6 + 64] , size: 8
112
+ CHECK-NEXT: #9: Indirect [R#6 + 72] , size: 8
113
+ CHECK-NEXT: #10: Indirect [R#6 + 80] , size: 8
114
+ CHECK-NEXT: #11: Indirect [R#6 + 88] , size: 8
115
+ CHECK-NEXT: #12: Indirect [R#6 + 96] , size: 8
116
+ CHECK-NEXT: #13: Indirect [R#6 + 104] , size: 8
118
117
CHECK-NEXT: #14: Indirect [R#6 + 112], size: 8
119
118
CHECK-NEXT: #15: Indirect [R#6 + 120], size: 8
120
119
CHECK-NEXT: #16: Indirect [R#6 + 128], size: 8
@@ -137,15 +136,15 @@ CHECK-NEXT: 1 locations:
137
136
CHECK-NEXT: #1: Constant 33, size: 8
138
137
CHECK-NEXT: 0 live-outs: [ ]
139
138
140
- CHECK: Record ID: 16, instruction offset: 32
139
+ CHECK: Record ID: 16, instruction offset: 16
141
140
CHECK-NEXT: 1 locations:
142
- CHECK-NEXT: #1: Direct R#6 + -32 , size: 8
141
+ CHECK-NEXT: #1: Direct R#6 + -40 , size: 8
143
142
CHECK-NEXT: 0 live-outs: [ ]
144
143
145
- CHECK: Record ID: 17, instruction offset: 32
144
+ CHECK: Record ID: 17, instruction offset: 16
146
145
CHECK-NEXT: 2 locations:
147
146
CHECK-NEXT: #1: Direct R#6 + -8, size: 8
148
- CHECK-NEXT: #2: Direct R#6 + -40 , size: 8
147
+ CHECK-NEXT: #2: Direct R#6 + -16 , size: 8
149
148
CHECK-NEXT: 1 live-outs: [ R#7 (8-bytes) ]
150
149
151
150
CHECK: Record ID: 4294967295, instruction offset: 4
@@ -169,6 +168,6 @@ CHECK-NEXT: 1 locations:
169
168
CHECK-NEXT: #1: Indirect [R#6 + -44], size: 4
170
169
CHECK-NEXT: 0 live-outs: [ ]
171
170
172
- CHECK: Record ID: 0, instruction offset: 26
171
+ CHECK: Record ID: 0, instruction offset: 25
173
172
CHECK-NEXT: 0 locations:
174
173
CHECK-NEXT: 0 live-outs: [ ]
0 commit comments