| Index: src/x87/interface-descriptors-x87.cc
|
| diff --git a/src/x87/interface-descriptors-x87.cc b/src/x87/interface-descriptors-x87.cc
|
| index 333564e09995afffc834146186bd7a14b4567cf8..a71c269f860065bc310cea4bd6442b51e02fa08e 100644
|
| --- a/src/x87/interface-descriptors-x87.cc
|
| +++ b/src/x87/interface-descriptors-x87.cc
|
| @@ -32,7 +32,9 @@ const Register VectorStoreICTrampolineDescriptor::SlotRegister() { return edi; }
|
| const Register VectorStoreICDescriptor::VectorRegister() { return ebx; }
|
|
|
|
|
| -const Register StoreTransitionDescriptor::MapRegister() { return ebx; }
|
| +const Register StoreTransitionDescriptor::MapRegister() {
|
| + return FLAG_vector_stores ? no_reg : ebx;
|
| +}
|
|
|
|
|
| const Register LoadGlobalViaContextDescriptor::DepthRegister() { return edx; }
|
| @@ -69,6 +71,20 @@ const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; }
|
| const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; }
|
|
|
|
|
| +void StoreTransitionDescriptor::InitializePlatformSpecific(
|
| + CallInterfaceDescriptorData* data) {
|
| + Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(),
|
| + MapRegister()};
|
| +
|
| + // When FLAG_vector_stores is true, we want to pass the map register on the
|
| + // stack instead of in a register.
|
| + DCHECK(FLAG_vector_stores || !MapRegister().is(no_reg));
|
| +
|
| + int register_count = FLAG_vector_stores ? 3 : 4;
|
| + data->InitializePlatformSpecific(register_count, registers);
|
| +}
|
| +
|
| +
|
| void FastNewClosureDescriptor::InitializePlatformSpecific(
|
| CallInterfaceDescriptorData* data) {
|
| Register registers[] = {ebx};
|
|
|