| Index: src/crankshaft/x64/lithium-x64.h
|
| diff --git a/src/crankshaft/x64/lithium-x64.h b/src/crankshaft/x64/lithium-x64.h
|
| index dfd4478ba51ffd362e7421f3ea3f5718792eadf4..74709d33160aeb5189959b3c45a4ec250d7fa093 100644
|
| --- a/src/crankshaft/x64/lithium-x64.h
|
| +++ b/src/crankshaft/x64/lithium-x64.h
|
| @@ -1594,11 +1594,12 @@ inline static bool ExternalArrayOpRequiresTemp(
|
| }
|
|
|
|
|
| -class LLoadKeyed final : public LTemplateInstruction<1, 2, 0> {
|
| +class LLoadKeyed final : public LTemplateInstruction<1, 3, 0> {
|
| public:
|
| - LLoadKeyed(LOperand* elements, LOperand* key) {
|
| + LLoadKeyed(LOperand* elements, LOperand* key, LOperand* backing_store_owner) {
|
| inputs_[0] = elements;
|
| inputs_[1] = key;
|
| + inputs_[2] = backing_store_owner;
|
| }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed")
|
| @@ -1609,6 +1610,7 @@ class LLoadKeyed final : public LTemplateInstruction<1, 2, 0> {
|
| }
|
| LOperand* elements() { return inputs_[0]; }
|
| LOperand* key() { return inputs_[1]; }
|
| + LOperand* backing_store_owner() { return inputs_[2]; }
|
| void PrintDataTo(StringStream* stream) override;
|
| uint32_t base_offset() const { return hydrogen()->base_offset(); }
|
| ElementsKind elements_kind() const {
|
| @@ -2149,12 +2151,14 @@ class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> {
|
| };
|
|
|
|
|
| -class LStoreKeyed final : public LTemplateInstruction<0, 3, 0> {
|
| +class LStoreKeyed final : public LTemplateInstruction<0, 4, 0> {
|
| public:
|
| - LStoreKeyed(LOperand* object, LOperand* key, LOperand* value) {
|
| + LStoreKeyed(LOperand* object, LOperand* key, LOperand* value,
|
| + LOperand* backing_store_owner) {
|
| inputs_[0] = object;
|
| inputs_[1] = key;
|
| inputs_[2] = value;
|
| + inputs_[3] = backing_store_owner;
|
| }
|
|
|
| bool is_fixed_typed_array() const {
|
| @@ -2163,6 +2167,7 @@ class LStoreKeyed final : public LTemplateInstruction<0, 3, 0> {
|
| LOperand* elements() { return inputs_[0]; }
|
| LOperand* key() { return inputs_[1]; }
|
| LOperand* value() { return inputs_[2]; }
|
| + LOperand* backing_store_owner() { return inputs_[3]; }
|
| ElementsKind elements_kind() const { return hydrogen()->elements_kind(); }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed")
|
|
|