| Index: src/interface-descriptors.h
|
| diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h
|
| index 76530fcf3889d27ccd2187ba5a21f0478a8a62b6..09dc377338632ad6a7c67cb01955d6a3504b505f 100644
|
| --- a/src/interface-descriptors.h
|
| +++ b/src/interface-descriptors.h
|
| @@ -24,6 +24,7 @@ class PlatformInterfaceDescriptor;
|
| V(LoadGlobalWithVector) \
|
| V(Store) \
|
| V(StoreWithVector) \
|
| + V(StoreNamedTransition) \
|
| V(StoreTransition) \
|
| V(VarArgFunction) \
|
| V(FastNewClosure) \
|
| @@ -349,6 +350,24 @@ class StoreTransitionDescriptor : public StoreDescriptor {
|
| static const int kStackArgumentsCount = kPassLastArgsOnStack ? 3 : 0;
|
| };
|
|
|
| +class StoreNamedTransitionDescriptor : public StoreTransitionDescriptor {
|
| + public:
|
| + DEFINE_PARAMETERS(kReceiver, kFieldOffset, kMap, kValue, kSlot, kVector,
|
| + kName)
|
| + DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreNamedTransitionDescriptor,
|
| + StoreTransitionDescriptor)
|
| +
|
| + // Always pass name on the stack.
|
| + static const bool kPassLastArgsOnStack = true;
|
| + static const int kStackArgumentsCount =
|
| + StoreTransitionDescriptor::kStackArgumentsCount + 1;
|
| +
|
| + static const Register NameRegister() { return no_reg; }
|
| + static const Register FieldOffsetRegister() {
|
| + return StoreTransitionDescriptor::NameRegister();
|
| + }
|
| +};
|
| +
|
| class StoreWithVectorDescriptor : public StoreDescriptor {
|
| public:
|
| DEFINE_PARAMETERS(kReceiver, kName, kValue, kSlot, kVector)
|
|
|