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) |