| OLD | NEW |
| 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_COMPILER_JS_OPERATOR_H_ | 5 #ifndef V8_COMPILER_JS_OPERATOR_H_ |
| 6 #define V8_COMPILER_JS_OPERATOR_H_ | 6 #define V8_COMPILER_JS_OPERATOR_H_ |
| 7 | 7 |
| 8 #include "src/compiler/linkage.h" | 8 #include "src/compiler/linkage.h" |
| 9 #include "src/compiler/opcodes.h" | 9 #include "src/compiler/opcodes.h" |
| 10 #include "src/compiler/operator.h" | 10 #include "src/compiler/operator.h" |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 | 149 |
| 150 Operator* HasProperty() { NOPROPS(JSHasProperty, 2, 1); } | 150 Operator* HasProperty() { NOPROPS(JSHasProperty, 2, 1); } |
| 151 | 151 |
| 152 Operator* LoadContext(uint16_t depth, uint32_t index, bool immutable) { | 152 Operator* LoadContext(uint16_t depth, uint32_t index, bool immutable) { |
| 153 ContextAccess access(depth, index, immutable); | 153 ContextAccess access(depth, index, immutable); |
| 154 OP1(JSLoadContext, ContextAccess, access, | 154 OP1(JSLoadContext, ContextAccess, access, |
| 155 Operator::kEliminatable | Operator::kNoWrite, 1, 1); | 155 Operator::kEliminatable | Operator::kNoWrite, 1, 1); |
| 156 } | 156 } |
| 157 Operator* StoreContext(uint16_t depth, uint32_t index) { | 157 Operator* StoreContext(uint16_t depth, uint32_t index) { |
| 158 ContextAccess access(depth, index, false); | 158 ContextAccess access(depth, index, false); |
| 159 OP1(JSStoreContext, ContextAccess, access, Operator::kNoProperties, 2, 1); | 159 OP1(JSStoreContext, ContextAccess, access, Operator::kNoProperties, 2, 0); |
| 160 } | 160 } |
| 161 | 161 |
| 162 Operator* TypeOf() { SIMPLE(JSTypeOf, Operator::kPure, 1, 1); } | 162 Operator* TypeOf() { SIMPLE(JSTypeOf, Operator::kPure, 1, 1); } |
| 163 Operator* InstanceOf() { NOPROPS(JSInstanceOf, 2, 1); } | 163 Operator* InstanceOf() { NOPROPS(JSInstanceOf, 2, 1); } |
| 164 Operator* Debugger() { NOPROPS(JSDebugger, 0, 0); } | 164 Operator* Debugger() { NOPROPS(JSDebugger, 0, 0); } |
| 165 | 165 |
| 166 // TODO(titzer): nail down the static parts of each of these context flavors. | 166 // TODO(titzer): nail down the static parts of each of these context flavors. |
| 167 Operator* CreateFunctionContext() { NOPROPS(JSCreateFunctionContext, 1, 1); } | 167 Operator* CreateFunctionContext() { NOPROPS(JSCreateFunctionContext, 1, 1); } |
| 168 Operator* CreateCatchContext(Unique<String> name) { | 168 Operator* CreateCatchContext(Unique<String> name) { |
| 169 OP1(JSCreateCatchContext, Unique<String>, name, Operator::kNoProperties, 1, | 169 OP1(JSCreateCatchContext, Unique<String>, name, Operator::kNoProperties, 1, |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 static int HashCode(Runtime::FunctionId val) { return static_cast<int>(val); } | 217 static int HashCode(Runtime::FunctionId val) { return static_cast<int>(val); } |
| 218 static bool Equals(Runtime::FunctionId a, Runtime::FunctionId b) { | 218 static bool Equals(Runtime::FunctionId a, Runtime::FunctionId b) { |
| 219 return a == b; | 219 return a == b; |
| 220 } | 220 } |
| 221 }; | 221 }; |
| 222 } | 222 } |
| 223 } | 223 } |
| 224 } // namespace v8::internal::compiler | 224 } // namespace v8::internal::compiler |
| 225 | 225 |
| 226 #endif // V8_COMPILER_JS_OPERATOR_H_ | 226 #endif // V8_COMPILER_JS_OPERATOR_H_ |
| OLD | NEW |