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

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

Issue 2523893003: Reland of [ignition/turbo] Perform liveness analysis on the bytecodes (Closed)
Patch Set: Fix debugger special casing and liveness disabling Created 4 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
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 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 bytecode == Bytecode::kJumpIfToBooleanTrueConstant || 493 bytecode == Bytecode::kJumpIfToBooleanTrueConstant ||
494 bytecode == Bytecode::kJumpIfToBooleanFalseConstant; 494 bytecode == Bytecode::kJumpIfToBooleanFalseConstant;
495 } 495 }
496 496
497 // Returns true if the bytecode is a jump or conditional jump taking 497 // Returns true if the bytecode is a jump or conditional jump taking
498 // any kind of operand. 498 // any kind of operand.
499 static CONSTEXPR bool IsJump(Bytecode bytecode) { 499 static CONSTEXPR bool IsJump(Bytecode bytecode) {
500 return IsJumpImmediate(bytecode) || IsJumpConstant(bytecode); 500 return IsJumpImmediate(bytecode) || IsJumpConstant(bytecode);
501 } 501 }
502 502
503 // Returns true if the bytecode is a forward jump or conditional jump taking
504 // any kind of operand.
505 static CONSTEXPR bool IsForwardJump(Bytecode bytecode) {
506 return bytecode != Bytecode::kJumpLoop && IsJump(bytecode);
507 }
508
503 // Returns true if the bytecode is a conditional jump, a jump, or a return. 509 // Returns true if the bytecode is a conditional jump, a jump, or a return.
504 static CONSTEXPR bool IsJumpOrReturn(Bytecode bytecode) { 510 static CONSTEXPR bool IsJumpOrReturn(Bytecode bytecode) {
505 return bytecode == Bytecode::kReturn || IsJump(bytecode); 511 return bytecode == Bytecode::kReturn || IsJump(bytecode);
506 } 512 }
507 513
508 // Return true if |bytecode| is a jump without effects, 514 // Return true if |bytecode| is a jump without effects,
509 // e.g. any jump excluding those that include type coercion like 515 // e.g. any jump excluding those that include type coercion like
510 // JumpIfTrueToBoolean. 516 // JumpIfTrueToBoolean.
511 static CONSTEXPR bool IsJumpWithoutEffects(Bytecode bytecode) { 517 static CONSTEXPR bool IsJumpWithoutEffects(Bytecode bytecode) {
512 return IsJump(bytecode) && !IsJumpIfToBoolean(bytecode); 518 return IsJump(bytecode) && !IsJumpIfToBoolean(bytecode);
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 #undef CONSTEXPR 747 #undef CONSTEXPR
742 748
743 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, 749 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
744 const Bytecode& bytecode); 750 const Bytecode& bytecode);
745 751
746 } // namespace interpreter 752 } // namespace interpreter
747 } // namespace internal 753 } // namespace internal
748 } // namespace v8 754 } // namespace v8
749 755
750 #endif // V8_INTERPRETER_BYTECODES_H_ 756 #endif // V8_INTERPRETER_BYTECODES_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698