Chromium Code Reviews

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

Issue 1991663002: X87: [es6] Reintroduce the instanceof operator in the backends. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « src/crankshaft/x87/lithium-codegen-x87.cc ('k') | src/crankshaft/x87/lithium-x87.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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_X87_LITHIUM_X87_H_ 5 #ifndef V8_CRANKSHAFT_X87_LITHIUM_X87_H_
6 #define V8_CRANKSHAFT_X87_LITHIUM_X87_H_ 6 #define V8_CRANKSHAFT_X87_LITHIUM_X87_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 66 matching lines...)
77 V(FlooringDivByPowerOf2I) \ 77 V(FlooringDivByPowerOf2I) \
78 V(FlooringDivI) \ 78 V(FlooringDivI) \
79 V(ForInCacheArray) \ 79 V(ForInCacheArray) \
80 V(ForInPrepareMap) \ 80 V(ForInPrepareMap) \
81 V(GetCachedArrayIndex) \ 81 V(GetCachedArrayIndex) \
82 V(Goto) \ 82 V(Goto) \
83 V(HasCachedArrayIndexAndBranch) \ 83 V(HasCachedArrayIndexAndBranch) \
84 V(HasInPrototypeChainAndBranch) \ 84 V(HasInPrototypeChainAndBranch) \
85 V(HasInstanceTypeAndBranch) \ 85 V(HasInstanceTypeAndBranch) \
86 V(InnerAllocatedObject) \ 86 V(InnerAllocatedObject) \
87 V(InstanceOf) \
88 V(InstructionGap) \ 87 V(InstructionGap) \
89 V(Integer32ToDouble) \ 88 V(Integer32ToDouble) \
90 V(InvokeFunction) \ 89 V(InvokeFunction) \
91 V(IsStringAndBranch) \ 90 V(IsStringAndBranch) \
92 V(IsSmiAndBranch) \ 91 V(IsSmiAndBranch) \
93 V(IsUndetectableAndBranch) \ 92 V(IsUndetectableAndBranch) \
94 V(Label) \ 93 V(Label) \
95 V(LazyBailout) \ 94 V(LazyBailout) \
96 V(LoadContextSlot) \ 95 V(LoadContextSlot) \
97 V(LoadFieldByIndex) \ 96 V(LoadFieldByIndex) \
(...skipping 1029 matching lines...)
1127 } 1126 }
1128 1127
1129 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") 1128 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t")
1130 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric) 1129 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric)
1131 1130
1132 LOperand* context() { return inputs_[0]; } 1131 LOperand* context() { return inputs_[0]; }
1133 Token::Value op() const { return hydrogen()->token(); } 1132 Token::Value op() const { return hydrogen()->token(); }
1134 }; 1133 };
1135 1134
1136 1135
1137 class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
1138 public:
1139 LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
1140 inputs_[0] = context;
1141 inputs_[1] = left;
1142 inputs_[2] = right;
1143 }
1144
1145 LOperand* context() const { return inputs_[0]; }
1146 LOperand* left() const { return inputs_[1]; }
1147 LOperand* right() const { return inputs_[2]; }
1148
1149 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
1150 };
1151
1152
1153 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 1> { 1136 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 1> {
1154 public: 1137 public:
1155 LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype, 1138 LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype,
1156 LOperand* scratch) { 1139 LOperand* scratch) {
1157 inputs_[0] = object; 1140 inputs_[0] = object;
1158 inputs_[1] = prototype; 1141 inputs_[1] = prototype;
1159 temps_[0] = scratch; 1142 temps_[0] = scratch;
1160 } 1143 }
1161 1144
1162 LOperand* object() const { return inputs_[0]; } 1145 LOperand* object() const { return inputs_[0]; }
(...skipping 1518 matching lines...)
2681 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2664 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2682 }; 2665 };
2683 2666
2684 #undef DECLARE_HYDROGEN_ACCESSOR 2667 #undef DECLARE_HYDROGEN_ACCESSOR
2685 #undef DECLARE_CONCRETE_INSTRUCTION 2668 #undef DECLARE_CONCRETE_INSTRUCTION
2686 2669
2687 } // namespace internal 2670 } // namespace internal
2688 } // namespace v8 2671 } // namespace v8
2689 2672
2690 #endif // V8_CRANKSHAFT_X87_LITHIUM_X87_H_ 2673 #endif // V8_CRANKSHAFT_X87_LITHIUM_X87_H_
OLDNEW
« no previous file with comments | « src/crankshaft/x87/lithium-codegen-x87.cc ('k') | src/crankshaft/x87/lithium-x87.cc » ('j') | no next file with comments »

Powered by Google App Engine