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