OLD | NEW |
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 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 \ | 308 \ |
309 /* Update the pending message */ \ | 309 /* Update the pending message */ \ |
310 V(SetPendingMessage, AccumulatorUse::kReadWrite) \ | 310 V(SetPendingMessage, AccumulatorUse::kReadWrite) \ |
311 \ | 311 \ |
312 /* Non-local flow control */ \ | 312 /* Non-local flow control */ \ |
313 V(Throw, AccumulatorUse::kRead) \ | 313 V(Throw, AccumulatorUse::kRead) \ |
314 V(ReThrow, AccumulatorUse::kRead) \ | 314 V(ReThrow, AccumulatorUse::kRead) \ |
315 V(Return, AccumulatorUse::kRead) \ | 315 V(Return, AccumulatorUse::kRead) \ |
316 \ | 316 \ |
317 /* Generators */ \ | 317 /* Generators */ \ |
| 318 V(RestoreGeneratorState, AccumulatorUse::kWrite, OperandType::kReg) \ |
318 V(SuspendGenerator, AccumulatorUse::kRead, OperandType::kReg, \ | 319 V(SuspendGenerator, AccumulatorUse::kRead, OperandType::kReg, \ |
319 OperandType::kFlag8) \ | 320 OperandType::kRegList, OperandType::kRegCount, OperandType::kFlag8) \ |
320 V(ResumeGenerator, AccumulatorUse::kWrite, OperandType::kReg) \ | 321 V(RestoreGeneratorRegisters, AccumulatorUse::kNone, OperandType::kReg, \ |
| 322 OperandType::kRegOutList, OperandType::kRegCount) \ |
321 \ | 323 \ |
322 /* Debugger */ \ | 324 /* Debugger */ \ |
323 V(Debugger, AccumulatorUse::kNone) \ | 325 V(Debugger, AccumulatorUse::kNone) \ |
324 \ | 326 \ |
325 /* Debug Breakpoints - one for each possible size of unscaled bytecodes */ \ | 327 /* Debug Breakpoints - one for each possible size of unscaled bytecodes */ \ |
326 /* and one for each operand widening prefix bytecode */ \ | 328 /* and one for each operand widening prefix bytecode */ \ |
327 V(DebugBreak0, AccumulatorUse::kRead) \ | 329 V(DebugBreak0, AccumulatorUse::kRead) \ |
328 V(DebugBreak1, AccumulatorUse::kRead, OperandType::kReg) \ | 330 V(DebugBreak1, AccumulatorUse::kRead, OperandType::kReg) \ |
329 V(DebugBreak2, AccumulatorUse::kRead, OperandType::kReg, OperandType::kReg) \ | 331 V(DebugBreak2, AccumulatorUse::kRead, OperandType::kReg, OperandType::kReg) \ |
330 V(DebugBreak3, AccumulatorUse::kRead, OperandType::kReg, OperandType::kReg, \ | 332 V(DebugBreak3, AccumulatorUse::kRead, OperandType::kReg, OperandType::kReg, \ |
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
814 switch (operand_type) { | 816 switch (operand_type) { |
815 case OperandType::kReg: | 817 case OperandType::kReg: |
816 case OperandType::kRegOut: | 818 case OperandType::kRegOut: |
817 return 1; | 819 return 1; |
818 case OperandType::kRegPair: | 820 case OperandType::kRegPair: |
819 case OperandType::kRegOutPair: | 821 case OperandType::kRegOutPair: |
820 return 2; | 822 return 2; |
821 case OperandType::kRegOutTriple: | 823 case OperandType::kRegOutTriple: |
822 return 3; | 824 return 3; |
823 case OperandType::kRegList: | 825 case OperandType::kRegList: |
| 826 case OperandType::kRegOutList: |
824 UNREACHABLE(); | 827 UNREACHABLE(); |
825 default: | 828 default: |
826 return 0; | 829 return 0; |
827 } | 830 } |
828 UNREACHABLE(); | 831 UNREACHABLE(); |
829 } | 832 } |
830 | 833 |
831 // Returns the size of |operand| for |operand_scale|. | 834 // Returns the size of |operand| for |operand_scale|. |
832 static OperandSize SizeOfOperand(OperandType operand, OperandScale scale); | 835 static OperandSize SizeOfOperand(OperandType operand, OperandScale scale); |
833 | 836 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
888 }; | 891 }; |
889 | 892 |
890 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, | 893 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, |
891 const Bytecode& bytecode); | 894 const Bytecode& bytecode); |
892 | 895 |
893 } // namespace interpreter | 896 } // namespace interpreter |
894 } // namespace internal | 897 } // namespace internal |
895 } // namespace v8 | 898 } // namespace v8 |
896 | 899 |
897 #endif // V8_INTERPRETER_BYTECODES_H_ | 900 #endif // V8_INTERPRETER_BYTECODES_H_ |
OLD | NEW |