Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: src/ppc/interface-descriptors-ppc.cc

Issue 901083004: Contribution of PowerPC port (continuation of 422063005) - PPC dir update (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Contribution of PowerPC port (continuation of 422063005) - PPC dir update -comments and rebase Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ppc/full-codegen-ppc.cc ('k') | src/ppc/lithium-codegen-ppc.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_PPC 7 #if V8_TARGET_ARCH_PPC
8 8
9 #include "src/interface-descriptors.h" 9 #include "src/interface-descriptors.h"
10 10
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 void FastCloneShallowObjectDescriptor::Initialize( 91 void FastCloneShallowObjectDescriptor::Initialize(
92 CallInterfaceDescriptorData* data) { 92 CallInterfaceDescriptorData* data) {
93 Register registers[] = {cp, r6, r5, r4, r3}; 93 Register registers[] = {cp, r6, r5, r4, r3};
94 data->Initialize(arraysize(registers), registers, NULL); 94 data->Initialize(arraysize(registers), registers, NULL);
95 } 95 }
96 96
97 97
98 void CreateAllocationSiteDescriptor::Initialize( 98 void CreateAllocationSiteDescriptor::Initialize(
99 CallInterfaceDescriptorData* data) { 99 CallInterfaceDescriptorData* data) {
100 Register registers[] = {cp, r5, r6}; 100 Register registers[] = {cp, r5, r6};
101 data->Initialize(arraysize(registers), registers, NULL); 101 Representation representations[] = {Representation::Tagged(),
102 Representation::Tagged(),
103 Representation::Smi()};
104 data->Initialize(arraysize(registers), registers, representations);
102 } 105 }
103 106
104 107
108 void CreateWeakCellDescriptor::Initialize(CallInterfaceDescriptorData* data) {
109 Register registers[] = {cp, r5, r6, r4};
110 Representation representations[] = {
111 Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
112 Representation::Tagged()};
113 data->Initialize(arraysize(registers), registers, representations);
114 }
115
116
105 void StoreArrayLiteralElementDescriptor::Initialize( 117 void StoreArrayLiteralElementDescriptor::Initialize(
106 CallInterfaceDescriptorData* data) { 118 CallInterfaceDescriptorData* data) {
107 Register registers[] = {cp, r6, r3}; 119 Register registers[] = {cp, r6, r3};
108 data->Initialize(arraysize(registers), registers, NULL); 120 data->Initialize(arraysize(registers), registers, NULL);
109 } 121 }
110 122
111 123
112 void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 124 void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
113 Register registers[] = {cp, r4}; 125 Register registers[] = {cp, r4};
114 data->Initialize(arraysize(registers), registers, NULL); 126 data->Initialize(arraysize(registers), registers, NULL);
115 } 127 }
116 128
117 129
118 void CallFunctionWithFeedbackDescriptor::Initialize( 130 void CallFunctionWithFeedbackDescriptor::Initialize(
119 CallInterfaceDescriptorData* data) { 131 CallInterfaceDescriptorData* data) {
120 Register registers[] = {cp, r4, r6}; 132 Register registers[] = {cp, r4, r6};
121 Representation representations[] = {Representation::Tagged(), 133 Representation representations[] = {Representation::Tagged(),
122 Representation::Tagged(), 134 Representation::Tagged(),
123 Representation::Smi()}; 135 Representation::Smi()};
124 data->Initialize(arraysize(registers), registers, representations); 136 data->Initialize(arraysize(registers), registers, representations);
125 } 137 }
126 138
127 139
140 void CallFunctionWithFeedbackAndVectorDescriptor::Initialize(
141 CallInterfaceDescriptorData* data) {
142 Register registers[] = {cp, r4, r6, r5};
143 Representation representations[] = {
144 Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
145 Representation::Tagged()};
146 data->Initialize(arraysize(registers), registers, representations);
147 }
148
149
128 void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) { 150 void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) {
129 // r3 : number of arguments 151 // r3 : number of arguments
130 // r4 : the function to call 152 // r4 : the function to call
131 // r5 : feedback vector 153 // r5 : feedback vector
132 // r6 : (only if r5 is not the megamorphic symbol) slot in feedback 154 // r6 : (only if r5 is not the megamorphic symbol) slot in feedback
133 // vector (Smi) 155 // vector (Smi)
134 // TODO(turbofan): So far we don't gather type feedback and hence skip the 156 // TODO(turbofan): So far we don't gather type feedback and hence skip the
135 // slot parameter, but ArrayConstructStub needs the vector to be undefined. 157 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
136 Register registers[] = {cp, r3, r4, r5}; 158 Register registers[] = {cp, r3, r4, r5};
137 data->Initialize(arraysize(registers), registers, NULL); 159 data->Initialize(arraysize(registers), registers, NULL);
138 } 160 }
139 161
140 162
141 void RegExpConstructResultDescriptor::Initialize( 163 void RegExpConstructResultDescriptor::Initialize(
142 CallInterfaceDescriptorData* data) { 164 CallInterfaceDescriptorData* data) {
143 Register registers[] = {cp, r5, r4, r3}; 165 Register registers[] = {cp, r5, r4, r3};
144 data->Initialize(arraysize(registers), registers, NULL); 166 data->Initialize(arraysize(registers), registers, NULL);
145 } 167 }
146 168
147 169
148 void TransitionElementsKindDescriptor::Initialize( 170 void TransitionElementsKindDescriptor::Initialize(
149 CallInterfaceDescriptorData* data) { 171 CallInterfaceDescriptorData* data) {
150 Register registers[] = {cp, r3, r4}; 172 Register registers[] = {cp, r3, r4};
151 data->Initialize(arraysize(registers), registers, NULL); 173 data->Initialize(arraysize(registers), registers, NULL);
152 } 174 }
153 175
154 176
177 void AllocateHeapNumberDescriptor::Initialize(
178 CallInterfaceDescriptorData* data) {
179 // register state
180 // cp -- context
181 Register registers[] = {cp};
182 data->Initialize(arraysize(registers), registers, nullptr);
183 }
184
185
155 void ArrayConstructorConstantArgCountDescriptor::Initialize( 186 void ArrayConstructorConstantArgCountDescriptor::Initialize(
156 CallInterfaceDescriptorData* data) { 187 CallInterfaceDescriptorData* data) {
157 // register state 188 // register state
158 // cp -- context 189 // cp -- context
159 // r3 -- number of arguments 190 // r3 -- number of arguments
160 // r4 -- function 191 // r4 -- function
161 // r5 -- allocation site with elements kind 192 // r5 -- allocation site with elements kind
162 Register registers[] = {cp, r4, r5}; 193 Register registers[] = {cp, r4, r5};
163 data->Initialize(arraysize(registers), registers, NULL); 194 data->Initialize(arraysize(registers), registers, NULL);
164 } 195 }
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 } 314 }
284 315
285 316
286 void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) { 317 void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
287 Register registers[] = { 318 Register registers[] = {
288 cp, // context 319 cp, // context
289 r3, // callee 320 r3, // callee
290 r7, // call_data 321 r7, // call_data
291 r5, // holder 322 r5, // holder
292 r4, // api_function_address 323 r4, // api_function_address
324 r6, // actual number of arguments
325 };
326 Representation representations[] = {
327 Representation::Tagged(), // context
328 Representation::Tagged(), // callee
329 Representation::Tagged(), // call_data
330 Representation::Tagged(), // holder
331 Representation::External(), // api_function_address
332 Representation::Integer32(), // actual number of arguments
333 };
334 data->Initialize(arraysize(registers), registers, representations);
335 }
336
337
338 void ApiAccessorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
339 Register registers[] = {
340 cp, // context
341 r3, // callee
342 r7, // call_data
343 r5, // holder
344 r4, // api_function_address
293 }; 345 };
294 Representation representations[] = { 346 Representation representations[] = {
295 Representation::Tagged(), // context 347 Representation::Tagged(), // context
296 Representation::Tagged(), // callee 348 Representation::Tagged(), // callee
297 Representation::Tagged(), // call_data 349 Representation::Tagged(), // call_data
298 Representation::Tagged(), // holder 350 Representation::Tagged(), // holder
299 Representation::External(), // api_function_address 351 Representation::External(), // api_function_address
300 }; 352 };
301 data->Initialize(arraysize(registers), registers, representations); 353 data->Initialize(arraysize(registers), registers, representations);
302 } 354 }
303 } 355 }
304 } // namespace v8::internal 356 } // namespace v8::internal
305 357
306 #endif // V8_TARGET_ARCH_PPC 358 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/ppc/full-codegen-ppc.cc ('k') | src/ppc/lithium-codegen-ppc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698