blob: 8a877b1a820ec6027acbf87617591c583a34e78b [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_IA32
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
99
100void FastNewSloppyArgumentsDescriptor::InitializePlatformSpecific(
101 CallInterfaceDescriptorData* data) {
102 Register registers[] = {edi};
103 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
104}
105
106
107void FastNewStrictArgumentsDescriptor::InitializePlatformSpecific(
108 CallInterfaceDescriptorData* data) {
109 Register registers[] = {edi};
110 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
111}
112
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000113
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000114// static
Ben Murdochda12d292016-06-02 14:46:10 +0100115const Register TypeConversionDescriptor::ArgumentRegister() { return eax; }
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000116
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000117void TypeofDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000118 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000119 Register registers[] = {ebx};
120 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000121}
122
123
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000124void FastCloneRegExpDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000125 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000126 Register registers[] = {edi, eax, ecx, edx};
127 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000128}
129
130
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000131void FastCloneShallowArrayDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000132 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000133 Register registers[] = {eax, ebx, ecx};
134 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000135}
136
137
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000138void FastCloneShallowObjectDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000139 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000140 Register registers[] = {eax, ebx, ecx, edx};
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 CreateAllocationSiteDescriptor::InitializePlatformSpecific(
146 CallInterfaceDescriptorData* data) {
147 Register registers[] = {ebx, edx};
148 data->InitializePlatformSpecific(arraysize(registers), registers);
149}
150
151
152void CreateWeakCellDescriptor::InitializePlatformSpecific(
153 CallInterfaceDescriptorData* data) {
154 Register registers[] = {ebx, edx, edi};
155 data->InitializePlatformSpecific(arraysize(registers), registers);
156}
157
158
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000159void CallFunctionDescriptor::InitializePlatformSpecific(
160 CallInterfaceDescriptorData* data) {
161 Register registers[] = {edi};
162 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
163}
164
165
166void CallFunctionWithFeedbackDescriptor::InitializePlatformSpecific(
167 CallInterfaceDescriptorData* data) {
168 Register registers[] = {edi, edx};
169 data->InitializePlatformSpecific(arraysize(registers), registers);
170}
171
172
173void CallFunctionWithFeedbackAndVectorDescriptor::InitializePlatformSpecific(
174 CallInterfaceDescriptorData* data) {
175 Register registers[] = {edi, edx, ebx};
176 data->InitializePlatformSpecific(arraysize(registers), registers);
177}
178
179
180void CallConstructDescriptor::InitializePlatformSpecific(
181 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000182 // eax : number of arguments
183 // ebx : feedback vector
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000184 // ecx : new target (for IsSuperConstructorCall)
185 // edx : slot in feedback vector (Smi, for RecordCallTarget)
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000186 // edi : constructor function
187 // TODO(turbofan): So far we don't gather type feedback and hence skip the
188 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000189 Register registers[] = {eax, edi, ecx, ebx};
190 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000191}
192
193
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000194void CallTrampolineDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000195 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000196 // eax : number of arguments
197 // edi : the target to call
198 Register registers[] = {edi, eax};
199 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000200}
201
202
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000203void ConstructStubDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000204 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000205 // eax : number of arguments
206 // edx : the new target
207 // edi : the target to call
208 // ebx : allocation site or undefined
209 Register registers[] = {edi, edx, eax, ebx};
210 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000211}
212
213
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000214void ConstructTrampolineDescriptor::InitializePlatformSpecific(
215 CallInterfaceDescriptorData* data) {
216 // eax : number of arguments
217 // edx : the new target
218 // edi : the target to call
219 Register registers[] = {edi, edx, eax};
220 data->InitializePlatformSpecific(arraysize(registers), registers);
221}
222
223
224void RegExpConstructResultDescriptor::InitializePlatformSpecific(
225 CallInterfaceDescriptorData* data) {
226 Register registers[] = {ecx, ebx, eax};
227 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
228}
229
230
231void TransitionElementsKindDescriptor::InitializePlatformSpecific(
232 CallInterfaceDescriptorData* data) {
233 Register registers[] = {eax, ebx};
234 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
235}
236
237
238void AllocateHeapNumberDescriptor::InitializePlatformSpecific(
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400239 CallInterfaceDescriptorData* data) {
240 // register state
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000241 data->InitializePlatformSpecific(0, nullptr, nullptr);
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400242}
243
Ben Murdochda12d292016-06-02 14:46:10 +0100244#define SIMD128_ALLOC_DESC(TYPE, Type, type, lane_count, lane_type) \
245 void Allocate##Type##Descriptor::InitializePlatformSpecific( \
246 CallInterfaceDescriptorData* data) { \
247 data->InitializePlatformSpecific(0, nullptr, nullptr); \
248 }
249SIMD128_TYPES(SIMD128_ALLOC_DESC)
250#undef SIMD128_ALLOC_DESC
Emily Bernierd0a1eb72015-03-24 16:35:39 -0400251
Ben Murdochc5610432016-08-08 18:44:38 +0100252void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000253 CallInterfaceDescriptorData* data) {
Ben Murdochc5610432016-08-08 18:44:38 +0100254 // register state
255 // eax -- number of arguments
256 // edi -- function
257 // ebx -- allocation site with elements kind
258 Register registers[] = {edi, ebx, eax};
259 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000260}
261
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000262void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000263 CallInterfaceDescriptorData* data) {
264 // register state
265 // eax -- number of arguments
266 // edi -- function
267 // ebx -- allocation site with elements kind
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000268 Register registers[] = {edi, ebx};
269 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000270}
271
272
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000273void ArrayConstructorDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000274 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000275 // stack param count needs (constructor pointer, and single argument)
276 Register registers[] = {edi, ebx, eax};
277 data->InitializePlatformSpecific(arraysize(registers), registers);
278}
279
280
281void InternalArrayConstructorConstantArgCountDescriptor::
282 InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000283 // register state
284 // eax -- number of arguments
285 // edi -- function
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000286 Register registers[] = {edi};
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 InternalArrayConstructorDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000292 CallInterfaceDescriptorData* data) {
293 // stack param count needs (constructor pointer, and single argument)
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000294 Register registers[] = {edi, eax};
295 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000296}
297
Ben Murdochda12d292016-06-02 14:46:10 +0100298void FastArrayPushDescriptor::InitializePlatformSpecific(
299 CallInterfaceDescriptorData* data) {
300 // stack param count needs (arg count)
301 Register registers[] = {eax};
302 data->InitializePlatformSpecific(arraysize(registers), registers);
303}
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000304
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000305void CompareDescriptor::InitializePlatformSpecific(
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000306 CallInterfaceDescriptorData* data) {
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000307 Register registers[] = {edx, eax};
308 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000309}
310
311
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000312void BinaryOpDescriptor::InitializePlatformSpecific(
313 CallInterfaceDescriptorData* data) {
314 Register registers[] = {edx, eax};
315 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
316}
317
318
319void BinaryOpWithAllocationSiteDescriptor::InitializePlatformSpecific(
320 CallInterfaceDescriptorData* data) {
321 Register registers[] = {ecx, edx, eax};
322 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
323}
324
Ben Murdochc5610432016-08-08 18:44:38 +0100325void CountOpDescriptor::InitializePlatformSpecific(
326 CallInterfaceDescriptorData* data) {
327 Register registers[] = {eax};
328 data->InitializePlatformSpecific(arraysize(registers), registers);
329}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000330
331void StringAddDescriptor::InitializePlatformSpecific(
332 CallInterfaceDescriptorData* data) {
333 Register registers[] = {edx, eax};
334 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
335}
336
337
338void KeyedDescriptor::InitializePlatformSpecific(
339 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000340 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000341 ecx, // key
342 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000343 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000344}
345
346
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000347void NamedDescriptor::InitializePlatformSpecific(
348 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000349 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000350 ecx, // name
351 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000352 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000353}
354
355
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000356void CallHandlerDescriptor::InitializePlatformSpecific(
357 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000358 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000359 edx, // name
360 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000361 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000362}
363
364
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000365void ArgumentAdaptorDescriptor::InitializePlatformSpecific(
366 CallInterfaceDescriptorData* data) {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000367 Register registers[] = {
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000368 edi, // JSFunction
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000369 edx, // the new target
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000370 eax, // actual number of arguments
371 ebx, // expected number of arguments
372 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000373 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000374}
375
Ben Murdochda12d292016-06-02 14:46:10 +0100376void ApiCallbackDescriptorBase::InitializePlatformSpecific(
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000377 CallInterfaceDescriptorData* data) {
378 Register registers[] = {
379 edi, // callee
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000380 ebx, // call_data
381 ecx, // holder
382 edx, // api_function_address
383 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000384 data->InitializePlatformSpecific(arraysize(registers), registers);
385}
386
Ben Murdoch097c5b22016-05-18 11:27:45 +0100387void InterpreterDispatchDescriptor::InitializePlatformSpecific(
388 CallInterfaceDescriptorData* data) {
389 Register registers[] = {
Ben Murdochc5610432016-08-08 18:44:38 +0100390 kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
391 kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
Ben Murdoch097c5b22016-05-18 11:27:45 +0100392 data->InitializePlatformSpecific(arraysize(registers), registers);
393}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000394
395void InterpreterPushArgsAndCallDescriptor::InitializePlatformSpecific(
396 CallInterfaceDescriptorData* data) {
397 Register registers[] = {
398 eax, // argument count (not including receiver)
399 ebx, // address of first argument
400 edi // the target callable to be call
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000401 };
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000402 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000403}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000404
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000405void InterpreterPushArgsAndConstructDescriptor::InitializePlatformSpecific(
406 CallInterfaceDescriptorData* data) {
407 Register registers[] = {
408 eax, // argument count (not including receiver)
409 edx, // new target
410 edi, // constructor
411 ebx, // address of first argument
412 };
413 data->InitializePlatformSpecific(arraysize(registers), registers);
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000414}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000415
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000416void InterpreterCEntryDescriptor::InitializePlatformSpecific(
417 CallInterfaceDescriptorData* data) {
418 Register registers[] = {
419 eax, // argument count (argc)
420 ecx, // address of first argument (argv)
421 ebx // the runtime function to call
422 };
423 data->InitializePlatformSpecific(arraysize(registers), registers);
424}
425
Ben Murdochc5610432016-08-08 18:44:38 +0100426void ResumeGeneratorDescriptor::InitializePlatformSpecific(
427 CallInterfaceDescriptorData* data) {
428 Register registers[] = {
429 eax, // the value to pass to the generator
430 ebx, // the JSGeneratorObject to resume
431 edx // the resume mode (tagged)
432 };
433 data->InitializePlatformSpecific(arraysize(registers), registers);
434}
435
Ben Murdoch4a90d5f2016-03-22 12:00:34 +0000436} // namespace internal
437} // namespace v8
Ben Murdochb8a8cc12014-11-26 15:28:44 +0000438
439#endif // V8_TARGET_ARCH_IA32