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

Unified Diff: src/interface-descriptors.cc

Issue 2357163003: [ic][ia32][x87] Pass value, slot and vector to StoreIC and KeyedStoreIC through the stack. (Closed)
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: src/interface-descriptors.cc
diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc
index 1a89aff5a3940fc9fae8b8174f65acdfb478948a..2a59e1d5eb0f9064e428930c05550649f5976ff0 100644
--- a/src/interface-descriptors.cc
+++ b/src/interface-descriptors.cc
@@ -134,15 +134,9 @@ void StoreDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(),
SlotRegister()};
- data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-bool StoreTransitionDescriptor::PassVectorAndSlotOnStack() {
-#if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87
- return true;
-#else
- return false;
-#endif
+ int len = arraysize(registers) - kStackArgumentsCount;
+ data->InitializePlatformSpecific(len, registers);
}
void StoreTransitionDescriptor::InitializePlatformSpecific(
@@ -151,11 +145,7 @@ void StoreTransitionDescriptor::InitializePlatformSpecific(
ReceiverRegister(), NameRegister(), MapRegister(),
ValueRegister(), SlotRegister(), VectorRegister(),
};
- int len = arraysize(registers);
- if (PassVectorAndSlotOnStack()) {
- // Pass slot and vector on the stack.
- len -= 2;
- }
+ int len = arraysize(registers) - kStackArgumentsCount;
data->InitializePlatformSpecific(len, registers);
}
@@ -243,7 +233,8 @@ void StoreWithVectorDescriptor::InitializePlatformSpecific(
CallInterfaceDescriptorData* data) {
Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(),
SlotRegister(), VectorRegister()};
- data->InitializePlatformSpecific(arraysize(registers), registers);
+ int len = arraysize(registers) - kStackArgumentsCount;
+ data->InitializePlatformSpecific(len, registers);
}
void BinaryOpWithVectorDescriptor::InitializePlatformIndependent(

Powered by Google App Engine
This is Rietveld 408576698