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

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

Issue 1410573003: X87: Vector ICs: Get rid of stack arguments on ia32 transitioning stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 2 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/x87/code-stubs-x87.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // 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 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 #if V8_TARGET_ARCH_X87 5 #if V8_TARGET_ARCH_X87
6 6
7 #include "src/interface-descriptors.h" 7 #include "src/interface-descriptors.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 17 matching lines...) Expand all
28 28
29 29
30 const Register VectorStoreICDescriptor::VectorRegister() { return ebx; } 30 const Register VectorStoreICDescriptor::VectorRegister() { return ebx; }
31 31
32 32
33 const Register VectorStoreTransitionDescriptor::SlotRegister() { 33 const Register VectorStoreTransitionDescriptor::SlotRegister() {
34 return no_reg; 34 return no_reg;
35 } 35 }
36 36
37 37
38 const Register VectorStoreTransitionDescriptor::VectorRegister() { 38 const Register VectorStoreTransitionDescriptor::VectorRegister() { return ebx; }
39 return no_reg;
40 }
41 39
42 40
43 const Register VectorStoreTransitionDescriptor::MapRegister() { return no_reg; } 41 const Register VectorStoreTransitionDescriptor::MapRegister() { return edi; }
44 42
45 43
46 const Register StoreTransitionDescriptor::MapRegister() { return ebx; } 44 const Register StoreTransitionDescriptor::MapRegister() { return ebx; }
47 45
48 46
49 const Register LoadGlobalViaContextDescriptor::SlotRegister() { return ebx; } 47 const Register LoadGlobalViaContextDescriptor::SlotRegister() { return ebx; }
50 48
51 49
52 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return ebx; } 50 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return ebx; }
53 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; } 51 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; }
(...skipping 24 matching lines...) Expand all
78 76
79 const Register MathPowIntegerDescriptor::exponent() { 77 const Register MathPowIntegerDescriptor::exponent() {
80 return MathPowTaggedDescriptor::exponent(); 78 return MathPowTaggedDescriptor::exponent();
81 } 79 }
82 80
83 81
84 const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; } 82 const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; }
85 const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; } 83 const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; }
86 84
87 85
88 void VectorStoreTransitionDescriptor::InitializePlatformSpecific(
89 CallInterfaceDescriptorData* data) {
90 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister()};
91 // The other three parameters are on the stack in ia32.
92 data->InitializePlatformSpecific(arraysize(registers), registers);
93 }
94
95
96 void FastNewClosureDescriptor::InitializePlatformSpecific( 86 void FastNewClosureDescriptor::InitializePlatformSpecific(
97 CallInterfaceDescriptorData* data) { 87 CallInterfaceDescriptorData* data) {
98 Register registers[] = {ebx}; 88 Register registers[] = {ebx};
99 data->InitializePlatformSpecific(arraysize(registers), registers, NULL); 89 data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
100 } 90 }
101 91
102 92
103 void FastNewContextDescriptor::InitializePlatformSpecific( 93 void FastNewContextDescriptor::InitializePlatformSpecific(
104 CallInterfaceDescriptorData* data) { 94 CallInterfaceDescriptorData* data) {
105 Register registers[] = {edi}; 95 Register registers[] = {edi};
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 ebx, // address of first argument 404 ebx, // address of first argument
415 edi // the target callable to be call 405 edi // the target callable to be call
416 }; 406 };
417 data->InitializePlatformSpecific(arraysize(registers), registers); 407 data->InitializePlatformSpecific(arraysize(registers), registers);
418 } 408 }
419 409
420 } // namespace internal 410 } // namespace internal
421 } // namespace v8 411 } // namespace v8
422 412
423 #endif // V8_TARGET_ARCH_X87 413 #endif // V8_TARGET_ARCH_X87
OLDNEW
« no previous file with comments | « src/x87/code-stubs-x87.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698