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

Side by Side Diff: src/interpreter/bytecodes.h

Issue 2189463006: [interpreter] Put object in register for ToObject/ForInPrepare (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix tests Created 4 years, 4 months 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/interpreter/bytecode-generator.cc ('k') | src/interpreter/interpreter.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_INTERPRETER_BYTECODES_H_ 5 #ifndef V8_INTERPRETER_BYTECODES_H_
6 #define V8_INTERPRETER_BYTECODES_H_ 6 #define V8_INTERPRETER_BYTECODES_H_
7 7
8 #include <cstdint> 8 #include <cstdint>
9 #include <iosfwd> 9 #include <iosfwd>
10 #include <string> 10 #include <string>
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 V(TestLessThan, AccumulatorUse::kReadWrite, OperandType::kReg) \ 206 V(TestLessThan, AccumulatorUse::kReadWrite, OperandType::kReg) \
207 V(TestGreaterThan, AccumulatorUse::kReadWrite, OperandType::kReg) \ 207 V(TestGreaterThan, AccumulatorUse::kReadWrite, OperandType::kReg) \
208 V(TestLessThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg) \ 208 V(TestLessThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg) \
209 V(TestGreaterThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg) \ 209 V(TestGreaterThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg) \
210 V(TestInstanceOf, AccumulatorUse::kReadWrite, OperandType::kReg) \ 210 V(TestInstanceOf, AccumulatorUse::kReadWrite, OperandType::kReg) \
211 V(TestIn, AccumulatorUse::kReadWrite, OperandType::kReg) \ 211 V(TestIn, AccumulatorUse::kReadWrite, OperandType::kReg) \
212 \ 212 \
213 /* Cast operators */ \ 213 /* Cast operators */ \
214 V(ToName, AccumulatorUse::kRead, OperandType::kRegOut) \ 214 V(ToName, AccumulatorUse::kRead, OperandType::kRegOut) \
215 V(ToNumber, AccumulatorUse::kRead, OperandType::kRegOut) \ 215 V(ToNumber, AccumulatorUse::kRead, OperandType::kRegOut) \
216 V(ToObject, AccumulatorUse::kReadWrite) \ 216 V(ToObject, AccumulatorUse::kRead, OperandType::kRegOut) \
217 \ 217 \
218 /* Literals */ \ 218 /* Literals */ \
219 V(CreateRegExpLiteral, AccumulatorUse::kWrite, OperandType::kIdx, \ 219 V(CreateRegExpLiteral, AccumulatorUse::kWrite, OperandType::kIdx, \
220 OperandType::kIdx, OperandType::kFlag8) \ 220 OperandType::kIdx, OperandType::kFlag8) \
221 V(CreateArrayLiteral, AccumulatorUse::kWrite, OperandType::kIdx, \ 221 V(CreateArrayLiteral, AccumulatorUse::kWrite, OperandType::kIdx, \
222 OperandType::kIdx, OperandType::kFlag8) \ 222 OperandType::kIdx, OperandType::kFlag8) \
223 V(CreateObjectLiteral, AccumulatorUse::kWrite, OperandType::kIdx, \ 223 V(CreateObjectLiteral, AccumulatorUse::kWrite, OperandType::kIdx, \
224 OperandType::kIdx, OperandType::kFlag8) \ 224 OperandType::kIdx, OperandType::kFlag8) \
225 \ 225 \
226 /* Closure allocation */ \ 226 /* Closure allocation */ \
(...skipping 17 matching lines...) Expand all
244 V(JumpIfToBooleanFalse, AccumulatorUse::kRead, OperandType::kImm) \ 244 V(JumpIfToBooleanFalse, AccumulatorUse::kRead, OperandType::kImm) \
245 V(JumpIfToBooleanFalseConstant, AccumulatorUse::kRead, OperandType::kIdx) \ 245 V(JumpIfToBooleanFalseConstant, AccumulatorUse::kRead, OperandType::kIdx) \
246 V(JumpIfNull, AccumulatorUse::kRead, OperandType::kImm) \ 246 V(JumpIfNull, AccumulatorUse::kRead, OperandType::kImm) \
247 V(JumpIfNullConstant, AccumulatorUse::kRead, OperandType::kIdx) \ 247 V(JumpIfNullConstant, AccumulatorUse::kRead, OperandType::kIdx) \
248 V(JumpIfUndefined, AccumulatorUse::kRead, OperandType::kImm) \ 248 V(JumpIfUndefined, AccumulatorUse::kRead, OperandType::kImm) \
249 V(JumpIfUndefinedConstant, AccumulatorUse::kRead, OperandType::kIdx) \ 249 V(JumpIfUndefinedConstant, AccumulatorUse::kRead, OperandType::kIdx) \
250 V(JumpIfNotHole, AccumulatorUse::kRead, OperandType::kImm) \ 250 V(JumpIfNotHole, AccumulatorUse::kRead, OperandType::kImm) \
251 V(JumpIfNotHoleConstant, AccumulatorUse::kRead, OperandType::kIdx) \ 251 V(JumpIfNotHoleConstant, AccumulatorUse::kRead, OperandType::kIdx) \
252 \ 252 \
253 /* Complex flow control For..in */ \ 253 /* Complex flow control For..in */ \
254 V(ForInPrepare, AccumulatorUse::kRead, OperandType::kRegOutTriple) \ 254 V(ForInPrepare, AccumulatorUse::kNone, OperandType::kReg, \
255 OperandType::kRegOutTriple) \
255 V(ForInDone, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg) \ 256 V(ForInDone, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg) \
256 V(ForInNext, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg, \ 257 V(ForInNext, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg, \
257 OperandType::kRegPair, OperandType::kIdx) \ 258 OperandType::kRegPair, OperandType::kIdx) \
258 V(ForInStep, AccumulatorUse::kWrite, OperandType::kReg) \ 259 V(ForInStep, AccumulatorUse::kWrite, OperandType::kReg) \
259 \ 260 \
260 /* Perform a stack guard check */ \ 261 /* Perform a stack guard check */ \
261 V(StackCheck, AccumulatorUse::kNone) \ 262 V(StackCheck, AccumulatorUse::kNone) \
262 \ 263 \
263 /* Perform a check to trigger on-stack replacement */ \ 264 /* Perform a check to trigger on-stack replacement */ \
264 V(OsrPoll, AccumulatorUse::kNone, OperandType::kImm) \ 265 V(OsrPoll, AccumulatorUse::kNone, OperandType::kImm) \
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 std::ostream& operator<<(std::ostream& os, const AccumulatorUse& use); 571 std::ostream& operator<<(std::ostream& os, const AccumulatorUse& use);
571 std::ostream& operator<<(std::ostream& os, const OperandScale& operand_scale); 572 std::ostream& operator<<(std::ostream& os, const OperandScale& operand_scale);
572 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_size); 573 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_size);
573 std::ostream& operator<<(std::ostream& os, const OperandType& operand_type); 574 std::ostream& operator<<(std::ostream& os, const OperandType& operand_type);
574 575
575 } // namespace interpreter 576 } // namespace interpreter
576 } // namespace internal 577 } // namespace internal
577 } // namespace v8 578 } // namespace v8
578 579
579 #endif // V8_INTERPRETER_BYTECODES_H_ 580 #endif // V8_INTERPRETER_BYTECODES_H_
OLDNEW
« no previous file with comments | « src/interpreter/bytecode-generator.cc ('k') | src/interpreter/interpreter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698