blob: 260d8716a0f0ad16a5167a9378a2a539d8c1e4c9 [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
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000054const Register StringCompareDescriptor::LeftRegister() { return edx; }
55const Register StringCompareDescriptor::RightRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +000056
Ben Murdochc5610432016-08-08 18:44:38 +010057const Register ApiGetterDescriptor::HolderRegister() { return ecx; }
58const Register ApiGetterDescriptor::CallbackRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +000059
60const Register MathPowTaggedDescriptor::exponent() { return eax; }
61
62
63const Register MathPowIntegerDescriptor::exponent() {
64 return MathPowTaggedDescriptor::exponent();
65}
66
67
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000068const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; }
69const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; }
70
Ben Murdochc5610432016-08-08 18:44:38 +010071const Register HasPropertyDescriptor::ObjectRegister() { return eax; }
72const Register HasPropertyDescriptor::KeyRegister() { return ebx; }
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000073
74void FastNewClosureDescriptor::InitializePlatformSpecific(
75 CallInterfaceDescriptorData* data) {
76 Register registers[] = {ebx};
77 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +000078}
79
80
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000081void FastNewContextDescriptor::InitializePlatformSpecific(
82 CallInterfaceDescriptorData* data) {
83 Register registers[] = {edi};
84 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +000085}
86
Ben Murdoch097c5b22016-05-18 11:27:45 +010087void FastNewObjectDescriptor::InitializePlatformSpecific(
88 CallInterfaceDescriptorData* data) {
89 Register registers[] = {edi, edx};
90 data->InitializePlatformSpecific(arraysize(registers), registers);
91}
92
93void FastNewRestParameterDescriptor::InitializePlatformSpecific(
94 CallInterfaceDescriptorData* data) {
95 Register registers[] = {edi};
96 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
97}
98
99void FastNewSloppyArgumentsDescriptor::InitializePlatformSpecific(
100 CallInterfaceDescriptorData* data) {
101 Register registers[] = {edi};
102 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
103}
104
105void FastNewStrictArgumentsDescriptor::InitializePlatformSpecific(
106 CallInterfaceDescriptorData* data) {
107 Register registers[] = {edi};
108 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
109}
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000110
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000111
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000112// static
Ben Murdochda12d292016-06-02 14:46:10 +0100113const Register TypeConversionDescriptor::ArgumentRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000114
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000115void TypeofDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000116 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000117 Register registers[] = {ebx};
118 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000119}
120
121
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000122void FastCloneRegExpDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000123 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000124 Register registers[] = {edi, eax, ecx, edx};
125 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000126}
127
128
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000129void FastCloneShallowArrayDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000130 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000131 Register registers[] = {eax, ebx, ecx};
132 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000133}
134
135
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000136void FastCloneShallowObjectDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000137 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000138 Register registers[] = {eax, ebx, ecx, edx};
139 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000140}
141
142
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000143void CreateAllocationSiteDescriptor::InitializePlatformSpecific(
144 CallInterfaceDescriptorData* data) {
145 Register registers[] = {ebx, edx};
146 data->InitializePlatformSpecific(arraysize(registers), registers);
147}
148
149
150void CreateWeakCellDescriptor::InitializePlatformSpecific(
151 CallInterfaceDescriptorData* data) {
152 Register registers[] = {ebx, edx, edi};
153 data->InitializePlatformSpecific(arraysize(registers), registers);
154}
155
156
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000157void CallFunctionDescriptor::InitializePlatformSpecific(
158 CallInterfaceDescriptorData* data) {
159 Register registers[] = {edi};
160 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
161}
162
163
164void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
165 CallInterfaceDescriptorData* data) {
166 Register registers[] = {edi, edx};
167 data->InitializePlatformSpecific(arraysize(registers), registers);
168}
169
170
171void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
172 CallInterfaceDescriptorData* data) {
173 Register registers[] = {edi, edx, ebx};
174 data->InitializePlatformSpecific(arraysize(registers), registers);
175}
176
177
178void CallConstructDescriptor::InitializePlatformSpecific(
179 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000180 // eax : number of arguments
181 // ebx : feedback vector
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000182 // ecx : new target (for IsSuperConstructorCall)
183 // edx : slot in feedback vector (Smi, for RecordCallTarget)
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000184 // edi : constructor function
185 // TODO(turbofan): So far we don't gather type feedback and hence skip the
186 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000187 Register registers[] = {eax, edi, ecx, ebx};
188 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000189}
190
191
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000192void CallTrampolineDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000193 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000194 // eax : number of arguments
195 // edi : the target to call
196 Register registers[] = {edi, eax};
197 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000198}
199
200
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000201void ConstructStubDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000202 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000203 // eax : number of arguments
204 // edx : the new target
205 // edi : the target to call
206 // ebx : allocation site or undefined
207 Register registers[] = {edi, edx, eax, ebx};
208 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000209}
210
211
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000212void ConstructTrampolineDescriptor::InitializePlatformSpecific(
213 CallInterfaceDescriptorData* data) {
214 // eax : number of arguments
215 // edx : the new target
216 // edi : the target to call
217 Register registers[] = {edi, edx, eax};
218 data->InitializePlatformSpecific(arraysize(registers), registers);
219}
220
221
222void RegExpConstructResultDescriptor::InitializePlatformSpecific(
223 CallInterfaceDescriptorData* data) {
224 Register registers[] = {ecx, ebx, eax};
225 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
226}
227
228
229void TransitionElementsKindDescriptor::InitializePlatformSpecific(
230 CallInterfaceDescriptorData* data) {
231 Register registers[] = {eax, ebx};
232 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
233}
234
235
236void AllocateHeapNumberDescriptor::InitializePlatformSpecific(
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400237 CallInterfaceDescriptorData* data) {
238 // register state
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000239 data->InitializePlatformSpecific(0, nullptr, nullptr);
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400240}
241
Ben Murdochda12d292016-06-02 14:46:10 +0100242#define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \
243 void Allocate##Type##Descriptor::InitializePlatformSpecific( \
244 CallInterfaceDescriptorData* data) { \
245 data->InitializePlatformSpecific(0, nullptr, nullptr); \
246 }
247SIMD128_TYPES(SIMD128_ALLOC_DESC)
248#undef SIMD128_ALLOC_DESC
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400249
Ben Murdochc5610432016-08-08 18:44:38 +0100250void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000251 CallInterfaceDescriptorData* data) {
Ben Murdochc5610432016-08-08 18:44:38 +0100252 // register state
253 // eax -- number of arguments
254 // edi -- function
255 // ebx -- allocation site with elements kind
256 Register registers[] = {edi, ebx, eax};
257 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000258}
259
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000260void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000261 CallInterfaceDescriptorData* data) {
262 // register state
263 // eax -- number of arguments
264 // edi -- function
265 // ebx -- allocation site with elements kind
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000266 Register registers[] = {edi, ebx};
267 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000268}
269
270
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000271void ArrayConstructorDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000272 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000273 // stack param count needs (constructor pointer, and single argument)
274 Register registers[] = {edi, ebx, eax};
275 data->InitializePlatformSpecific(arraysize(registers), registers);
276}
277
278
279void InternalArrayConstructorConstantArgCountDescriptor::
280 InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000281 // register state
282 // eax -- number of arguments
283 // edi -- function
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000284 Register registers[] = {edi};
285 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000286}
287
288
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000289void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000290 CallInterfaceDescriptorData* data) {
291 // stack param count needs (constructor pointer, and single argument)
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000292 Register registers[] = {edi, eax};
293 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000294}
295
Ben Murdochda12d292016-06-02 14:46:10 +0100296void FastArrayPushDescriptor::InitializePlatformSpecific(
297 CallInterfaceDescriptorData* data) {
298 // stack param count needs (arg count)
299 Register registers[] = {eax};
300 data->InitializePlatformSpecific(arraysize(registers), registers);
301}
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000302
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000303void CompareDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000304 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000305 Register registers[] = {edx, eax};
306 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000307}
308
309
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000310void BinaryOpDescriptor::InitializePlatformSpecific(
311 CallInterfaceDescriptorData* data) {
312 Register registers[] = {edx, eax};
313 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
314}
315
316
317void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific(
318 CallInterfaceDescriptorData* data) {
319 Register registers[] = {ecx, edx, eax};
320 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
321}
322
Ben Murdochc5610432016-08-08 18:44:38 +0100323void CountOpDescriptor::InitializePlatformSpecific(
324 CallInterfaceDescriptorData* data) {
325 Register registers[] = {eax};
326 data->InitializePlatformSpecific(arraysize(registers), registers);
327}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000328
329void StringAddDescriptor::InitializePlatformSpecific(
330 CallInterfaceDescriptorData* data) {
331 Register registers[] = {edx, eax};
332 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
333}
334
335
336void KeyedDescriptor::InitializePlatformSpecific(
337 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000338 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000339 ecx, // key
340 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000341 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000342}
343
344
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000345void NamedDescriptor::InitializePlatformSpecific(
346 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000347 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000348 ecx, // name
349 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000350 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000351}
352
353
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000354void CallHandlerDescriptor::InitializePlatformSpecific(
355 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000356 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000357 edx, // name
358 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000359 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000360}
361
362
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000363void ArgumentAdaptorDescriptor::InitializePlatformSpecific(
364 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000365 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000366 edi, // JSFunction
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000367 edx, // the new target
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000368 eax, // actual number of arguments
369 ebx, // expected number of arguments
370 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000371 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000372}
373
Ben Murdochda12d292016-06-02 14:46:10 +0100374void ApiCallbackDescriptorBase::InitializePlatformSpecific(
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000375 CallInterfaceDescriptorData* data) {
376 Register registers[] = {
377 edi, // callee
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000378 ebx, // call_data
379 ecx, // holder
380 edx, // api_function_address
381 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000382 data->InitializePlatformSpecific(arraysize(registers), registers);
383}
384
Ben Murdoch097c5b22016-05-18 11:27:45 +0100385void InterpreterDispatchDescriptor::InitializePlatformSpecific(
386 CallInterfaceDescriptorData* data) {
387 Register registers[] = {
Ben Murdochc5610432016-08-08 18:44:38 +0100388 kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
389 kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
Ben Murdoch097c5b22016-05-18 11:27:45 +0100390 data->InitializePlatformSpecific(arraysize(registers), registers);
391}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000392
393void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific(
394 CallInterfaceDescriptorData* data) {
395 Register registers[] = {
396 eax, // argument count (not including receiver)
397 ebx, // address of first argument
398 edi // the target callable to be call
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000399 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000400 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000401}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000402
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000403void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific(
404 CallInterfaceDescriptorData* data) {
405 Register registers[] = {
406 eax, // argument count (not including receiver)
407 edx, // new target
408 edi, // constructor
409 ebx, // address of first argument
410 };
411 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000412}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000413
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000414void InterpreterCEntryDescriptor::InitializePlatformSpecific(
415 CallInterfaceDescriptorData* data) {
416 Register registers[] = {
417 eax, // argument count (argc)
418 ecx, // address of first argument (argv)
419 ebx // the runtime function to call
420 };
421 data->InitializePlatformSpecific(arraysize(registers), registers);
422}
423
Ben Murdochc5610432016-08-08 18:44:38 +0100424void ResumeGeneratorDescriptor::InitializePlatformSpecific(
425 CallInterfaceDescriptorData* data) {
426 Register registers[] = {
427 eax, // the value to pass to the generator
428 ebx, // the JSGeneratorObject to resume
429 edx // the resume mode (tagged)
430 };
431 data->InitializePlatformSpecific(arraysize(registers), registers);
432}
433
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000434} // namespace internal
435} // namespace v8
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000436
437#endif // V8_TARGET_ARCH_X87