Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Side by Side Diff: src/crankshaft/arm64/lithium-arm64.h

Issue 1492983002: [crankshaft] Deoptimize if HHasInPrototypeChainAndBranch hits a proxy. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/crankshaft/arm/lithium-codegen-arm.cc ('k') | src/crankshaft/arm64/lithium-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_CRANKSHAFT_ARM64_LITHIUM_ARM64_H_ 5 #ifndef V8_CRANKSHAFT_ARM64_LITHIUM_ARM64_H_
6 #define V8_CRANKSHAFT_ARM64_LITHIUM_ARM64_H_ 6 #define V8_CRANKSHAFT_ARM64_LITHIUM_ARM64_H_
7 7
8 #include "src/crankshaft/hydrogen.h" 8 #include "src/crankshaft/hydrogen.h"
9 #include "src/crankshaft/lithium.h" 9 #include "src/crankshaft/lithium.h"
10 #include "src/crankshaft/lithium-allocator.h" 10 #include "src/crankshaft/lithium-allocator.h"
(...skipping 1450 matching lines...) Expand 10 before | Expand all | Expand 10 after
1461 } 1461 }
1462 1462
1463 LOperand* context() const { return inputs_[0]; } 1463 LOperand* context() const { return inputs_[0]; }
1464 LOperand* left() const { return inputs_[1]; } 1464 LOperand* left() const { return inputs_[1]; }
1465 LOperand* right() const { return inputs_[2]; } 1465 LOperand* right() const { return inputs_[2]; }
1466 1466
1467 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") 1467 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
1468 }; 1468 };
1469 1469
1470 1470
1471 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 1> { 1471 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 2> {
1472 public: 1472 public:
1473 LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype, 1473 LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype,
1474 LOperand* scratch) { 1474 LOperand* scratch1, LOperand* scratch2) {
1475 inputs_[0] = object; 1475 inputs_[0] = object;
1476 inputs_[1] = prototype; 1476 inputs_[1] = prototype;
1477 temps_[0] = scratch; 1477 temps_[0] = scratch1;
1478 temps_[1] = scratch2;
1478 } 1479 }
1479 1480
1480 LOperand* object() const { return inputs_[0]; } 1481 LOperand* object() const { return inputs_[0]; }
1481 LOperand* prototype() const { return inputs_[1]; } 1482 LOperand* prototype() const { return inputs_[1]; }
1482 LOperand* scratch() const { return temps_[0]; } 1483 LOperand* scratch1() const { return temps_[0]; }
1484 LOperand* scratch2() const { return temps_[1]; }
1483 1485
1484 DECLARE_CONCRETE_INSTRUCTION(HasInPrototypeChainAndBranch, 1486 DECLARE_CONCRETE_INSTRUCTION(HasInPrototypeChainAndBranch,
1485 "has-in-prototype-chain-and-branch") 1487 "has-in-prototype-chain-and-branch")
1486 DECLARE_HYDROGEN_ACCESSOR(HasInPrototypeChainAndBranch) 1488 DECLARE_HYDROGEN_ACCESSOR(HasInPrototypeChainAndBranch)
1487 }; 1489 };
1488 1490
1489 1491
1490 class LInteger32ToDouble final : public LTemplateInstruction<1, 1, 0> { 1492 class LInteger32ToDouble final : public LTemplateInstruction<1, 1, 0> {
1491 public: 1493 public:
1492 explicit LInteger32ToDouble(LOperand* value) { 1494 explicit LInteger32ToDouble(LOperand* value) {
(...skipping 1668 matching lines...) Expand 10 before | Expand all | Expand 10 after
3161 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3163 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3162 }; 3164 };
3163 3165
3164 #undef DECLARE_HYDROGEN_ACCESSOR 3166 #undef DECLARE_HYDROGEN_ACCESSOR
3165 #undef DECLARE_CONCRETE_INSTRUCTION 3167 #undef DECLARE_CONCRETE_INSTRUCTION
3166 3168
3167 } // namespace internal 3169 } // namespace internal
3168 } // namespace v8 3170 } // namespace v8
3169 3171
3170 #endif // V8_CRANKSHAFT_ARM64_LITHIUM_ARM64_H_ 3172 #endif // V8_CRANKSHAFT_ARM64_LITHIUM_ARM64_H_
OLDNEW
« no previous file with comments | « src/crankshaft/arm/lithium-codegen-arm.cc ('k') | src/crankshaft/arm64/lithium-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698