Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(421)

Side by Side Diff: src/arm/interface-descriptors-arm.cc

Issue 1197703002: Use big-boy Types to annotate interface descriptor parameters (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Latest Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/arm64/interface-descriptors-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM 7 #if V8_TARGET_ARCH_ARM
8 8
9 #include "src/interface-descriptors.h" 9 #include "src/interface-descriptors.h"
10 10
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 55
56 const Register MathPowIntegerDescriptor::exponent() { 56 const Register MathPowIntegerDescriptor::exponent() {
57 return MathPowTaggedDescriptor::exponent(); 57 return MathPowTaggedDescriptor::exponent();
58 } 58 }
59 59
60 60
61 const Register GrowArrayElementsDescriptor::ObjectRegister() { return r0; } 61 const Register GrowArrayElementsDescriptor::ObjectRegister() { return r0; }
62 const Register GrowArrayElementsDescriptor::KeyRegister() { return r3; } 62 const Register GrowArrayElementsDescriptor::KeyRegister() { return r3; }
63 63
64 64
65 void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) { 65 void FastNewClosureDescriptor::InitializePlatformSpecific(
66 CallInterfaceDescriptorData* data) {
66 Register registers[] = {cp, r2}; 67 Register registers[] = {cp, r2};
67 data->Initialize(arraysize(registers), registers, NULL); 68 data->InitializePlatformSpecific(arraysize(registers), registers);
68 } 69 }
69 70
70 71
71 void FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) { 72 void FastNewContextDescriptor::InitializePlatformSpecific(
73 CallInterfaceDescriptorData* data) {
72 Register registers[] = {cp, r1}; 74 Register registers[] = {cp, r1};
73 data->Initialize(arraysize(registers), registers, NULL); 75 data->InitializePlatformSpecific(arraysize(registers), registers);
74 } 76 }
75 77
76 78
77 void ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) { 79 void ToNumberDescriptor::InitializePlatformSpecific(
80 CallInterfaceDescriptorData* data) {
78 Register registers[] = {cp, r0}; 81 Register registers[] = {cp, r0};
79 data->Initialize(arraysize(registers), registers, NULL); 82 data->InitializePlatformSpecific(arraysize(registers), registers);
80 } 83 }
81 84
82 85
83 void NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData* data) { 86 void NumberToStringDescriptor::InitializePlatformSpecific(
87 CallInterfaceDescriptorData* data) {
84 Register registers[] = {cp, r0}; 88 Register registers[] = {cp, r0};
85 data->Initialize(arraysize(registers), registers, NULL); 89 data->InitializePlatformSpecific(arraysize(registers), registers);
86 } 90 }
87 91
88 92
89 void TypeofDescriptor::Initialize(CallInterfaceDescriptorData* data) { 93 void TypeofDescriptor::InitializePlatformSpecific(
94 CallInterfaceDescriptorData* data) {
90 Register registers[] = {cp, r3}; 95 Register registers[] = {cp, r3};
91 data->Initialize(arraysize(registers), registers, NULL); 96 data->InitializePlatformSpecific(arraysize(registers), registers);
92 } 97 }
93 98
94 99
95 void FastCloneShallowArrayDescriptor::Initialize( 100 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific(
96 CallInterfaceDescriptorData* data) { 101 CallInterfaceDescriptorData* data) {
97 Register registers[] = {cp, r3, r2, r1}; 102 Register registers[] = {cp, r3, r2, r1};
98 Representation representations[] = { 103 data->InitializePlatformSpecific(arraysize(registers), registers);
99 Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
100 Representation::Tagged()};
101 data->Initialize(arraysize(registers), registers, representations);
102 } 104 }
103 105
104 106
105 void FastCloneShallowObjectDescriptor::Initialize( 107 void FastCloneShallowObjectDescriptor::InitializePlatformSpecific(
106 CallInterfaceDescriptorData* data) { 108 CallInterfaceDescriptorData* data) {
107 Register registers[] = {cp, r3, r2, r1, r0}; 109 Register registers[] = {cp, r3, r2, r1, r0};
108 data->Initialize(arraysize(registers), registers, NULL); 110 data->InitializePlatformSpecific(arraysize(registers), registers);
109 } 111 }
110 112
111 113
112 void CreateAllocationSiteDescriptor::Initialize( 114 void CreateAllocationSiteDescriptor::InitializePlatformSpecific(
113 CallInterfaceDescriptorData* data) { 115 CallInterfaceDescriptorData* data) {
114 Register registers[] = {cp, r2, r3}; 116 Register registers[] = {cp, r2, r3};
115 Representation representations[] = {Representation::Tagged(), 117 data->InitializePlatformSpecific(arraysize(registers), registers);
116 Representation::Tagged(),
117 Representation::Smi()};
118 data->Initialize(arraysize(registers), registers, representations);
119 } 118 }
120 119
121 120
122 void CreateWeakCellDescriptor::Initialize(CallInterfaceDescriptorData* data) { 121 void CreateWeakCellDescriptor::InitializePlatformSpecific(
122 CallInterfaceDescriptorData* data) {
123 Register registers[] = {cp, r2, r3, r1}; 123 Register registers[] = {cp, r2, r3, r1};
124 Representation representations[] = { 124 data->InitializePlatformSpecific(arraysize(registers), registers);
125 Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
126 Representation::Tagged()};
127 data->Initialize(arraysize(registers), registers, representations);
128 } 125 }
129 126
130 127
131 void StoreArrayLiteralElementDescriptor::Initialize( 128 void StoreArrayLiteralElementDescriptor::InitializePlatformSpecific(
132 CallInterfaceDescriptorData* data) { 129 CallInterfaceDescriptorData* data) {
133 Register registers[] = {cp, r3, r0}; 130 Register registers[] = {cp, r3, r0};
134 data->Initialize(arraysize(registers), registers, NULL); 131 data->InitializePlatformSpecific(arraysize(registers), registers);
135 } 132 }
136 133
137 134
138 void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 135 void CallFunctionDescriptor::InitializePlatformSpecific(
136 CallInterfaceDescriptorData* data) {
139 Register registers[] = {cp, r1}; 137 Register registers[] = {cp, r1};
140 data->Initialize(arraysize(registers), registers, NULL); 138 data->InitializePlatformSpecific(arraysize(registers), registers);
141 } 139 }
142 140
143 141
144 void CallFunctionWithFeedbackDescriptor::Initialize( 142 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
145 CallInterfaceDescriptorData* data) { 143 CallInterfaceDescriptorData* data) {
146 Register registers[] = {cp, r1, r3}; 144 Register registers[] = {cp, r1, r3};
147 Representation representations[] = {Representation::Tagged(), 145 data->InitializePlatformSpecific(arraysize(registers), registers);
148 Representation::Tagged(),
149 Representation::Smi()};
150 data->Initialize(arraysize(registers), registers, representations);
151 } 146 }
152 147
153 148
154 void CallFunctionWithFeedbackAndVectorDescriptor::Initialize( 149 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
155 CallInterfaceDescriptorData* data) { 150 CallInterfaceDescriptorData* data) {
156 Register registers[] = {cp, r1, r3, r2}; 151 Register registers[] = {cp, r1, r3, r2};
157 Representation representations[] = { 152 data->InitializePlatformSpecific(arraysize(registers), registers);
158 Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
159 Representation::Tagged()};
160 data->Initialize(arraysize(registers), registers, representations);
161 } 153 }
162 154
163 155
164 void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { 156 void CallConstructDescriptor::InitializePlatformSpecific(
157 CallInterfaceDescriptorData* data) {
165 // r0 : number of arguments 158 // r0 : number of arguments
166 // r1 : the function to call 159 // r1 : the function to call
167 // r2 : feedback vector 160 // r2 : feedback vector
168 // r3 : (only if r2 is not the megamorphic symbol) slot in feedback 161 // r3 : (only if r2 is not the megamorphic symbol) slot in feedback
169 // vector (Smi) 162 // vector (Smi)
170 // TODO(turbofan): So far we don't gather type feedback and hence skip the 163 // TODO(turbofan): So far we don't gather type feedback and hence skip the
171 // slot parameter, but ArrayConstructStub needs the vector to be undefined. 164 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
172 Register registers[] = {cp, r0, r1, r2}; 165 Register registers[] = {cp, r0, r1, r2};
173 data->Initialize(arraysize(registers), registers, NULL); 166 data->InitializePlatformSpecific(arraysize(registers), registers);
174 } 167 }
175 168
176 169
177 void RegExpConstructResultDescriptor::Initialize( 170 void RegExpConstructResultDescriptor::InitializePlatformSpecific(
178 CallInterfaceDescriptorData* data) { 171 CallInterfaceDescriptorData* data) {
179 Register registers[] = {cp, r2, r1, r0}; 172 Register registers[] = {cp, r2, r1, r0};
180 data->Initialize(arraysize(registers), registers, NULL); 173 data->InitializePlatformSpecific(arraysize(registers), registers);
181 } 174 }
182 175
183 176
184 void TransitionElementsKindDescriptor::Initialize( 177 void TransitionElementsKindDescriptor::InitializePlatformSpecific(
185 CallInterfaceDescriptorData* data) { 178 CallInterfaceDescriptorData* data) {
186 Register registers[] = {cp, r0, r1}; 179 Register registers[] = {cp, r0, r1};
187 data->Initialize(arraysize(registers), registers, NULL); 180 data->InitializePlatformSpecific(arraysize(registers), registers);
188 } 181 }
189 182
190 183
191 void AllocateHeapNumberDescriptor::Initialize( 184 void AllocateHeapNumberDescriptor::InitializePlatformSpecific(
192 CallInterfaceDescriptorData* data) { 185 CallInterfaceDescriptorData* data) {
193 // register state 186 // register state
194 // cp -- context 187 // cp -- context
195 Register registers[] = {cp}; 188 Register registers[] = {cp};
196 data->Initialize(arraysize(registers), registers, nullptr); 189 data->InitializePlatformSpecific(arraysize(registers), registers, nullptr);
197 } 190 }
198 191
199 192
200 void ArrayConstructorConstantArgCountDescriptor::Initialize( 193 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
201 CallInterfaceDescriptorData* data) { 194 CallInterfaceDescriptorData* data) {
202 // register state 195 // register state
203 // cp -- context 196 // cp -- context
204 // r0 -- number of arguments 197 // r0 -- number of arguments
205 // r1 -- function 198 // r1 -- function
206 // r2 -- allocation site with elements kind 199 // r2 -- allocation site with elements kind
207 Register registers[] = {cp, r1, r2}; 200 Register registers[] = {cp, r1, r2};
208 data->Initialize(arraysize(registers), registers, NULL); 201 data->InitializePlatformSpecific(arraysize(registers), registers);
209 } 202 }
210 203
211 204
212 void ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 205 void ArrayConstructorDescriptor::InitializePlatformSpecific(
206 CallInterfaceDescriptorData* data) {
213 // stack param count needs (constructor pointer, and single argument) 207 // stack param count needs (constructor pointer, and single argument)
214 Register registers[] = {cp, r1, r2, r0}; 208 Register registers[] = {cp, r1, r2, r0};
215 Representation representations[] = { 209 data->InitializePlatformSpecific(arraysize(registers), registers);
216 Representation::Tagged(), Representation::Tagged(),
217 Representation::Tagged(), Representation::Integer32()};
218 data->Initialize(arraysize(registers), registers, representations);
219 } 210 }
220 211
221 212
222 void InternalArrayConstructorConstantArgCountDescriptor::Initialize( 213 void InternalArrayConstructorConstantArgCountDescriptor::
223 CallInterfaceDescriptorData* data) { 214 InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
224 // register state 215 // register state
225 // cp -- context 216 // cp -- context
226 // r0 -- number of arguments 217 // r0 -- number of arguments
227 // r1 -- constructor function 218 // r1 -- constructor function
228 Register registers[] = {cp, r1}; 219 Register registers[] = {cp, r1};
229 data->Initialize(arraysize(registers), registers, NULL); 220 data->InitializePlatformSpecific(arraysize(registers), registers);
230 } 221 }
231 222
232 223
233 void InternalArrayConstructorDescriptor::Initialize( 224 void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
234 CallInterfaceDescriptorData* data) { 225 CallInterfaceDescriptorData* data) {
235 // stack param count needs (constructor pointer, and single argument) 226 // stack param count needs (constructor pointer, and single argument)
236 Register registers[] = {cp, r1, r0}; 227 Register registers[] = {cp, r1, r0};
237 Representation representations[] = {Representation::Tagged(), 228 data->InitializePlatformSpecific(arraysize(registers), registers);
238 Representation::Tagged(),
239 Representation::Integer32()};
240 data->Initialize(arraysize(registers), registers, representations);
241 } 229 }
242 230
243 231
244 void CompareDescriptor::Initialize(CallInterfaceDescriptorData* data) { 232 void CompareDescriptor::InitializePlatformSpecific(
233 CallInterfaceDescriptorData* data) {
245 Register registers[] = {cp, r1, r0}; 234 Register registers[] = {cp, r1, r0};
246 data->Initialize(arraysize(registers), registers, NULL); 235 data->InitializePlatformSpecific(arraysize(registers), registers);
247 } 236 }
248 237
249 238
250 void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { 239 void CompareNilDescriptor::InitializePlatformSpecific(
240 CallInterfaceDescriptorData* data) {
251 Register registers[] = {cp, r0}; 241 Register registers[] = {cp, r0};
252 data->Initialize(arraysize(registers), registers, NULL); 242 data->InitializePlatformSpecific(arraysize(registers), registers);
253 } 243 }
254 244
255 245
256 void ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) { 246 void ToBooleanDescriptor::InitializePlatformSpecific(
247 CallInterfaceDescriptorData* data) {
257 Register registers[] = {cp, r0}; 248 Register registers[] = {cp, r0};
258 data->Initialize(arraysize(registers), registers, NULL); 249 data->InitializePlatformSpecific(arraysize(registers), registers);
259 } 250 }
260 251
261 252
262 void BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) { 253 void BinaryOpDescriptor::InitializePlatformSpecific(
254 CallInterfaceDescriptorData* data) {
263 Register registers[] = {cp, r1, r0}; 255 Register registers[] = {cp, r1, r0};
264 data->Initialize(arraysize(registers), registers, NULL); 256 data->InitializePlatformSpecific(arraysize(registers), registers);
265 } 257 }
266 258
267 259
268 void BinaryOpWithAllocationSiteDescriptor::Initialize( 260 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific(
269 CallInterfaceDescriptorData* data) { 261 CallInterfaceDescriptorData* data) {
270 Register registers[] = {cp, r2, r1, r0}; 262 Register registers[] = {cp, r2, r1, r0};
271 data->Initialize(arraysize(registers), registers, NULL); 263 data->InitializePlatformSpecific(arraysize(registers), registers);
272 } 264 }
273 265
274 266
275 void StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) { 267 void StringAddDescriptor::InitializePlatformSpecific(
268 CallInterfaceDescriptorData* data) {
276 Register registers[] = {cp, r1, r0}; 269 Register registers[] = {cp, r1, r0};
277 data->Initialize(arraysize(registers), registers, NULL); 270 data->InitializePlatformSpecific(arraysize(registers), registers);
278 } 271 }
279 272
280 273
281 void KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) { 274 void KeyedDescriptor::InitializePlatformSpecific(
275 CallInterfaceDescriptorData* data) {
282 static PlatformInterfaceDescriptor noInlineDescriptor = 276 static PlatformInterfaceDescriptor noInlineDescriptor =
283 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS); 277 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS);
284 278
285 Register registers[] = { 279 Register registers[] = {
286 cp, // context 280 cp, // context
287 r2, // key 281 r2, // key
288 }; 282 };
289 Representation representations[] = { 283 data->InitializePlatformSpecific(arraysize(registers), registers,
290 Representation::Tagged(), // context 284 &noInlineDescriptor);
291 Representation::Tagged(), // key
292 };
293 data->Initialize(arraysize(registers), registers, representations,
294 &noInlineDescriptor);
295 } 285 }
296 286
297 287
298 void NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) { 288 void NamedDescriptor::InitializePlatformSpecific(
289 CallInterfaceDescriptorData* data) {
299 static PlatformInterfaceDescriptor noInlineDescriptor = 290 static PlatformInterfaceDescriptor noInlineDescriptor =
300 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS); 291 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS);
301 292
302 Register registers[] = { 293 Register registers[] = {
303 cp, // context 294 cp, // context
304 r2, // name 295 r2, // name
305 }; 296 };
306 Representation representations[] = { 297 data->InitializePlatformSpecific(arraysize(registers), registers,
307 Representation::Tagged(), // context 298 &noInlineDescriptor);
308 Representation::Tagged(), // name
309 };
310 data->Initialize(arraysize(registers), registers, representations,
311 &noInlineDescriptor);
312 } 299 }
313 300
314 301
315 void CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) { 302 void CallHandlerDescriptor::InitializePlatformSpecific(
303 CallInterfaceDescriptorData* data) {
316 static PlatformInterfaceDescriptor default_descriptor = 304 static PlatformInterfaceDescriptor default_descriptor =
317 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 305 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
318 306
319 Register registers[] = { 307 Register registers[] = {
320 cp, // context 308 cp, // context
321 r0, // receiver 309 r0, // receiver
322 }; 310 };
323 Representation representations[] = { 311 data->InitializePlatformSpecific(arraysize(registers), registers,
324 Representation::Tagged(), // context 312 &default_descriptor);
325 Representation::Tagged(), // receiver
326 };
327 data->Initialize(arraysize(registers), registers, representations,
328 &default_descriptor);
329 } 313 }
330 314
331 315
332 void ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 316 void ArgumentAdaptorDescriptor::InitializePlatformSpecific(
317 CallInterfaceDescriptorData* data) {
333 static PlatformInterfaceDescriptor default_descriptor = 318 static PlatformInterfaceDescriptor default_descriptor =
334 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 319 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
335 320
336 Register registers[] = { 321 Register registers[] = {
337 cp, // context 322 cp, // context
338 r1, // JSFunction 323 r1, // JSFunction
339 r0, // actual number of arguments 324 r0, // actual number of arguments
340 r2, // expected number of arguments 325 r2, // expected number of arguments
341 }; 326 };
342 Representation representations[] = { 327 data->InitializePlatformSpecific(arraysize(registers), registers,
343 Representation::Tagged(), // context 328 &default_descriptor);
344 Representation::Tagged(), // JSFunction
345 Representation::Integer32(), // actual number of arguments
346 Representation::Integer32(), // expected number of arguments
347 };
348 data->Initialize(arraysize(registers), registers, representations,
349 &default_descriptor);
350 } 329 }
351 330
352 331
353 void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 332 void ApiFunctionDescriptor::InitializePlatformSpecific(
333 CallInterfaceDescriptorData* data) {
354 static PlatformInterfaceDescriptor default_descriptor = 334 static PlatformInterfaceDescriptor default_descriptor =
355 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 335 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
356 336
357 Register registers[] = { 337 Register registers[] = {
358 cp, // context 338 cp, // context
359 r0, // callee 339 r0, // callee
360 r4, // call_data 340 r4, // call_data
361 r2, // holder 341 r2, // holder
362 r1, // api_function_address 342 r1, // api_function_address
363 r3, // actual number of arguments 343 r3, // actual number of arguments
364 }; 344 };
365 Representation representations[] = { 345 data->InitializePlatformSpecific(arraysize(registers), registers,
366 Representation::Tagged(), // context 346 &default_descriptor);
367 Representation::Tagged(), // callee
368 Representation::Tagged(), // call_data
369 Representation::Tagged(), // holder
370 Representation::External(), // api_function_address
371 Representation::Integer32(), // actual number of arguments
372 };
373 data->Initialize(arraysize(registers), registers, representations,
374 &default_descriptor);
375 } 347 }
376 348
377 349
378 void ApiAccessorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 350 void ApiAccessorDescriptor::InitializePlatformSpecific(
351 CallInterfaceDescriptorData* data) {
379 static PlatformInterfaceDescriptor default_descriptor = 352 static PlatformInterfaceDescriptor default_descriptor =
380 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 353 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
381 354
382 Register registers[] = { 355 Register registers[] = {
383 cp, // context 356 cp, // context
384 r0, // callee 357 r0, // callee
385 r4, // call_data 358 r4, // call_data
386 r2, // holder 359 r2, // holder
387 r1, // api_function_address 360 r1, // api_function_address
388 }; 361 };
389 Representation representations[] = { 362 data->InitializePlatformSpecific(arraysize(registers), registers,
390 Representation::Tagged(), // context 363 &default_descriptor);
391 Representation::Tagged(), // callee
392 Representation::Tagged(), // call_data
393 Representation::Tagged(), // holder
394 Representation::External(), // api_function_address
395 };
396 data->Initialize(arraysize(registers), registers, representations,
397 &default_descriptor);
398 } 364 }
399 365
400 366
401 void MathRoundVariantDescriptor::Initialize(CallInterfaceDescriptorData* data) { 367 void MathRoundVariantDescriptor::InitializePlatformSpecific(
368 CallInterfaceDescriptorData* data) {
402 Register registers[] = { 369 Register registers[] = {
403 cp, // context 370 cp, // context
404 r1, // math rounding function 371 r1, // math rounding function
405 r3, // vector slot id 372 r3, // vector slot id
406 }; 373 };
407 Representation representations[] = { 374 data->InitializePlatformSpecific(arraysize(registers), registers);
408 Representation::Tagged(), //
409 Representation::Tagged(), //
410 Representation::Tagged(), //
411 };
412 data->Initialize(arraysize(registers), registers, representations);
413 } 375 }
414 } // namespace internal 376 } // namespace internal
415 } // namespace v8 377 } // namespace v8
416 378
417 #endif // V8_TARGET_ARCH_ARM 379 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/arm64/interface-descriptors-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698