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

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

Issue 1376933006: Vector ICs: Get rid of stack arguments on ia32 transitioning stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Code comments. 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/ia32/code-stubs-ia32.cc ('k') | src/ic/arm/handler-compiler-arm.cc » ('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 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_IA32 5 #if V8_TARGET_ARCH_IA32
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 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 ecx, // address of first argument (argv) 408 ecx, // address of first argument (argv)
419 ebx // the runtime function to call 409 ebx // the runtime function to call
420 }; 410 };
421 data->InitializePlatformSpecific(arraysize(registers), registers); 411 data->InitializePlatformSpecific(arraysize(registers), registers);
422 } 412 }
423 413
424 } // namespace internal 414 } // namespace internal
425 } // namespace v8 415 } // namespace v8
426 416
427 #endif // V8_TARGET_ARCH_IA32 417 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ic/arm/handler-compiler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698