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

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

Issue 1211333003: Make context register implicit for CallInterfaceDescriptors (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Platform ports Created 5 years, 5 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
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_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/interface-descriptors.h" 9 #include "src/interface-descriptors.h"
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 63
64 const Register MathPowIntegerDescriptor::exponent() { return x12; } 64 const Register MathPowIntegerDescriptor::exponent() { return x12; }
65 65
66 66
67 const Register GrowArrayElementsDescriptor::ObjectRegister() { return x0; } 67 const Register GrowArrayElementsDescriptor::ObjectRegister() { return x0; }
68 const Register GrowArrayElementsDescriptor::KeyRegister() { return x3; } 68 const Register GrowArrayElementsDescriptor::KeyRegister() { return x3; }
69 69
70 70
71 void FastNewClosureDescriptor::InitializePlatformSpecific( 71 void FastNewClosureDescriptor::InitializePlatformSpecific(
72 CallInterfaceDescriptorData* data) { 72 CallInterfaceDescriptorData* data) {
73 // cp: context
74 // x2: function info 73 // x2: function info
75 Register registers[] = {cp, x2}; 74 Register registers[] = {x2};
76 data->InitializePlatformSpecific(arraysize(registers), registers); 75 data->InitializePlatformSpecific(arraysize(registers), registers);
77 } 76 }
78 77
79 78
80 void FastNewContextDescriptor::InitializePlatformSpecific( 79 void FastNewContextDescriptor::InitializePlatformSpecific(
81 CallInterfaceDescriptorData* data) { 80 CallInterfaceDescriptorData* data) {
82 // cp: context
83 // x1: function 81 // x1: function
84 Register registers[] = {cp, x1}; 82 Register registers[] = {x1};
85 data->InitializePlatformSpecific(arraysize(registers), registers); 83 data->InitializePlatformSpecific(arraysize(registers), registers);
86 } 84 }
87 85
88 86
89 void ToNumberDescriptor::InitializePlatformSpecific( 87 void ToNumberDescriptor::InitializePlatformSpecific(
90 CallInterfaceDescriptorData* data) { 88 CallInterfaceDescriptorData* data) {
91 // cp: context
92 // x0: value 89 // x0: value
93 Register registers[] = {cp, x0}; 90 Register registers[] = {x0};
94 data->InitializePlatformSpecific(arraysize(registers), registers); 91 data->InitializePlatformSpecific(arraysize(registers), registers);
95 } 92 }
96 93
97 94
98 void NumberToStringDescriptor::InitializePlatformSpecific( 95 void NumberToStringDescriptor::InitializePlatformSpecific(
99 CallInterfaceDescriptorData* data) { 96 CallInterfaceDescriptorData* data) {
100 // cp: context
101 // x0: value 97 // x0: value
102 Register registers[] = {cp, x0}; 98 Register registers[] = {x0};
103 data->InitializePlatformSpecific(arraysize(registers), registers); 99 data->InitializePlatformSpecific(arraysize(registers), registers);
104 } 100 }
105 101
106 102
107 void TypeofDescriptor::InitializePlatformSpecific( 103 void TypeofDescriptor::InitializePlatformSpecific(
108 CallInterfaceDescriptorData* data) { 104 CallInterfaceDescriptorData* data) {
109 Register registers[] = {cp, x3}; 105 Register registers[] = {x3};
110 data->InitializePlatformSpecific(arraysize(registers), registers); 106 data->InitializePlatformSpecific(arraysize(registers), registers);
111 } 107 }
112 108
113 109
114 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific( 110 void FastCloneShallowArrayDescriptor::InitializePlatformSpecific(
115 CallInterfaceDescriptorData* data) { 111 CallInterfaceDescriptorData* data) {
116 // cp: context
117 // x3: array literals array 112 // x3: array literals array
118 // x2: array literal index 113 // x2: array literal index
119 // x1: constant elements 114 // x1: constant elements
120 Register registers[] = {cp, x3, x2, x1}; 115 Register registers[] = {x3, x2, x1};
121 data->InitializePlatformSpecific(arraysize(registers), registers); 116 data->InitializePlatformSpecific(arraysize(registers), registers);
122 } 117 }
123 118
124 119
125 void FastCloneShallowObjectDescriptor::InitializePlatformSpecific( 120 void FastCloneShallowObjectDescriptor::InitializePlatformSpecific(
126 CallInterfaceDescriptorData* data) { 121 CallInterfaceDescriptorData* data) {
127 // cp: context
128 // x3: object literals array 122 // x3: object literals array
129 // x2: object literal index 123 // x2: object literal index
130 // x1: constant properties 124 // x1: constant properties
131 // x0: object literal flags 125 // x0: object literal flags
132 Register registers[] = {cp, x3, x2, x1, x0}; 126 Register registers[] = {x3, x2, x1, x0};
133 data->InitializePlatformSpecific(arraysize(registers), registers); 127 data->InitializePlatformSpecific(arraysize(registers), registers);
134 } 128 }
135 129
136 130
137 void CreateAllocationSiteDescriptor::InitializePlatformSpecific( 131 void CreateAllocationSiteDescriptor::InitializePlatformSpecific(
138 CallInterfaceDescriptorData* data) { 132 CallInterfaceDescriptorData* data) {
139 // cp: context
140 // x2: feedback vector 133 // x2: feedback vector
141 // x3: call feedback slot 134 // x3: call feedback slot
142 Register registers[] = {cp, x2, x3}; 135 Register registers[] = {x2, x3};
143 data->InitializePlatformSpecific(arraysize(registers), registers); 136 data->InitializePlatformSpecific(arraysize(registers), registers);
144 } 137 }
145 138
146 139
147 void CreateWeakCellDescriptor::InitializePlatformSpecific( 140 void CreateWeakCellDescriptor::InitializePlatformSpecific(
148 CallInterfaceDescriptorData* data) { 141 CallInterfaceDescriptorData* data) {
149 // cp: context
150 // x2: feedback vector 142 // x2: feedback vector
151 // x3: call feedback slot 143 // x3: call feedback slot
152 // x1: tagged value to put in the weak cell 144 // x1: tagged value to put in the weak cell
153 Register registers[] = {cp, x2, x3, x1}; 145 Register registers[] = {x2, x3, x1};
154 data->InitializePlatformSpecific(arraysize(registers), registers); 146 data->InitializePlatformSpecific(arraysize(registers), registers);
155 } 147 }
156 148
157 149
158 void StoreArrayLiteralElementDescriptor::InitializePlatformSpecific( 150 void StoreArrayLiteralElementDescriptor::InitializePlatformSpecific(
159 CallInterfaceDescriptorData* data) { 151 CallInterfaceDescriptorData* data) {
160 Register registers[] = {cp, x3, x0}; 152 Register registers[] = {x3, x0};
161 data->InitializePlatformSpecific(arraysize(registers), registers); 153 data->InitializePlatformSpecific(arraysize(registers), registers);
162 } 154 }
163 155
164 156
165 void CallFunctionDescriptor::InitializePlatformSpecific( 157 void CallFunctionDescriptor::InitializePlatformSpecific(
166 CallInterfaceDescriptorData* data) { 158 CallInterfaceDescriptorData* data) {
167 // x1 function the function to call 159 // x1 function the function to call
168 Register registers[] = {cp, x1}; 160 Register registers[] = {x1};
169 data->InitializePlatformSpecific(arraysize(registers), registers); 161 data->InitializePlatformSpecific(arraysize(registers), registers);
170 } 162 }
171 163
172 164
173 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific( 165 void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
174 CallInterfaceDescriptorData* data) { 166 CallInterfaceDescriptorData* data) {
175 Register registers[] = {cp, x1, x3}; 167 Register registers[] = {x1, x3};
176 data->InitializePlatformSpecific(arraysize(registers), registers); 168 data->InitializePlatformSpecific(arraysize(registers), registers);
177 } 169 }
178 170
179 171
180 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific( 172 void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
181 CallInterfaceDescriptorData* data) { 173 CallInterfaceDescriptorData* data) {
182 Register registers[] = {cp, x1, x3, x2}; 174 Register registers[] = {x1, x3, x2};
183 data->InitializePlatformSpecific(arraysize(registers), registers); 175 data->InitializePlatformSpecific(arraysize(registers), registers);
184 } 176 }
185 177
186 178
187 void CallConstructDescriptor::InitializePlatformSpecific( 179 void CallConstructDescriptor::InitializePlatformSpecific(
188 CallInterfaceDescriptorData* data) { 180 CallInterfaceDescriptorData* data) {
189 // x0 : number of arguments 181 // x0 : number of arguments
190 // x1 : the function to call 182 // x1 : the function to call
191 // x2 : feedback vector 183 // x2 : feedback vector
192 // x3 : slot in feedback vector (smi) (if r2 is not the megamorphic symbol) 184 // x3 : slot in feedback vector (smi) (if r2 is not the megamorphic symbol)
193 // TODO(turbofan): So far we don't gather type feedback and hence skip the 185 // TODO(turbofan): So far we don't gather type feedback and hence skip the
194 // slot parameter, but ArrayConstructStub needs the vector to be undefined. 186 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
195 Register registers[] = {cp, x0, x1, x2}; 187 Register registers[] = {x0, x1, x2};
196 data->InitializePlatformSpecific(arraysize(registers), registers); 188 data->InitializePlatformSpecific(arraysize(registers), registers);
197 } 189 }
198 190
199 191
200 void RegExpConstructResultDescriptor::InitializePlatformSpecific( 192 void RegExpConstructResultDescriptor::InitializePlatformSpecific(
201 CallInterfaceDescriptorData* data) { 193 CallInterfaceDescriptorData* data) {
202 // cp: context
203 // x2: length 194 // x2: length
204 // x1: index (of last match) 195 // x1: index (of last match)
205 // x0: string 196 // x0: string
206 Register registers[] = {cp, x2, x1, x0}; 197 Register registers[] = {x2, x1, x0};
207 data->InitializePlatformSpecific(arraysize(registers), registers); 198 data->InitializePlatformSpecific(arraysize(registers), registers);
208 } 199 }
209 200
210 201
211 void TransitionElementsKindDescriptor::InitializePlatformSpecific( 202 void TransitionElementsKindDescriptor::InitializePlatformSpecific(
212 CallInterfaceDescriptorData* data) { 203 CallInterfaceDescriptorData* data) {
213 // cp: context
214 // x0: value (js_array) 204 // x0: value (js_array)
215 // x1: to_map 205 // x1: to_map
216 Register registers[] = {cp, x0, x1}; 206 Register registers[] = {x0, x1};
217 data->InitializePlatformSpecific(arraysize(registers), registers); 207 data->InitializePlatformSpecific(arraysize(registers), registers);
218 } 208 }
219 209
220 210
221 void AllocateHeapNumberDescriptor::InitializePlatformSpecific( 211 void AllocateHeapNumberDescriptor::InitializePlatformSpecific(
222 CallInterfaceDescriptorData* data) { 212 CallInterfaceDescriptorData* data) {
223 // cp: context 213 data->InitializePlatformSpecific(0, nullptr, nullptr);
224 Register registers[] = {cp};
225 data->InitializePlatformSpecific(arraysize(registers), registers, nullptr);
226 } 214 }
227 215
228 216
229 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific( 217 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
230 CallInterfaceDescriptorData* data) { 218 CallInterfaceDescriptorData* data) {
231 // cp: context
232 // x1: function 219 // x1: function
233 // x2: allocation site with elements kind 220 // x2: allocation site with elements kind
234 // x0: number of arguments to the constructor function 221 // x0: number of arguments to the constructor function
235 Register registers[] = {cp, x1, x2}; 222 Register registers[] = {x1, x2};
236 data->InitializePlatformSpecific(arraysize(registers), registers); 223 data->InitializePlatformSpecific(arraysize(registers), registers);
237 } 224 }
238 225
239 226
240 void ArrayConstructorDescriptor::InitializePlatformSpecific( 227 void ArrayConstructorDescriptor::InitializePlatformSpecific(
241 CallInterfaceDescriptorData* data) { 228 CallInterfaceDescriptorData* data) {
242 // stack param count needs (constructor pointer, and single argument) 229 // stack param count needs (constructor pointer, and single argument)
243 Register registers[] = {cp, x1, x2, x0}; 230 Register registers[] = {x1, x2, x0};
244 data->InitializePlatformSpecific(arraysize(registers), registers); 231 data->InitializePlatformSpecific(arraysize(registers), registers);
245 } 232 }
246 233
247 234
248 void InternalArrayConstructorConstantArgCountDescriptor:: 235 void InternalArrayConstructorConstantArgCountDescriptor::
249 InitializePlatformSpecific(CallInterfaceDescriptorData* data) { 236 InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
250 // cp: context
251 // x1: constructor function 237 // x1: constructor function
252 // x0: number of arguments to the constructor function 238 // x0: number of arguments to the constructor function
253 Register registers[] = {cp, x1}; 239 Register registers[] = {x1};
254 data->InitializePlatformSpecific(arraysize(registers), registers); 240 data->InitializePlatformSpecific(arraysize(registers), registers);
255 } 241 }
256 242
257 243
258 void InternalArrayConstructorDescriptor::InitializePlatformSpecific( 244 void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
259 CallInterfaceDescriptorData* data) { 245 CallInterfaceDescriptorData* data) {
260 // stack param count needs (constructor pointer, and single argument) 246 // stack param count needs (constructor pointer, and single argument)
261 Register registers[] = {cp, x1, x0}; 247 Register registers[] = {x1, x0};
262 data->InitializePlatformSpecific(arraysize(registers), registers); 248 data->InitializePlatformSpecific(arraysize(registers), registers);
263 } 249 }
264 250
265 251
266 void CompareDescriptor::InitializePlatformSpecific( 252 void CompareDescriptor::InitializePlatformSpecific(
267 CallInterfaceDescriptorData* data) { 253 CallInterfaceDescriptorData* data) {
268 // cp: context
269 // x1: left operand 254 // x1: left operand
270 // x0: right operand 255 // x0: right operand
271 Register registers[] = {cp, x1, x0}; 256 Register registers[] = {x1, x0};
272 data->InitializePlatformSpecific(arraysize(registers), registers); 257 data->InitializePlatformSpecific(arraysize(registers), registers);
273 } 258 }
274 259
275 260
276 void CompareNilDescriptor::InitializePlatformSpecific( 261 void CompareNilDescriptor::InitializePlatformSpecific(
277 CallInterfaceDescriptorData* data) { 262 CallInterfaceDescriptorData* data) {
278 // cp: context
279 // x0: value to compare 263 // x0: value to compare
280 Register registers[] = {cp, x0}; 264 Register registers[] = {x0};
281 data->InitializePlatformSpecific(arraysize(registers), registers); 265 data->InitializePlatformSpecific(arraysize(registers), registers);
282 } 266 }
283 267
284 268
285 void ToBooleanDescriptor::InitializePlatformSpecific( 269 void ToBooleanDescriptor::InitializePlatformSpecific(
286 CallInterfaceDescriptorData* data) { 270 CallInterfaceDescriptorData* data) {
287 // cp: context
288 // x0: value 271 // x0: value
289 Register registers[] = {cp, x0}; 272 Register registers[] = {x0};
290 data->InitializePlatformSpecific(arraysize(registers), registers); 273 data->InitializePlatformSpecific(arraysize(registers), registers);
291 } 274 }
292 275
293 276
294 void BinaryOpDescriptor::InitializePlatformSpecific( 277 void BinaryOpDescriptor::InitializePlatformSpecific(
295 CallInterfaceDescriptorData* data) { 278 CallInterfaceDescriptorData* data) {
296 // cp: context
297 // x1: left operand 279 // x1: left operand
298 // x0: right operand 280 // x0: right operand
299 Register registers[] = {cp, x1, x0}; 281 Register registers[] = {x1, x0};
300 data->InitializePlatformSpecific(arraysize(registers), registers); 282 data->InitializePlatformSpecific(arraysize(registers), registers);
301 } 283 }
302 284
303 285
304 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific( 286 void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific(
305 CallInterfaceDescriptorData* data) { 287 CallInterfaceDescriptorData* data) {
306 // cp: context
307 // x2: allocation site 288 // x2: allocation site
308 // x1: left operand 289 // x1: left operand
309 // x0: right operand 290 // x0: right operand
310 Register registers[] = {cp, x2, x1, x0}; 291 Register registers[] = {x2, x1, x0};
311 data->InitializePlatformSpecific(arraysize(registers), registers); 292 data->InitializePlatformSpecific(arraysize(registers), registers);
312 } 293 }
313 294
314 295
315 void StringAddDescriptor::InitializePlatformSpecific( 296 void StringAddDescriptor::InitializePlatformSpecific(
316 CallInterfaceDescriptorData* data) { 297 CallInterfaceDescriptorData* data) {
317 // cp: context
318 // x1: left operand 298 // x1: left operand
319 // x0: right operand 299 // x0: right operand
320 Register registers[] = {cp, x1, x0}; 300 Register registers[] = {x1, x0};
321 data->InitializePlatformSpecific(arraysize(registers), registers); 301 data->InitializePlatformSpecific(arraysize(registers), registers);
322 } 302 }
323 303
324 304
325 void KeyedDescriptor::InitializePlatformSpecific( 305 void KeyedDescriptor::InitializePlatformSpecific(
326 CallInterfaceDescriptorData* data) { 306 CallInterfaceDescriptorData* data) {
327 static PlatformInterfaceDescriptor noInlineDescriptor = 307 static PlatformInterfaceDescriptor noInlineDescriptor =
328 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS); 308 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS);
329 309
330 Register registers[] = { 310 Register registers[] = {
331 cp, // context
332 x2, // key 311 x2, // key
333 }; 312 };
334 data->InitializePlatformSpecific(arraysize(registers), registers, 313 data->InitializePlatformSpecific(arraysize(registers), registers,
335 &noInlineDescriptor); 314 &noInlineDescriptor);
336 } 315 }
337 316
338 317
339 void NamedDescriptor::InitializePlatformSpecific( 318 void NamedDescriptor::InitializePlatformSpecific(
340 CallInterfaceDescriptorData* data) { 319 CallInterfaceDescriptorData* data) {
341 static PlatformInterfaceDescriptor noInlineDescriptor = 320 static PlatformInterfaceDescriptor noInlineDescriptor =
342 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS); 321 PlatformInterfaceDescriptor(NEVER_INLINE_TARGET_ADDRESS);
343 322
344 Register registers[] = { 323 Register registers[] = {
345 cp, // context
346 x2, // name 324 x2, // name
347 }; 325 };
348 data->InitializePlatformSpecific(arraysize(registers), registers, 326 data->InitializePlatformSpecific(arraysize(registers), registers,
349 &noInlineDescriptor); 327 &noInlineDescriptor);
350 } 328 }
351 329
352 330
353 void CallHandlerDescriptor::InitializePlatformSpecific( 331 void CallHandlerDescriptor::InitializePlatformSpecific(
354 CallInterfaceDescriptorData* data) { 332 CallInterfaceDescriptorData* data) {
355 static PlatformInterfaceDescriptor default_descriptor = 333 static PlatformInterfaceDescriptor default_descriptor =
356 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 334 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
357 335
358 Register registers[] = { 336 Register registers[] = {
359 cp, // context
360 x0, // receiver 337 x0, // receiver
361 }; 338 };
362 data->InitializePlatformSpecific(arraysize(registers), registers, 339 data->InitializePlatformSpecific(arraysize(registers), registers,
363 &default_descriptor); 340 &default_descriptor);
364 } 341 }
365 342
366 343
367 void ArgumentAdaptorDescriptor::InitializePlatformSpecific( 344 void ArgumentAdaptorDescriptor::InitializePlatformSpecific(
368 CallInterfaceDescriptorData* data) { 345 CallInterfaceDescriptorData* data) {
369 static PlatformInterfaceDescriptor default_descriptor = 346 static PlatformInterfaceDescriptor default_descriptor =
370 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 347 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
371 348
372 Register registers[] = { 349 Register registers[] = {
373 cp, // context
374 x1, // JSFunction 350 x1, // JSFunction
375 x0, // actual number of arguments 351 x0, // actual number of arguments
376 x2, // expected number of arguments 352 x2, // expected number of arguments
377 }; 353 };
378 data->InitializePlatformSpecific(arraysize(registers), registers, 354 data->InitializePlatformSpecific(arraysize(registers), registers,
379 &default_descriptor); 355 &default_descriptor);
380 } 356 }
381 357
382 358
383 void ApiFunctionDescriptor::InitializePlatformSpecific( 359 void ApiFunctionDescriptor::InitializePlatformSpecific(
384 CallInterfaceDescriptorData* data) { 360 CallInterfaceDescriptorData* data) {
385 static PlatformInterfaceDescriptor default_descriptor = 361 static PlatformInterfaceDescriptor default_descriptor =
386 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 362 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
387 363
388 Register registers[] = { 364 Register registers[] = {
389 cp, // context
390 x0, // callee 365 x0, // callee
391 x4, // call_data 366 x4, // call_data
392 x2, // holder 367 x2, // holder
393 x1, // api_function_address 368 x1, // api_function_address
394 x3, // actual number of arguments 369 x3, // actual number of arguments
395 }; 370 };
396 data->InitializePlatformSpecific(arraysize(registers), registers, 371 data->InitializePlatformSpecific(arraysize(registers), registers,
397 &default_descriptor); 372 &default_descriptor);
398 } 373 }
399 374
400 375
401 void ApiAccessorDescriptor::InitializePlatformSpecific( 376 void ApiAccessorDescriptor::InitializePlatformSpecific(
402 CallInterfaceDescriptorData* data) { 377 CallInterfaceDescriptorData* data) {
403 static PlatformInterfaceDescriptor default_descriptor = 378 static PlatformInterfaceDescriptor default_descriptor =
404 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS); 379 PlatformInterfaceDescriptor(CAN_INLINE_TARGET_ADDRESS);
405 380
406 Register registers[] = { 381 Register registers[] = {
407 cp, // context
408 x0, // callee 382 x0, // callee
409 x4, // call_data 383 x4, // call_data
410 x2, // holder 384 x2, // holder
411 x1, // api_function_address 385 x1, // api_function_address
412 }; 386 };
413 data->InitializePlatformSpecific(arraysize(registers), registers, 387 data->InitializePlatformSpecific(arraysize(registers), registers,
414 &default_descriptor); 388 &default_descriptor);
415 } 389 }
416 390
417 391
418 void MathRoundVariantDescriptor::InitializePlatformSpecific( 392 void MathRoundVariantDescriptor::InitializePlatformSpecific(
419 CallInterfaceDescriptorData* data) { 393 CallInterfaceDescriptorData* data) {
420 Register registers[] = { 394 Register registers[] = {
421 cp, // context
422 x1, // math rounding function 395 x1, // math rounding function
423 x3, // vector slot id 396 x3, // vector slot id
424 }; 397 };
425 data->InitializePlatformSpecific(arraysize(registers), registers); 398 data->InitializePlatformSpecific(arraysize(registers), registers);
426 } 399 }
427 } // namespace internal 400 } // namespace internal
428 } // namespace v8 401 } // namespace v8
429 402
430 #endif // V8_TARGET_ARCH_ARM64 403 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/lithium-arm64.h » ('j') | src/code-stubs.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698