1b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Copyright 2012 the V8 project authors. All rights reserved. 2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// found in the LICENSE file. 4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/v8.h" 6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#if V8_TARGET_ARCH_MIPS64 8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#include "src/interface-descriptors.h" 10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochnamespace v8 { 12b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochnamespace internal { 13b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 14b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register CallInterfaceDescriptor::ContextRegister() { return cp; } 15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 16b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 17b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register LoadDescriptor::ReceiverRegister() { return a1; } 18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register LoadDescriptor::NameRegister() { return a2; } 19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register VectorLoadICTrampolineDescriptor::SlotRegister() { return a0; } 22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 23b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 24b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register VectorLoadICDescriptor::VectorRegister() { return a3; } 25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register StoreDescriptor::ReceiverRegister() { return a1; } 28b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register StoreDescriptor::NameRegister() { return a2; } 29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register StoreDescriptor::ValueRegister() { return a0; } 30b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 31b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 32b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register ElementTransitionAndStoreDescriptor::MapRegister() { return a3; } 33b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 34b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 35b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register InstanceofDescriptor::left() { return a0; } 36b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register InstanceofDescriptor::right() { return a1; } 37b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 38b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 39b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register ArgumentsAccessReadDescriptor::index() { return a1; } 40b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register ArgumentsAccessReadDescriptor::parameter_count() { return a0; } 41b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 42b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 43b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register ApiGetterDescriptor::function_address() { return a2; } 44b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 45b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 46b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register MathPowTaggedDescriptor::exponent() { return a2; } 47b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 48b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 49b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochconst Register MathPowIntegerDescriptor::exponent() { 50b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch return MathPowTaggedDescriptor::exponent(); 51b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 52b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 53b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 54b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) { 55b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a2}; 56b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 57b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 58b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 59b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 60b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) { 61b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1}; 62b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 63b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 64b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 65b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 66b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) { 67b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a0}; 68b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 69b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 70b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 71b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 72b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData* data) { 73b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a0}; 74b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 75b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 76b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 77b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 78b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FastCloneShallowArrayDescriptor::Initialize( 79b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 80b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a3, a2, a1}; 81b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 82b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), Representation::Tagged(), Representation::Smi(), 83b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged()}; 84b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 85b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 86b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 87b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 88b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid FastCloneShallowObjectDescriptor::Initialize( 89b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 90b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a3, a2, a1, a0}; 91b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 92b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 93b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 94b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 95b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CreateAllocationSiteDescriptor::Initialize( 96b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 97b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a2, a3}; 98b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 99b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 100b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 101b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 102b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid StoreArrayLiteralElementDescriptor::Initialize( 103b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 104b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a3, a0}; 105b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 106b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 107b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 108b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 109b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CallFunctionWithFeedbackDescriptor::Initialize( 110b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 111b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1, a3}; 112b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = {Representation::Tagged(), 113b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), 114b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Smi()}; 115b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 116b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 117b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 118b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 119b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 120b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1}; 121b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 122b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 123b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 124b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 125b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { 126b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a0 : number of arguments 127b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a1 : the function to call 128b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a2 : feedback vector 129b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a3 : (only if a2 is not the megamorphic symbol) slot in feedback 130b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // vector (Smi) 131b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // TODO(turbofan): So far we don't gather type feedback and hence skip the 132b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // slot parameter, but ArrayConstructStub needs the vector to be undefined. 133b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a0, a1, a2}; 134b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 135b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 136b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 137b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 138b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid RegExpConstructResultDescriptor::Initialize( 139b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 140b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a2, a1, a0}; 141b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 142b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 143b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 144b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 145b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid TransitionElementsKindDescriptor::Initialize( 146b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 147b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a0, a1}; 148b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 149b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 150b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 151b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 152b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ArrayConstructorConstantArgCountDescriptor::Initialize( 153b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 154b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // register state 155b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // cp -- context 156b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a0 -- number of arguments 157b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a1 -- function 158b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a2 -- allocation site with elements kind 159b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1, a2}; 160b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 161b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 162b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 163b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 164b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 165b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // stack param count needs (constructor pointer, and single argument) 166b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1, a2, a0}; 167b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 168b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), Representation::Tagged(), 169b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), Representation::Integer32()}; 170b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 171b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 172b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 173b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 174b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid InternalArrayConstructorConstantArgCountDescriptor::Initialize( 175b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 176b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // register state 177b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // cp -- context 178b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a0 -- number of arguments 179b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // a1 -- constructor function 180b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1}; 181b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 182b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 183b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 184b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 185b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid InternalArrayConstructorDescriptor::Initialize( 186b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 187b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch // stack param count needs (constructor pointer, and single argument) 188b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1, a0}; 189b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = {Representation::Tagged(), 190b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), 191b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Integer32()}; 192b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 193b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 194b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 195b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 196b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) { 197b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a0}; 198b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 199b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 200b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 201b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 202b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) { 203b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a0}; 204b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 205b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 206b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 207b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 208b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) { 209b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1, a0}; 210b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 211b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 212b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 213b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 214b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid BinaryOpWithAllocationSiteDescriptor::Initialize( 215b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch CallInterfaceDescriptorData* data) { 216b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a2, a1, a0}; 217b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 218b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 219b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 220b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 221b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) { 222b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = {cp, a1, a0}; 223b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, NULL); 224b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 225b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 226b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 227b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) { 228b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = { 229b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch cp, // context 230b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a2, // key 231b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 232b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 233b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // context 234b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // key 235b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 236b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 237b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 238b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 239b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 240b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) { 241b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = { 242b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch cp, // context 243b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a2, // name 244b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 245b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 246b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // context 247b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // name 248b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 249b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 250b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 251b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 252b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 253b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) { 254b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = { 255b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch cp, // context 256b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a0, // receiver 257b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 258b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 259b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // context 260b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // receiver 261b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 262b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 263b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 264b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 265b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 266b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData* data) { 267b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = { 268b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch cp, // context 269b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a1, // JSFunction 270b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a0, // actual number of arguments 271b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a2, // expected number of arguments 272b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 273b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 274b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // context 275b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // JSFunction 276b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Integer32(), // actual number of arguments 277b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Integer32(), // expected number of arguments 278b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 279b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 280b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 281b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 282b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 283b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvoid ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 284b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Register registers[] = { 285b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch cp, // context 286b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a0, // callee 287b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a4, // call_data 288b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a2, // holder 289b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch a1, // api_function_address 290b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 291b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation representations[] = { 292b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // context 293b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // callee 294b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // call_data 295b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::Tagged(), // holder 296b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch Representation::External(), // api_function_address 297b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch }; 298b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch data->Initialize(arraysize(registers), registers, representations); 299b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 300b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} 301b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch} // namespace v8::internal 302b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch 303b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch#endif // V8_TARGET_ARCH_MIPS64 304