1d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org// Copyright 2012 the V8 project authors. All rights reserved. 2d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 3d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org// found in the LICENSE file. 4d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 5d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org#include "src/v8.h" 6d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 7d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org#if V8_TARGET_ARCH_IA32 8d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 9d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org#include "src/interface-descriptors.h" 10d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 11d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.orgnamespace v8 { 12d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.orgnamespace internal { 13d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 14ada3a6017e603965f87fa34f6e2fa60379e8d697machenbach@chromium.orgconst Register CallInterfaceDescriptor::ContextRegister() { return esi; } 15d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 16d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 179aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgconst Register LoadDescriptor::ReceiverRegister() { return edx; } 189aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgconst Register LoadDescriptor::NameRegister() { return ecx; } 199aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 209aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 216313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register VectorLoadICTrampolineDescriptor::SlotRegister() { return eax; } 229aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 239aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 249aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgconst Register VectorLoadICDescriptor::VectorRegister() { return ebx; } 259aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 269aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 279aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgconst Register StoreDescriptor::ReceiverRegister() { return edx; } 289aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgconst Register StoreDescriptor::NameRegister() { return ecx; } 299aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgconst Register StoreDescriptor::ValueRegister() { return eax; } 309aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 319aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 326313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register ElementTransitionAndStoreDescriptor::MapRegister() { 336313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org return ebx; 349aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 359aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 369aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 376313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register InstanceofDescriptor::left() { return eax; } 386313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register InstanceofDescriptor::right() { return edx; } 399aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 409aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 416313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register ArgumentsAccessReadDescriptor::index() { return edx; } 426313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register ArgumentsAccessReadDescriptor::parameter_count() { return eax; } 439aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 449aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 456313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register ApiGetterDescriptor::function_address() { return edx; } 469aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 479aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 486313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register MathPowTaggedDescriptor::exponent() { return eax; } 496313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org 506313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org 516313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgconst Register MathPowIntegerDescriptor::exponent() { 526313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org return MathPowTaggedDescriptor::exponent(); 536313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org} 549aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 559aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 569aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) { 579aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, ebx}; 589aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 599aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 609aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 619aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 629aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) { 639aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edi}; 649aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 659aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 669aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 679aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 689aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) { 699aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // ToNumberStub invokes a function, and therefore needs a context. 709aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax}; 719aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 729aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 739aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 749aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 759aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData* data) { 769aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax}; 779aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 789aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 799aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 809aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 819aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid FastCloneShallowArrayDescriptor::Initialize( 829aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 839aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax, ebx, ecx}; 849aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 859aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), Representation::Tagged(), Representation::Smi(), 869aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged()}; 879aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 889aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 899aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 909aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 919aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid FastCloneShallowObjectDescriptor::Initialize( 929aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 939aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax, ebx, ecx, edx}; 949aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 959aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 969aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 979aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 989aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid CreateAllocationSiteDescriptor::Initialize( 999aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 1009aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, ebx, edx}; 1019aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1029aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1039aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1049aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1056313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgvoid StoreArrayLiteralElementDescriptor::Initialize( 1066313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org CallInterfaceDescriptorData* data) { 1076313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org Register registers[] = {esi, ecx, eax}; 1086313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1096313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org} 1106313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org 1116313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org 1129aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 1139aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edi}; 1149aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1159aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1169aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1179aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1186313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.orgvoid CallFunctionWithFeedbackDescriptor::Initialize( 1196313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org CallInterfaceDescriptorData* data) { 1206313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org Register registers[] = {esi, edi, edx}; 1216313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org Representation representations[] = {Representation::Tagged(), 1226313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org Representation::Tagged(), 1236313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org Representation::Smi()}; 1246313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 1256313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org} 1266313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org 1276313e220249748eb26e1ddcee2bbe857fef03b42machenbach@chromium.org 1289aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { 1299aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // eax : number of arguments 1309aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // ebx : feedback vector 1319aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // edx : (only if ebx is not the megamorphic symbol) slot in feedback 1329aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // vector (Smi) 1339aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // edi : constructor function 1349aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // TODO(turbofan): So far we don't gather type feedback and hence skip the 1359aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // slot parameter, but ArrayConstructStub needs the vector to be undefined. 1369aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax, edi, ebx}; 1379aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1389aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1399aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1409aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1419aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid RegExpConstructResultDescriptor::Initialize( 1429aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 1439aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, ecx, ebx, eax}; 1449aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1459aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1469aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1479aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1489aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid TransitionElementsKindDescriptor::Initialize( 1499aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 1509aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax, ebx}; 1519aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1529aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1539aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1549aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1559aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid ArrayConstructorConstantArgCountDescriptor::Initialize( 1569aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 1579aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // register state 1589aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // eax -- number of arguments 1599aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // edi -- function 1609aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // ebx -- allocation site with elements kind 1619aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edi, ebx}; 1629aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1639aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1649aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1659aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1669aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 1679aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // stack param count needs (constructor pointer, and single argument) 1689aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edi, ebx, eax}; 1699aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 1709aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), Representation::Tagged(), 1719aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), Representation::Integer32()}; 1729aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 1739aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1749aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1759aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1769aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid InternalArrayConstructorConstantArgCountDescriptor::Initialize( 1779aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 1789aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // register state 1799aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // eax -- number of arguments 1809aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // edi -- function 1819aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edi}; 1829aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 1839aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1849aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1859aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1869aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid InternalArrayConstructorDescriptor::Initialize( 1879aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 1889aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org // stack param count needs (constructor pointer, and single argument) 1899aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edi, eax}; 1909aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = {Representation::Tagged(), 1919aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), 1929aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Integer32()}; 1939aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 1949aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 1959aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1969aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 1979aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { 1989aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax}; 1999aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 2009aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2019aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2029aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2039aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2049aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, eax}; 2059aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 2069aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2079aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2089aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2099aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2109aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edx, eax}; 2119aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 2129aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2139aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2149aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2159aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid BinaryOpWithAllocationSiteDescriptor::Initialize( 2169aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org CallInterfaceDescriptorData* data) { 2179aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, ecx, edx, eax}; 2189aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 2199aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2209aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2219aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2229aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2239aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = {esi, edx, eax}; 2249aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, NULL); 2259aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2269aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2279aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2289aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2299aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = { 2309aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org esi, // context 2319aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org ecx, // key 2329aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2339aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 2349aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // context 2359aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // key 2369aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2379aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 2389aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2399aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2409aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2419aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2429aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = { 2439aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org esi, // context 2449aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org ecx, // name 2459aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2469aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 2479aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // context 2489aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // name 2499aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2509aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 2519aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2529aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2539aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2549aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2559aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = { 2569aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org esi, // context 2579aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org edx, // name 2589aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2599aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 2609aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // context 2619aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // receiver 2629aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2639aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 2649aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2659aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2669aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2679aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2689aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = { 2699aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org esi, // context 2709aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org edi, // JSFunction 2719aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org eax, // actual number of arguments 2729aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org ebx, // expected number of arguments 2739aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2749aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 2759aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // context 2769aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // JSFunction 2779aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Integer32(), // actual number of arguments 2789aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Integer32(), // expected number of arguments 2799aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2809aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 2819aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org} 2829aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2839aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org 2849aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.orgvoid ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 2859aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Register registers[] = { 2869aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org esi, // context 2879aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org eax, // callee 2889aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org ebx, // call_data 2899aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org ecx, // holder 2909aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org edx, // api_function_address 2919aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2929aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation representations[] = { 2939aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // context 2949aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // callee 2959aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // call_data 2969aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::Tagged(), // holder 2979aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org Representation::External(), // api_function_address 2989aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org }; 2999aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org data->Initialize(arraysize(registers), registers, representations); 300d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org} 301d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org} 302d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org} // namespace v8::internal 303d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org 304d4f11c0cf476dd854eaebec1cbacb1afc7bea18emachenbach@chromium.org#endif // V8_TARGET_ARCH_IA32 305