Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 84d9b023b3a237b36aee866c75b1ed5119e20d76..bc581d837d42ae13ffb754d1dc349a6ceb124cd7 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -2310,6 +2310,48 @@ class ElementsTransitionAndStoreStub : public HydrogenCodeStub { |
}; |
+// TODO(bmeurer) Remove this when compiled transitions is enabled |
+class ElementsTransitionAndStorePlatformStub : public PlatformCodeStub { |
+ public: |
+ ElementsTransitionAndStorePlatformStub(ElementsKind from, |
+ ElementsKind to, |
+ bool is_jsarray, |
+ StrictModeFlag strict_mode, |
+ KeyedAccessStoreMode store_mode) |
+ : from_(from), |
+ to_(to), |
+ is_jsarray_(is_jsarray), |
+ strict_mode_(strict_mode), |
+ store_mode_(store_mode) {} |
+ |
+ private: |
+ class FromBits: public BitField<ElementsKind, 0, 8> {}; |
+ class ToBits: public BitField<ElementsKind, 8, 8> {}; |
+ class IsJSArrayBits: public BitField<bool, 16, 1> {}; |
+ class StrictModeBits: public BitField<StrictModeFlag, 17, 1> {}; |
+ class StoreModeBits: public BitField<KeyedAccessStoreMode, 18, 4> {}; |
+ |
+ Major MajorKey() { return ElementsTransitionAndStore; } |
+ int MinorKey() { |
+ return FromBits::encode(from_) | |
+ ToBits::encode(to_) | |
+ IsJSArrayBits::encode(is_jsarray_) | |
+ StrictModeBits::encode(strict_mode_) | |
+ StoreModeBits::encode(store_mode_); |
+ } |
+ |
+ void Generate(MacroAssembler* masm); |
+ |
+ ElementsKind from_; |
+ ElementsKind to_; |
+ bool is_jsarray_; |
+ StrictModeFlag strict_mode_; |
+ KeyedAccessStoreMode store_mode_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ElementsTransitionAndStorePlatformStub); |
+}; |
+ |
+ |
class StoreArrayLiteralElementStub : public PlatformCodeStub { |
public: |
StoreArrayLiteralElementStub() |