blob: bfed342eb8c951f42696a4263e4fdc40ca47738a [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// 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
3// found in the LICENSE file.
4
Ben Murdochb8a8cc12014-11-26 15:28:44 +00005#if V8_TARGET_ARCH_X87
6
7#include "src/interface-descriptors.h"
8
9namespace v8 {
10namespace internal {
11
12const Register CallInterfaceDescriptor::ContextRegister() { return esi; }
13
14
15const Register LoadDescriptor::ReceiverRegister() { return edx; }
16const Register LoadDescriptor::NameRegister() { return ecx; }
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000017const Register LoadDescriptor::SlotRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +000018
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000019const Register LoadWithVectorDescriptor::VectorRegister() { return ebx; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +000020
21
22const Register StoreDescriptor::ReceiverRegister() { return edx; }
23const Register StoreDescriptor::NameRegister() { return ecx; }
24const Register StoreDescriptor::ValueRegister() { return eax; }
25
26
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000027const Register VectorStoreICTrampolineDescriptor::SlotRegister() { return edi; }
Emily Bernierd0a1eb72015-03-24 16:35:39 -040028
29
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000030const Register VectorStoreICDescriptor::VectorRegister() { return ebx; }
31
32
33const Register VectorStoreTransitionDescriptor::SlotRegister() {
34 return no_reg;
Ben Murdochb8a8cc12014-11-26 15:28:44 +000035}
36
37
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000038const Register VectorStoreTransitionDescriptor::VectorRegister() { return ebx; }
39
40
41const Register VectorStoreTransitionDescriptor::MapRegister() { return edi; }
42
43
44const Register StoreTransitionDescriptor::MapRegister() { return ebx; }
45
46
47const Register LoadGlobalViaContextDescriptor::SlotRegister() { return ebx; }
48
49
50const Register StoreGlobalViaContextDescriptor::SlotRegister() { return ebx; }
51const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; }
52
53
54const Register InstanceOfDescriptor::LeftRegister() { return edx; }
55const Register InstanceOfDescriptor::RightRegister() { return eax; }
56
57
58const Register StringCompareDescriptor::LeftRegister() { return edx; }
59const Register StringCompareDescriptor::RightRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +000060
61
Ben Murdochb8a8cc12014-11-26 15:28:44 +000062const Register ApiGetterDescriptor::function_address() { return edx; }
63
64
65const Register MathPowTaggedDescriptor::exponent() { return eax; }
66
67
68const Register MathPowIntegerDescriptor::exponent() {
69 return MathPowTaggedDescriptor::exponent();
70}
71
72
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000073const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; }
74const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; }
75
76
77void FastNewClosureDescriptor::InitializePlatformSpecific(
78 CallInterfaceDescriptorData* data) {
79 Register registers[] = {ebx};
80 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +000081}
82
83
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000084void FastNewContextDescriptor::InitializePlatformSpecific(
85 CallInterfaceDescriptorData* data) {
86 Register registers[] = {edi};
87 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +000088}
89
Ben Murdoch097c5b22016-05-18 11:27:45 +010090void FastNewObjectDescriptor::InitializePlatformSpecific(
91 CallInterfaceDescriptorData* data) {
92 Register registers[] = {edi, edx};
93 data->InitializePlatformSpecific(arraysize(registers), registers);
94}
95
96void FastNewRestParameterDescriptor::InitializePlatformSpecific(
97 CallInterfaceDescriptorData* data) {
98 Register registers[] = {edi};
99 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
100}
101
102void FastNewSloppyArgumentsDescriptor::InitializePlatformSpecific(
103 CallInterfaceDescriptorData* data) {
104 Register registers[] = {edi};
105 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
106}
107
108void FastNewStrictArgumentsDescriptor::InitializePlatformSpecific(
109 CallInterfaceDescriptorData* data) {
110 Register registers[] = {edi};
111 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
112}
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000113
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000114void ToNumberDescriptor::InitializePlatformSpecific(
115 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000116 // ToNumberStub invokes a function, and therefore needs a context.
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000117 Register registers[] = {eax};
118 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000119}
120
121
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000122// static
123const Register ToLengthDescriptor::ReceiverRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000124
125
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000126// static
127const Register ToStringDescriptor::ReceiverRegister() { return eax; }
128
129
130// static
Ben Murdoch097c5b22016-05-18 11:27:45 +0100131const Register ToNameDescriptor::ReceiverRegister() { return eax; }
132
133
134// static
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000135const Register ToObjectDescriptor::ReceiverRegister() { return eax; }
136
137
138void NumberToStringDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000139 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000140 Register registers[] = {eax};
141 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000142}
143
144
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000145void TypeofDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000146 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000147 Register registers[] = {ebx};
148 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000149}
150
151
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000152void FastCloneRegExpDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000153 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000154 Register registers[] = {edi, eax, ecx, edx};
155 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000156}
157
158
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000159void FastCloneShallowArrayDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000160 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000161 Register registers[] = {eax, ebx, ecx};
162 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000163}
164
165
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000166void FastCloneShallowObjectDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000167 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000168 Register registers[] = {eax, ebx, ecx, edx};
169 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000170}
171
172
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000173void CreateAllocationSiteDescriptor::InitializePlatformSpecific(
174 CallInterfaceDescriptorData* data) {
175 Register registers[] = {ebx, edx};
176 data->InitializePlatformSpecific(arraysize(registers), registers);
177}
178
179
180void CreateWeakCellDescriptor::InitializePlatformSpecific(
181 CallInterfaceDescriptorData* data) {
182 Register registers[] = {ebx, edx, edi};
183 data->InitializePlatformSpecific(arraysize(registers), registers);
184}
185
186
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000187void CallFunctionDescriptor::InitializePlatformSpecific(
188 CallInterfaceDescriptorData* data) {
189 Register registers[] = {edi};
190 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
191}
192
193
194void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
195 CallInterfaceDescriptorData* data) {
196 Register registers[] = {edi, edx};
197 data->InitializePlatformSpecific(arraysize(registers), registers);
198}
199
200
201void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
202 CallInterfaceDescriptorData* data) {
203 Register registers[] = {edi, edx, ebx};
204 data->InitializePlatformSpecific(arraysize(registers), registers);
205}
206
207
208void CallConstructDescriptor::InitializePlatformSpecific(
209 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000210 // eax : number of arguments
211 // ebx : feedback vector
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000212 // ecx : new target (for IsSuperConstructorCall)
213 // edx : slot in feedback vector (Smi, for RecordCallTarget)
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000214 // edi : constructor function
215 // TODO(turbofan): So far we don't gather type feedback and hence skip the
216 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000217 Register registers[] = {eax, edi, ecx, ebx};
218 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000219}
220
221
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000222void CallTrampolineDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000223 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000224 // eax : number of arguments
225 // edi : the target to call
226 Register registers[] = {edi, eax};
227 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000228}
229
230
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000231void ConstructStubDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000232 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000233 // eax : number of arguments
234 // edx : the new target
235 // edi : the target to call
236 // ebx : allocation site or undefined
237 Register registers[] = {edi, edx, eax, ebx};
238 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000239}
240
241
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000242void ConstructTrampolineDescriptor::InitializePlatformSpecific(
243 CallInterfaceDescriptorData* data) {
244 // eax : number of arguments
245 // edx : the new target
246 // edi : the target to call
247 Register registers[] = {edi, edx, eax};
248 data->InitializePlatformSpecific(arraysize(registers), registers);
249}
250
251
252void RegExpConstructResultDescriptor::InitializePlatformSpecific(
253 CallInterfaceDescriptorData* data) {
254 Register registers[] = {ecx, ebx, eax};
255 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
256}
257
258
259void TransitionElementsKindDescriptor::InitializePlatformSpecific(
260 CallInterfaceDescriptorData* data) {
261 Register registers[] = {eax, ebx};
262 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
263}
264
265
266void AllocateHeapNumberDescriptor::InitializePlatformSpecific(
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400267 CallInterfaceDescriptorData* data) {
268 // register state
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000269 data->InitializePlatformSpecific(0, nullptr, nullptr);
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400270}
271
272
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000273void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
274 CallInterfaceDescriptorData* data) {
275 Register registers[] = {eax};
276 data->InitializePlatformSpecific(arraysize(registers), registers);
277}
278
279
280void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000281 CallInterfaceDescriptorData* data) {
282 // register state
283 // eax -- number of arguments
284 // edi -- function
285 // ebx -- allocation site with elements kind
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000286 Register registers[] = {edi, ebx};
287 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000288}
289
290
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000291void ArrayConstructorDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000292 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000293 // stack param count needs (constructor pointer, and single argument)
294 Register registers[] = {edi, ebx, eax};
295 data->InitializePlatformSpecific(arraysize(registers), registers);
296}
297
298
299void InternalArrayConstructorConstantArgCountDescriptor::
300 InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000301 // register state
302 // eax -- number of arguments
303 // edi -- function
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000304 Register registers[] = {edi};
305 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000306}
307
308
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000309void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000310 CallInterfaceDescriptorData* data) {
311 // stack param count needs (constructor pointer, and single argument)
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000312 Register registers[] = {edi, eax};
313 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000314}
315
316
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000317void CompareDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000318 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000319 Register registers[] = {edx, eax};
320 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000321}
322
323
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000324void CompareNilDescriptor::InitializePlatformSpecific(
325 CallInterfaceDescriptorData* data) {
326 Register registers[] = {eax};
327 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000328}
329
330
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000331void ToBooleanDescriptor::InitializePlatformSpecific(
332 CallInterfaceDescriptorData* data) {
333 Register registers[] = {eax};
334 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
335}
336
337
338void BinaryOpDescriptor::InitializePlatformSpecific(
339 CallInterfaceDescriptorData* data) {
340 Register registers[] = {edx, eax};
341 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
342}
343
344
345void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific(
346 CallInterfaceDescriptorData* data) {
347 Register registers[] = {ecx, edx, eax};
348 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
349}
350
351
352void StringAddDescriptor::InitializePlatformSpecific(
353 CallInterfaceDescriptorData* data) {
354 Register registers[] = {edx, eax};
355 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
356}
357
358
359void KeyedDescriptor::InitializePlatformSpecific(
360 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000361 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000362 ecx, // key
363 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000364 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000365}
366
367
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000368void NamedDescriptor::InitializePlatformSpecific(
369 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000370 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000371 ecx, // name
372 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000373 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000374}
375
376
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000377void CallHandlerDescriptor::InitializePlatformSpecific(
378 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000379 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000380 edx, // name
381 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000382 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000383}
384
385
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000386void ArgumentAdaptorDescriptor::InitializePlatformSpecific(
387 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000388 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000389 edi, // JSFunction
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000390 edx, // the new target
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000391 eax, // actual number of arguments
392 ebx, // expected number of arguments
393 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000394 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000395}
396
397
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000398void ApiFunctionDescriptor::InitializePlatformSpecific(
399 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000400 Register registers[] = {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000401 edi, // callee
402 ebx, // call_data
403 ecx, // holder
404 edx, // api_function_address
405 eax, // actual number of arguments
406 };
407 data->InitializePlatformSpecific(arraysize(registers), registers);
408}
409
410
411void ApiAccessorDescriptor::InitializePlatformSpecific(
412 CallInterfaceDescriptorData* data) {
413 Register registers[] = {
414 edi, // callee
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000415 ebx, // call_data
416 ecx, // holder
417 edx, // api_function_address
418 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000419 data->InitializePlatformSpecific(arraysize(registers), registers);
420}
421
Ben Murdoch097c5b22016-05-18 11:27:45 +0100422void InterpreterDispatchDescriptor::InitializePlatformSpecific(
423 CallInterfaceDescriptorData* data) {
424 Register registers[] = {
425 kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
426 kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister};
427 data->InitializePlatformSpecific(arraysize(registers), registers);
428}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000429
430void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific(
431 CallInterfaceDescriptorData* data) {
432 Register registers[] = {
433 eax, // argument count (not including receiver)
434 ebx, // address of first argument
435 edi // the target callable to be call
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000436 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000437 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000438}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000439
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000440void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific(
441 CallInterfaceDescriptorData* data) {
442 Register registers[] = {
443 eax, // argument count (not including receiver)
444 edx, // new target
445 edi, // constructor
446 ebx, // address of first argument
447 };
448 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000449}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000450
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000451void InterpreterCEntryDescriptor::InitializePlatformSpecific(
452 CallInterfaceDescriptorData* data) {
453 Register registers[] = {
454 eax, // argument count (argc)
455 ecx, // address of first argument (argv)
456 ebx // the runtime function to call
457 };
458 data->InitializePlatformSpecific(arraysize(registers), registers);
459}
460
461} // namespace internal
462} // namespace v8
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000463
464#endif // V8_TARGET_ARCH_X87