| Index: src/crankshaft/x64/lithium-x64.h
|
| diff --git a/src/crankshaft/x64/lithium-x64.h b/src/crankshaft/x64/lithium-x64.h
|
| index 7fd0bc7e7bd5a355ec2fb335838e95136ea57ea0..cb888116f0c1423c5edc08356f9b255dbff0006e 100644
|
| --- a/src/crankshaft/x64/lithium-x64.h
|
| +++ b/src/crankshaft/x64/lithium-x64.h
|
| @@ -1591,11 +1591,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")
|
| @@ -1606,6 +1607,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 {
|
| @@ -2127,12 +2129,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 {
|
| @@ -2141,6 +2145,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")
|
|
|