5#ifndef V8_DEOPTIMIZER_TRANSLATION_OPCODE_H_ 
    6#define V8_DEOPTIMIZER_TRANSLATION_OPCODE_H_ 
   14#define TRANSLATION_JS_FRAME_OPCODE_LIST(V)   \ 
   15  V(INTERPRETED_FRAME_WITH_RETURN, 6)         \ 
   16  V(INTERPRETED_FRAME_WITHOUT_RETURN, 4)      \ 
   17  V(JAVASCRIPT_BUILTIN_CONTINUATION_FRAME, 3) \ 
   18  V(JAVASCRIPT_BUILTIN_CONTINUATION_WITH_CATCH_FRAME, 3) 
 
   20#define TRANSLATION_FRAME_OPCODE_LIST(V)               \ 
   21  V(CONSTRUCT_CREATE_STUB_FRAME, 2)                    \ 
   22  V(CONSTRUCT_INVOKE_STUB_FRAME, 1)                    \ 
   23  V(BUILTIN_CONTINUATION_FRAME, 3)                     \ 
   24  IF_WASM(V, JS_TO_WASM_BUILTIN_CONTINUATION_FRAME, 4) \ 
   25  IF_WASM(V, WASM_INLINED_INTO_JS_FRAME, 3)            \ 
   26  IF_WASM(V, LIFTOFF_FRAME, 3)                         \ 
   27  V(INLINED_EXTRA_ARGUMENTS, 3) 
 
   29#define TRANSLATION_OPCODE_LIST(V)    \ 
   30  TRANSLATION_JS_FRAME_OPCODE_LIST(V) \ 
   31  TRANSLATION_FRAME_OPCODE_LIST(V)    \ 
   32  V(ARGUMENTS_ELEMENTS, 1)            \ 
   33  V(ARGUMENTS_LENGTH, 0)              \ 
   35  V(BEGIN_WITHOUT_FEEDBACK, 3)        \ 
   36  V(BEGIN_WITH_FEEDBACK, 3)           \ 
   38  V(BOOL_STACK_SLOT, 1)               \ 
   39  V(CAPTURED_OBJECT, 1)               \ 
   41  V(DOUBLE_REGISTER, 1)               \ 
   42  V(DOUBLE_STACK_SLOT, 1)             \ 
   43  V(SIMD128_STACK_SLOT, 1)            \ 
   44  V(HOLEY_DOUBLE_REGISTER, 1)         \ 
   45  V(HOLEY_DOUBLE_STACK_SLOT, 1)       \ 
   46  V(SIMD128_REGISTER, 1)              \ 
   47  V(DUPLICATED_OBJECT, 1)             \ 
   48  V(FLOAT_REGISTER, 1)                \ 
   49  V(FLOAT_STACK_SLOT, 1)              \ 
   50  V(INT32_REGISTER, 1)                \ 
   51  V(INT32_STACK_SLOT, 1)              \ 
   52  V(INT64_REGISTER, 1)                \ 
   53  V(INT64_STACK_SLOT, 1)              \ 
   54  V(SIGNED_BIGINT64_REGISTER, 1)      \ 
   55  V(SIGNED_BIGINT64_STACK_SLOT, 1)    \ 
   56  V(UNSIGNED_BIGINT64_REGISTER, 1)    \ 
   57  V(UNSIGNED_BIGINT64_STACK_SLOT, 1)  \ 
   61  V(TAGGED_STACK_SLOT, 1)             \ 
   62  V(UINT32_REGISTER, 1)               \ 
   63  V(UINT32_STACK_SLOT, 1)             \ 
   64  V(UPDATE_FEEDBACK, 2)               \ 
   65  V(MATCH_PREVIOUS_TRANSLATION, 1) 
 
   68#define CASE(name, ...) name, 
 
   73#define PLUS_ONE(...) +1 
   83#define CASE(name, operand_count) operand_count, 
   86  return counts[
static_cast<int>(o)];
 
 
   90#define CASE(name, operand_count) \ 
   91  static_assert(operand_count <= kMaxTranslationOperandCount); 
   96  return o == TranslationOpcode::BEGIN_WITH_FEEDBACK ||
 
   97         o == TranslationOpcode::BEGIN_WITHOUT_FEEDBACK;
 
 
  102      0 == 
static_cast<int>(TranslationOpcode::INTERPRETED_FRAME_WITH_RETURN));
 
 
  110      static_cast<int>(TranslationOpcode::CONSTRUCT_CREATE_STUB_FRAME));
 
 
  115  return o == TranslationOpcode::INTERPRETED_FRAME_WITH_RETURN ||
 
  116         o == TranslationOpcode::INTERPRETED_FRAME_WITHOUT_RETURN;
 
 
  121#define CASE(name, _)           \ 
  122  case TranslationOpcode::name: \ 
  128      out << 
"BROKEN_OPCODE_" << 
static_cast<uint8_t
>(opcode);
 
 
  134#undef TRANSLATION_OPCODE_LIST 
  135#undef TRANSLATION_FRAME_OPCODE_LIST 
static constexpr int kNumTranslationJsFrameOpcodes
 
bool IsTranslationFrameOpcode(TranslationOpcode o)
 
static constexpr int kNumTranslationFrameOpcodes
 
bool TranslationOpcodeIsBegin(TranslationOpcode o)
 
bool IsTranslationInterpreterFrameOpcode(TranslationOpcode o)
 
int TranslationOpcodeOperandCount(TranslationOpcode o)
 
std::ostream & operator<<(std::ostream &os, AtomicMemoryOrder order)
 
static constexpr int kNumTranslationOpcodes
 
bool IsTranslationJsFrameOpcode(TranslationOpcode o)
 
constexpr int kMaxTranslationOperandCount
 
#define TRANSLATION_FRAME_OPCODE_LIST(V)
 
#define TRANSLATION_JS_FRAME_OPCODE_LIST(V)
 
#define TRANSLATION_OPCODE_LIST(V)