OLD | NEW |
1 ; Test whether we don't mangle external, undefined, global names. This | 1 ; Test whether we don't mangle external, undefined, global names. This |
2 ; feature is needed for cross tests on global initializer relocations. | 2 ; feature is needed for cross tests on global initializer relocations. |
3 ; | 3 ; |
4 ; Note: This code was generated by compiling subzero/crosstest/test_global.cpp | 4 ; Note: This code was generated by compiling subzero/crosstest/test_global.cpp |
5 | 5 |
6 ; We use lc2i (rather than p2i) because PNaCl bitcode files do not | 6 ; We use lc2i (rather than p2i) because PNaCl bitcode files do not |
7 ; allow externally defined global variables. Hence, this test can only | 7 ; allow externally defined global variables. Hence, this test can only |
8 ; work if we read LLVM IR source, and convert to to ICE. | 8 ; work if we read LLVM IR source, and convert to to ICE. |
9 | 9 |
10 ; REQUIRES: allow_llvm_ir_as_input | 10 ; REQUIRES: allow_llvm_ir_as_input |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 ; CHECK: @ExternName5 = external global <{ }> <{ }>, align 4 | 73 ; CHECK: @ExternName5 = external global <{ }> <{ }>, align 4 |
74 ; CROSS: @ExternName5 = external global <{ }> <{ }>, align 4 | 74 ; CROSS: @ExternName5 = external global <{ }> <{ }>, align 4 |
75 | 75 |
76 define i32 @_Z12getNumArraysv() { | 76 define i32 @_Z12getNumArraysv() { |
77 ; CHECK: define i32 @_Z12getNumArraysv() { | 77 ; CHECK: define i32 @_Z12getNumArraysv() { |
78 ; CROSS: define i32 @_ZN8Subzero_12getNumArraysEv() { | 78 ; CROSS: define i32 @_ZN8Subzero_12getNumArraysEv() { |
79 entry: | 79 entry: |
80 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* | 80 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* |
81 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 | 81 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 |
82 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 | 82 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 |
83 %0 = load i32* %NumArraysElements.bc, align 1 | 83 %0 = load i32, i32* %NumArraysElements.bc, align 1 |
84 ret i32 %0 | 84 ret i32 %0 |
85 } | 85 } |
86 | 86 |
87 define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { | 87 define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { |
88 ; CHECK: define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { | 88 ; CHECK: define i32 @_Z8getArrayjRj(i32 %WhichArray, i32 %Len) { |
89 ; CROSS: define i32 @_ZN8Subzero_8getArrayEjRj(i32 %WhichArray, i32 %Len) { | 89 ; CROSS: define i32 @_ZN8Subzero_8getArrayEjRj(i32 %WhichArray, i32 %Len) { |
90 entry: | 90 entry: |
91 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* | 91 %NumArraysElements.bc = bitcast [4 x i8]* @NumArraysElements to i32* |
92 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 | 92 ; CHECK: %NumArraysElements.bc = bitcast i32 @NumArraysElements to i32 |
93 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 | 93 ; CROSS: %NumArraysElements.bc = bitcast i32 @Subzero_NumArraysElements to i32 |
94 %0 = load i32* %NumArraysElements.bc, align 1 | 94 %0 = load i32, i32* %NumArraysElements.bc, align 1 |
95 %cmp = icmp ugt i32 %0, %WhichArray | 95 %cmp = icmp ugt i32 %0, %WhichArray |
96 ; CHECK: %cmp = icmp ugt i32 %__3, %WhichArray | 96 ; CHECK: %cmp = icmp ugt i32 %__3, %WhichArray |
97 ; CROSS: %cmp = icmp ugt i32 %__3, %WhichArray | 97 ; CROSS: %cmp = icmp ugt i32 %__3, %WhichArray |
98 br i1 %cmp, label %if.end, label %if.then | 98 br i1 %cmp, label %if.end, label %if.then |
99 | 99 |
100 if.then: ; preds = %entry | 100 if.then: ; preds = %entry |
101 %Len.asptr = inttoptr i32 %Len to i32* | 101 %Len.asptr = inttoptr i32 %Len to i32* |
102 ; CHECK: %Len.asptr = i32 %Len | 102 ; CHECK: %Len.asptr = i32 %Len |
103 ; CROSS: %Len.asptr = i32 %Len | 103 ; CROSS: %Len.asptr = i32 %Len |
104 store i32 -1, i32* %Len.asptr, align 1 | 104 store i32 -1, i32* %Len.asptr, align 1 |
105 br label %return | 105 br label %return |
106 | 106 |
107 if.end: ; preds = %entry | 107 if.end: ; preds = %entry |
108 %gep_array = mul i32 %WhichArray, 8 | 108 %gep_array = mul i32 %WhichArray, 8 |
109 ; CHECK: %gep_array = mul i32 %WhichArray, 8 | 109 ; CHECK: %gep_array = mul i32 %WhichArray, 8 |
110 ; CROSS: %gep_array = mul i32 %WhichArray, 8 | 110 ; CROSS: %gep_array = mul i32 %WhichArray, 8 |
111 %expanded1 = ptrtoint <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4
x i8], i32, [4 x i8], i32, [4 x i8] }>* @Arrays to i32 | 111 %expanded1 = ptrtoint <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4
x i8], i32, [4 x i8], i32, [4 x i8] }>* @Arrays to i32 |
112 ; CHECK: %expanded1 = i32 @Arrays | 112 ; CHECK: %expanded1 = i32 @Arrays |
113 ; CROSS: %expanded1 = i32 @Subzero_Arrays | 113 ; CROSS: %expanded1 = i32 @Subzero_Arrays |
114 %gep = add i32 %expanded1, %gep_array | 114 %gep = add i32 %expanded1, %gep_array |
115 %gep1 = add i32 %gep, 4 | 115 %gep1 = add i32 %gep, 4 |
116 %gep1.asptr = inttoptr i32 %gep1 to i32* | 116 %gep1.asptr = inttoptr i32 %gep1 to i32* |
117 %1 = load i32* %gep1.asptr, align 1 | 117 %1 = load i32, i32* %gep1.asptr, align 1 |
118 %Len.asptr3 = inttoptr i32 %Len to i32* | 118 %Len.asptr3 = inttoptr i32 %Len to i32* |
119 ; CHECK: %Len.asptr3 = i32 %Len | 119 ; CHECK: %Len.asptr3 = i32 %Len |
120 ; CROSS: %Len.asptr3 = i32 %Len | 120 ; CROSS: %Len.asptr3 = i32 %Len |
121 store i32 %1, i32* %Len.asptr3, align 1 | 121 store i32 %1, i32* %Len.asptr3, align 1 |
122 %gep_array3 = mul i32 %WhichArray, 8 | 122 %gep_array3 = mul i32 %WhichArray, 8 |
123 ; CHECK: %gep_array3 = mul i32 %WhichArray, 8 | 123 ; CHECK: %gep_array3 = mul i32 %WhichArray, 8 |
124 ; CROSS: %gep_array3 = mul i32 %WhichArray, 8 | 124 ; CROSS: %gep_array3 = mul i32 %WhichArray, 8 |
125 %expanded2 = ptrtoint <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4
x i8], i32, [4 x i8], i32, [4 x i8] }>* @Arrays to i32 | 125 %expanded2 = ptrtoint <{ i32, [4 x i8], i32, [4 x i8], i32, [4 x i8], i32, [4
x i8], i32, [4 x i8], i32, [4 x i8] }>* @Arrays to i32 |
126 ; CHECK: %expanded2 = i32 @Arrays | 126 ; CHECK: %expanded2 = i32 @Arrays |
127 ; CROSS: %expanded2 = i32 @Subzero_Arrays | 127 ; CROSS: %expanded2 = i32 @Subzero_Arrays |
128 %gep4 = add i32 %expanded2, %gep_array3 | 128 %gep4 = add i32 %expanded2, %gep_array3 |
129 %gep4.asptr = inttoptr i32 %gep4 to i32* | 129 %gep4.asptr = inttoptr i32 %gep4 to i32* |
130 %2 = load i32* %gep4.asptr, align 1 | 130 %2 = load i32, i32* %gep4.asptr, align 1 |
131 br label %return | 131 br label %return |
132 | 132 |
133 return: ; preds = %if.end, %if.then | 133 return: ; preds = %if.end, %if.then |
134 %retval.0 = phi i32 [ 0, %if.then ], [ %2, %if.end ] | 134 %retval.0 = phi i32 [ 0, %if.then ], [ %2, %if.end ] |
135 ret i32 %retval.0 | 135 ret i32 %retval.0 |
136 } | 136 } |
137 | 137 |
138 define void @_GLOBAL__I_a() { | 138 define void @_GLOBAL__I_a() { |
139 ; CHECK: define void @_GLOBAL__I_a() { | 139 ; CHECK: define void @_GLOBAL__I_a() { |
140 ; CROSS: define void @Subzero__GLOBAL__I_a() { | 140 ; CROSS: define void @Subzero__GLOBAL__I_a() { |
(...skipping 22 matching lines...) Expand all Loading... |
163 store i32 40, i32* %gep20.asptr, align 1 | 163 store i32 40, i32* %gep20.asptr, align 1 |
164 %expanded4 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 164 %expanded4 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
165 ; CHECK: %expanded4 = i32 @_ZL8StructEx | 165 ; CHECK: %expanded4 = i32 @_ZL8StructEx |
166 ; CROSS: %expanded4 = i32 @Subzero__ZL8StructEx | 166 ; CROSS: %expanded4 = i32 @Subzero__ZL8StructEx |
167 %gep22 = add i32 %expanded4, 16 | 167 %gep22 = add i32 %expanded4, 16 |
168 %gep22.asptr = inttoptr i32 %gep22 to i32* | 168 %gep22.asptr = inttoptr i32 %gep22 to i32* |
169 store i32 50, i32* %gep22.asptr, align 1 | 169 store i32 50, i32* %gep22.asptr, align 1 |
170 %ExternName1.bc = bitcast [4 x i8]* @ExternName1 to i32* | 170 %ExternName1.bc = bitcast [4 x i8]* @ExternName1 to i32* |
171 ; CHECK: %ExternName1.bc = bitcast i32 @ExternName1 to i32 | 171 ; CHECK: %ExternName1.bc = bitcast i32 @ExternName1 to i32 |
172 ; CROSS: %ExternName1.bc = bitcast i32 @ExternName1 to i32 | 172 ; CROSS: %ExternName1.bc = bitcast i32 @ExternName1 to i32 |
173 %0 = load i32* %ExternName1.bc, align 1 | 173 %0 = load i32, i32* %ExternName1.bc, align 1 |
174 %expanded6 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 174 %expanded6 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
175 ; CHECK: %expanded6 = i32 @_ZL8StructEx | 175 ; CHECK: %expanded6 = i32 @_ZL8StructEx |
176 ; CROSS: %expanded6 = i32 @Subzero__ZL8StructEx | 176 ; CROSS: %expanded6 = i32 @Subzero__ZL8StructEx |
177 %gep24 = add i32 %expanded6, 20 | 177 %gep24 = add i32 %expanded6, 20 |
178 %gep24.asptr = inttoptr i32 %gep24 to i32* | 178 %gep24.asptr = inttoptr i32 %gep24 to i32* |
179 store i32 %0, i32* %gep24.asptr, align 1 | 179 store i32 %0, i32* %gep24.asptr, align 1 |
180 %expanded7 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 180 %expanded7 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
181 ; CHECK: %expanded7 = i32 @_ZL8StructEx | 181 ; CHECK: %expanded7 = i32 @_ZL8StructEx |
182 ; CROSS: %expanded7 = i32 @Subzero__ZL8StructEx | 182 ; CROSS: %expanded7 = i32 @Subzero__ZL8StructEx |
183 %gep26 = add i32 %expanded7, 24 | 183 %gep26 = add i32 %expanded7, 24 |
184 %gep26.asptr = inttoptr i32 %gep26 to double* | 184 %gep26.asptr = inttoptr i32 %gep26 to double* |
185 store double 5.000000e-01, double* %gep26.asptr, align 8 | 185 store double 5.000000e-01, double* %gep26.asptr, align 8 |
186 %expanded8 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 186 %expanded8 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
187 ; CHECK: %expanded8 = i32 @_ZL8StructEx | 187 ; CHECK: %expanded8 = i32 @_ZL8StructEx |
188 ; CROSS: %expanded8 = i32 @Subzero__ZL8StructEx | 188 ; CROSS: %expanded8 = i32 @Subzero__ZL8StructEx |
189 %gep28 = add i32 %expanded8, 32 | 189 %gep28 = add i32 %expanded8, 32 |
190 %gep28.asptr = inttoptr i32 %gep28 to double* | 190 %gep28.asptr = inttoptr i32 %gep28 to double* |
191 store double 1.500000e+00, double* %gep28.asptr, align 8 | 191 store double 1.500000e+00, double* %gep28.asptr, align 8 |
192 %expanded9 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 192 %expanded9 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
193 ; CHECK: %expanded9 = i32 @_ZL8StructEx | 193 ; CHECK: %expanded9 = i32 @_ZL8StructEx |
194 ; CROSS: %expanded9 = i32 @Subzero__ZL8StructEx | 194 ; CROSS: %expanded9 = i32 @Subzero__ZL8StructEx |
195 %gep30 = add i32 %expanded9, 40 | 195 %gep30 = add i32 %expanded9, 40 |
196 %gep30.asptr = inttoptr i32 %gep30 to double* | 196 %gep30.asptr = inttoptr i32 %gep30 to double* |
197 store double 2.500000e+00, double* %gep30.asptr, align 8 | 197 store double 2.500000e+00, double* %gep30.asptr, align 8 |
198 %ExternName4.bc = bitcast [4 x i8]* @ExternName4 to i32* | 198 %ExternName4.bc = bitcast [4 x i8]* @ExternName4 to i32* |
199 ; CHECK: %ExternName4.bc = bitcast i32 @ExternName4 to i32 | 199 ; CHECK: %ExternName4.bc = bitcast i32 @ExternName4 to i32 |
200 ; CROSS: %ExternName4.bc = bitcast i32 @ExternName4 to i32 | 200 ; CROSS: %ExternName4.bc = bitcast i32 @ExternName4 to i32 |
201 %1 = load i32* %ExternName4.bc, align 1 | 201 %1 = load i32, i32* %ExternName4.bc, align 1 |
202 %expanded11 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 202 %expanded11 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
203 ; CHECK: %expanded11 = i32 @_ZL8StructEx | 203 ; CHECK: %expanded11 = i32 @_ZL8StructEx |
204 ; CROSS: %expanded11 = i32 @Subzero__ZL8StructEx | 204 ; CROSS: %expanded11 = i32 @Subzero__ZL8StructEx |
205 %gep32 = add i32 %expanded11, 48 | 205 %gep32 = add i32 %expanded11, 48 |
206 %gep32.asptr = inttoptr i32 %gep32 to i32* | 206 %gep32.asptr = inttoptr i32 %gep32 to i32* |
207 store i32 %1, i32* %gep32.asptr, align 1 | 207 store i32 %1, i32* %gep32.asptr, align 1 |
208 %ExternName3.bc = bitcast [4 x i8]* @ExternName3 to i32* | 208 %ExternName3.bc = bitcast [4 x i8]* @ExternName3 to i32* |
209 ; CHECK: %ExternName3.bc = bitcast i32 @ExternName3 to i32 | 209 ; CHECK: %ExternName3.bc = bitcast i32 @ExternName3 to i32 |
210 ; CROSS: %ExternName3.bc = bitcast i32 @ExternName3 to i32 | 210 ; CROSS: %ExternName3.bc = bitcast i32 @ExternName3 to i32 |
211 %2 = load i32* %ExternName3.bc, align 1 | 211 %2 = load i32, i32* %ExternName3.bc, align 1 |
212 %expanded13 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 212 %expanded13 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
213 ; CHECK: %expanded13 = i32 @_ZL8StructEx | 213 ; CHECK: %expanded13 = i32 @_ZL8StructEx |
214 ; CROSS: %expanded13 = i32 @Subzero__ZL8StructEx | 214 ; CROSS: %expanded13 = i32 @Subzero__ZL8StructEx |
215 %gep34 = add i32 %expanded13, 52 | 215 %gep34 = add i32 %expanded13, 52 |
216 %gep34.asptr = inttoptr i32 %gep34 to i32* | 216 %gep34.asptr = inttoptr i32 %gep34 to i32* |
217 store i32 %2, i32* %gep34.asptr, align 1 | 217 store i32 %2, i32* %gep34.asptr, align 1 |
218 %expanded14 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 218 %expanded14 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
219 ; CHECK: %expanded14 = i32 @_ZL8StructEx | 219 ; CHECK: %expanded14 = i32 @_ZL8StructEx |
220 ; CROSS: %expanded14 = i32 @Subzero__ZL8StructEx | 220 ; CROSS: %expanded14 = i32 @Subzero__ZL8StructEx |
221 %gep36 = add i32 %expanded14, 56 | 221 %gep36 = add i32 %expanded14, 56 |
222 %gep36.asptr = inttoptr i32 %gep36 to i32* | 222 %gep36.asptr = inttoptr i32 %gep36 to i32* |
223 store i32 1000, i32* %gep36.asptr, align 1 | 223 store i32 1000, i32* %gep36.asptr, align 1 |
224 %expanded15 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 224 %expanded15 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
225 ; CHECK: %expanded15 = i32 @_ZL8StructEx | 225 ; CHECK: %expanded15 = i32 @_ZL8StructEx |
226 ; CROSS: %expanded15 = i32 @Subzero__ZL8StructEx | 226 ; CROSS: %expanded15 = i32 @Subzero__ZL8StructEx |
227 %gep38 = add i32 %expanded15, 60 | 227 %gep38 = add i32 %expanded15, 60 |
228 %gep38.asptr = inttoptr i32 %gep38 to i32* | 228 %gep38.asptr = inttoptr i32 %gep38 to i32* |
229 store i32 1010, i32* %gep38.asptr, align 1 | 229 store i32 1010, i32* %gep38.asptr, align 1 |
230 %expanded16 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 230 %expanded16 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
231 ; CHECK: %expanded16 = i32 @_ZL8StructEx | 231 ; CHECK: %expanded16 = i32 @_ZL8StructEx |
232 ; CROSS: %expanded16 = i32 @Subzero__ZL8StructEx | 232 ; CROSS: %expanded16 = i32 @Subzero__ZL8StructEx |
233 %gep40 = add i32 %expanded16, 64 | 233 %gep40 = add i32 %expanded16, 64 |
234 %gep40.asptr = inttoptr i32 %gep40 to i32* | 234 %gep40.asptr = inttoptr i32 %gep40 to i32* |
235 store i32 1020, i32* %gep40.asptr, align 1 | 235 store i32 1020, i32* %gep40.asptr, align 1 |
236 %ExternName2.bc = bitcast [4 x i8]* @ExternName2 to i32* | 236 %ExternName2.bc = bitcast [4 x i8]* @ExternName2 to i32* |
237 ; CHECK: %ExternName2.bc = bitcast i32 @ExternName2 to i32 | 237 ; CHECK: %ExternName2.bc = bitcast i32 @ExternName2 to i32 |
238 ; CROSS: %ExternName2.bc = bitcast i32 @ExternName2 to i32 | 238 ; CROSS: %ExternName2.bc = bitcast i32 @ExternName2 to i32 |
239 %3 = load i32* %ExternName2.bc, align 1 | 239 %3 = load i32, i32* %ExternName2.bc, align 1 |
240 %expanded18 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 240 %expanded18 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
241 ; CHECK: %expanded18 = i32 @_ZL8StructEx | 241 ; CHECK: %expanded18 = i32 @_ZL8StructEx |
242 ; CROSS: %expanded18 = i32 @Subzero__ZL8StructEx | 242 ; CROSS: %expanded18 = i32 @Subzero__ZL8StructEx |
243 %gep42 = add i32 %expanded18, 68 | 243 %gep42 = add i32 %expanded18, 68 |
244 %gep42.asptr = inttoptr i32 %gep42 to i32* | 244 %gep42.asptr = inttoptr i32 %gep42 to i32* |
245 store i32 %3, i32* %gep42.asptr, align 1 | 245 store i32 %3, i32* %gep42.asptr, align 1 |
246 %ExternName5.bc = bitcast [4 x i8]* @ExternName5 to i32* | 246 %ExternName5.bc = bitcast [4 x i8]* @ExternName5 to i32* |
247 ; CHECK: %ExternName5.bc = bitcast i32 @ExternName5 to i32 | 247 ; CHECK: %ExternName5.bc = bitcast i32 @ExternName5 to i32 |
248 ; CROSS: %ExternName5.bc = bitcast i32 @ExternName5 to i32 | 248 ; CROSS: %ExternName5.bc = bitcast i32 @ExternName5 to i32 |
249 %4 = load i32* %ExternName5.bc, align 1 | 249 %4 = load i32, i32* %ExternName5.bc, align 1 |
250 %expanded20 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 | 250 %expanded20 = ptrtoint [80 x i8]* @_ZL8StructEx to i32 |
251 ; CHECK: %expanded20 = i32 @_ZL8StructEx | 251 ; CHECK: %expanded20 = i32 @_ZL8StructEx |
252 ; CROSS: %expanded20 = i32 @Subzero__ZL8StructEx | 252 ; CROSS: %expanded20 = i32 @Subzero__ZL8StructEx |
253 %gep44 = add i32 %expanded20, 72 | 253 %gep44 = add i32 %expanded20, 72 |
254 %gep44.asptr = inttoptr i32 %gep44 to i32* | 254 %gep44.asptr = inttoptr i32 %gep44 to i32* |
255 store i32 %4, i32* %gep44.asptr, align 1 | 255 store i32 %4, i32* %gep44.asptr, align 1 |
256 ret void | 256 ret void |
257 } | 257 } |
258 | 258 |
259 define i32 @nacl_tp_tdb_offset(i32) { | 259 define i32 @nacl_tp_tdb_offset(i32) { |
260 entry: | 260 entry: |
261 ret i32 0 | 261 ret i32 0 |
262 } | 262 } |
263 | 263 |
264 define i32 @nacl_tp_tls_offset(i32 %size) { | 264 define i32 @nacl_tp_tls_offset(i32 %size) { |
265 entry: | 265 entry: |
266 %result = sub i32 0, %size | 266 %result = sub i32 0, %size |
267 ret i32 %result | 267 ret i32 %result |
268 } | 268 } |
OLD | NEW |