// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library vm.bytecode.dbc;

// List of changes from original DBC (described in runtime/vm/constants_dbc.h):
//
// 1. StoreFieldTOS, LoadFieldTOS instructions:
//    D = index of constant pool entry with InstanceField tag.
//    (instead of field offset in words).
//
// 2. EntryOptional instruction is revived in order to re-shuffle optional
//    parameters. This DBC instruction was removed at
//    https://github.com/dart-lang/sdk/commit/cf1de7d46cd88e204380e8f96a993439be56b24c
//
// 3. NativeCall instruction is modified to have 'D' format and take 1 argument:
//    D = index of NativeEntry constant pool entry
//
// 4. JumpIfNoAsserts instruction is added. This instruction jumps to the given
//    target if assertions are not enabled. It has the same format as Jump
//    instruction.
//
// 5. StoreContextParent stores context SP[0] into `parent` field of context SP[-1].
//
// 6. LoadContextParent loads parent from context SP[0].
//
// 7. StoreContextVar stores value SP[0] into context SP[-1] at index D.
//
// 8. LoadContextVar loads value from context SP[0] at index D.
//
// 9. LoadTypeArgumentsField loads instantiator type arguments from an
//    instance SP[0].
//    D = index of TypeArgumentsField constant pool entry corresponding
//    to an instance's class.
//
// 10. InstanceCall1 and InstanceCall2 instructions are superseded by
//     InstanceCall which works for any number of checked arguments.
//
// 11. EntryFixed instruction works like Entry. In addition, it checks number
//     of fixed arguments.
//
// 12. JumpIfNotZeroTypeArgs instruction jumps if number of passed
//     function type arguments is not zero.
//
// 13. PushNull, PushTrue, PushFalse, PushInt instructions added.
//

enum Opcode {
  kTrap,
  kNop,
  kCompile,
  kHotCheck,
  kIntrinsic,
  kDrop1,
  kDropR,
  kDrop,
  kJump,
  kJumpIfNoAsserts,
  kJumpIfNotZeroTypeArgs,
  kReturn,
  kReturnTOS,
  kMove,
  kSwap,
  kPush,
  kLoadConstant,
  kLoadClassId,
  kLoadClassIdTOS,
  kPushConstant,
  kPushNull,
  kPushTrue,
  kPushFalse,
  kPushInt,
  kStoreLocal,
  kPopLocal,
  kIndirectStaticCall,
  kStaticCall,
  kInstanceCall,
  kInstanceCall1Opt,
  kInstanceCall2Opt,
  kPushPolymorphicInstanceCall,
  kPushPolymorphicInstanceCallByRange,
  kNativeCall,
  kOneByteStringFromCharCode,
  kStringToCharCode,
  kAddTOS,
  kSubTOS,
  kMulTOS,
  kBitOrTOS,
  kBitAndTOS,
  kEqualTOS,
  kLessThanTOS,
  kGreaterThanTOS,
  kSmiAddTOS,
  kSmiSubTOS,
  kSmiMulTOS,
  kSmiBitAndTOS,
  kAdd,
  kSub,
  kMul,
  kDiv,
  kMod,
  kShl,
  kShr,
  kShlImm,
  kNeg,
  kBitOr,
  kBitAnd,
  kBitXor,
  kBitNot,
  kMin,
  kMax,
  kWriteIntoDouble,
  kUnboxDouble,
  kCheckedUnboxDouble,
  kUnboxInt32,
  kBoxInt32,
  kBoxUint32,
  kSmiToDouble,
  kDoubleToSmi,
  kDAdd,
  kDSub,
  kDMul,
  kDDiv,
  kDNeg,
  kDSqrt,
  kDMin,
  kDMax,
  kDCos,
  kDSin,
  kDPow,
  kDMod,
  kDTruncate,
  kDFloor,
  kDCeil,
  kDoubleToFloat,
  kFloatToDouble,
  kDoubleIsNaN,
  kDoubleIsInfinite,
  kStoreStaticTOS,
  kPushStatic,
  kInitStaticTOS,
  kIfNeStrictTOS,
  kIfEqStrictTOS,
  kIfNeStrictNumTOS,
  kIfEqStrictNumTOS,
  kIfSmiLtTOS,
  kIfSmiLeTOS,
  kIfSmiGeTOS,
  kIfSmiGtTOS,
  kIfNeStrict,
  kIfEqStrict,
  kIfLe,
  kIfLt,
  kIfGe,
  kIfGt,
  kIfULe,
  kIfULt,
  kIfUGe,
  kIfUGt,
  kIfDNe,
  kIfDEq,
  kIfDLe,
  kIfDLt,
  kIfDGe,
  kIfDGt,
  kIfNeStrictNum,
  kIfEqStrictNum,
  kIfEqNull,
  kIfNeNull,
  kCreateArrayTOS,
  kCreateArrayOpt,
  kAllocate,
  kAllocateT,
  kAllocateOpt,
  kAllocateTOpt,
  kStoreIndexedTOS,
  kStoreIndexed,
  kStoreIndexedUint8,
  kStoreIndexedExternalUint8,
  kStoreIndexedOneByteString,
  kStoreIndexedUint32,
  kStoreIndexedFloat32,
  kStoreIndexed4Float32,
  kStoreIndexedFloat64,
  kStoreIndexed8Float64,
  kNoSuchMethod,
  kTailCall,
  kTailCallOpt,
  kLoadArgDescriptor,
  kLoadArgDescriptorOpt,
  kLoadFpRelativeSlot,
  kLoadFpRelativeSlotOpt,
  kStoreFpRelativeSlot,
  kStoreFpRelativeSlotOpt,
  kLoadIndexedTOS,
  kLoadIndexed,
  kLoadIndexedUint8,
  kLoadIndexedInt8,
  kLoadIndexedInt32,
  kLoadIndexedUint32,
  kLoadIndexedExternalUint8,
  kLoadIndexedExternalInt8,
  kLoadIndexedFloat32,
  kLoadIndexed4Float32,
  kLoadIndexedFloat64,
  kLoadIndexed8Float64,
  kLoadIndexedOneByteString,
  kLoadIndexedTwoByteString,
  kStoreField,
  kStoreFieldExt,
  kStoreFieldTOS,
  kStoreContextParent,
  kStoreContextVar,
  kLoadField,
  kLoadFieldExt,
  kLoadUntagged,
  kLoadFieldTOS,
  kLoadTypeArgumentsField,
  kLoadContextParent,
  kLoadContextVar,
  kBooleanNegateTOS,
  kBooleanNegate,
  kThrow,
  kEntry,
  kEntryFixed,
  kEntryOptional,
  kEntryOptimized,
  kFrame,
  kSetFrame,
  kAllocateContext,
  kAllocateUninitializedContext,
  kCloneContext,
  kMoveSpecial,
  kInstantiateType,
  kInstantiateTypeArgumentsTOS,
  kInstanceOf,
  kBadTypeError,
  kAssertAssignable,
  kAssertSubtype,
  kAssertBoolean,
  kTestSmi,
  kTestCids,
  kCheckSmi,
  kCheckEitherNonSmi,
  kCheckClassId,
  kCheckClassIdRange,
  kCheckBitTest,
  kCheckCids,
  kCheckCidsByRange,
  kCheckStack,
  kCheckStackAlwaysExit,
  kCheckFunctionTypeArgs,
  kDebugStep,
  kDebugBreak,
  kDeopt,
  kDeoptRewind,
}

enum Encoding {
  k0,
  kA,
  kAD,
  kAX,
  kD,
  kX,
  kABC,
  kABY,
  kT,
}

enum Operand {
  none, // ignored / non-existent operand
  imm, // immediate operand
  lit, // constant literal from object pool
  reg, // register (unsigned FP relative local)
  xeg, // x-register (signed FP relative local)
  tgt, // jump target relative to the PC of the current instruction
  spe, // SpecialIndex
}

class Format {
  final Encoding encoding;
  final List<Operand> operands;
  const Format(this.encoding, this.operands);
}

const Map<Opcode, Format> BytecodeFormats = const {
  Opcode.kTrap: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kNop: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kCompile: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kHotCheck: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kIntrinsic: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kDrop1: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kDropR: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kDrop: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kJump: const Format(
      Encoding.kT, const [Operand.tgt, Operand.none, Operand.none]),
  Opcode.kJumpIfNoAsserts: const Format(
      Encoding.kT, const [Operand.tgt, Operand.none, Operand.none]),
  Opcode.kJumpIfNotZeroTypeArgs: const Format(
      Encoding.kT, const [Operand.tgt, Operand.none, Operand.none]),
  Opcode.kReturn: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kReturnTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kMove: const Format(
      Encoding.kAX, const [Operand.reg, Operand.xeg, Operand.none]),
  Opcode.kSwap: const Format(
      Encoding.kAX, const [Operand.reg, Operand.xeg, Operand.none]),
  Opcode.kPush: const Format(
      Encoding.kX, const [Operand.xeg, Operand.none, Operand.none]),
  Opcode.kLoadConstant: const Format(
      Encoding.kAD, const [Operand.reg, Operand.lit, Operand.none]),
  Opcode.kLoadClassId: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kLoadClassIdTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kPushConstant: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kPushNull: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kPushTrue: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kPushFalse: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kPushInt: const Format(
      Encoding.kX, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kStoreLocal: const Format(
      Encoding.kX, const [Operand.xeg, Operand.none, Operand.none]),
  Opcode.kPopLocal: const Format(
      Encoding.kX, const [Operand.xeg, Operand.none, Operand.none]),
  Opcode.kIndirectStaticCall: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kStaticCall: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kInstanceCall: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kInstanceCall1Opt: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kInstanceCall2Opt: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kPushPolymorphicInstanceCall: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kPushPolymorphicInstanceCallByRange: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kNativeCall: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kOneByteStringFromCharCode: const Format(
      Encoding.kAX, const [Operand.reg, Operand.xeg, Operand.none]),
  Opcode.kStringToCharCode: const Format(
      Encoding.kAX, const [Operand.reg, Operand.xeg, Operand.none]),
  Opcode.kAddTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kSubTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kMulTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kBitOrTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kBitAndTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kEqualTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kLessThanTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kGreaterThanTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kSmiAddTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kSmiSubTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kSmiMulTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kSmiBitAndTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kAdd: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kSub: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kMul: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDiv: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kMod: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kShl: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kShr: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kShlImm: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.imm]),
  Opcode.kNeg: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kBitOr: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kBitAnd: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kBitXor: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kBitNot: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kMin: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kMax: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kWriteIntoDouble: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kUnboxDouble: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kCheckedUnboxDouble: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kUnboxInt32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.imm]),
  Opcode.kBoxInt32: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kBoxUint32: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kSmiToDouble: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDoubleToSmi: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDAdd: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDSub: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDMul: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDDiv: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDNeg: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDSqrt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDMin: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDMax: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDCos: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDSin: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDPow: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDMod: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kDTruncate: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDFloor: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDCeil: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDoubleToFloat: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kFloatToDouble: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kDoubleIsNaN: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kDoubleIsInfinite: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kStoreStaticTOS: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kPushStatic: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kInitStaticTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfNeStrictTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfEqStrictTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfNeStrictNumTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfEqStrictNumTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfSmiLtTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfSmiLeTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfSmiGeTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfSmiGtTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kIfNeStrict: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfEqStrict: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfLe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfLt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfGe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfGt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfULe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfULt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfUGe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfUGt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfDNe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfDEq: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfDLe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfDLt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfDGe: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfDGt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfNeStrictNum: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfEqStrictNum: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kIfEqNull: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kIfNeNull: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kCreateArrayTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kCreateArrayOpt: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kAllocate: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kAllocateT: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kAllocateOpt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.lit, Operand.none]),
  Opcode.kAllocateTOpt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.lit, Operand.none]),
  Opcode.kStoreIndexedTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kStoreIndexed: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexedUint8: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexedExternalUint8: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexedOneByteString: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexedUint32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexedFloat32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexed4Float32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexedFloat64: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreIndexed8Float64: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kNoSuchMethod: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kTailCall: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kTailCallOpt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kLoadArgDescriptor: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kLoadArgDescriptorOpt: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kLoadFpRelativeSlot: const Format(
      Encoding.kX, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kLoadFpRelativeSlotOpt: const Format(
      Encoding.kABY, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreFpRelativeSlot: const Format(
      Encoding.kX, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kStoreFpRelativeSlotOpt: const Format(
      Encoding.kABY, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kLoadIndexed: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedUint8: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedInt8: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedInt32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedUint32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedExternalUint8: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedExternalInt8: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedFloat32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexed4Float32: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedFloat64: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexed8Float64: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedOneByteString: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kLoadIndexedTwoByteString: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.reg]),
  Opcode.kStoreField: const Format(
      Encoding.kABC, const [Operand.reg, Operand.imm, Operand.reg]),
  Opcode.kStoreFieldExt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kStoreFieldTOS: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kStoreContextParent: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kStoreContextVar: const Format(
      Encoding.kD, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kLoadField: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.imm]),
  Opcode.kLoadFieldExt: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kLoadUntagged: const Format(
      Encoding.kABC, const [Operand.reg, Operand.reg, Operand.imm]),
  Opcode.kLoadFieldTOS: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kLoadTypeArgumentsField: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kLoadContextParent: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kLoadContextVar: const Format(
      Encoding.kD, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kBooleanNegateTOS: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kBooleanNegate: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kThrow: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kEntry: const Format(
      Encoding.kD, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kEntryFixed: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kEntryOptional: const Format(
      Encoding.kABC, const [Operand.imm, Operand.imm, Operand.imm]),
  Opcode.kEntryOptimized: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kFrame: const Format(
      Encoding.kD, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kSetFrame: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kAllocateContext: const Format(
      Encoding.kD, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kAllocateUninitializedContext: const Format(
      Encoding.kAD, const [Operand.reg, Operand.imm, Operand.none]),
  Opcode.kCloneContext: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kMoveSpecial: const Format(
      Encoding.kAD, const [Operand.reg, Operand.spe, Operand.none]),
  Opcode.kInstantiateType: const Format(
      Encoding.kD, const [Operand.lit, Operand.none, Operand.none]),
  Opcode.kInstantiateTypeArgumentsTOS: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kInstanceOf: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kBadTypeError: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kAssertAssignable: const Format(
      Encoding.kAD, const [Operand.imm, Operand.lit, Operand.none]),
  Opcode.kAssertSubtype: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kAssertBoolean: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kTestSmi: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kTestCids: const Format(
      Encoding.kAD, const [Operand.reg, Operand.imm, Operand.none]),
  Opcode.kCheckSmi: const Format(
      Encoding.kA, const [Operand.reg, Operand.none, Operand.none]),
  Opcode.kCheckEitherNonSmi: const Format(
      Encoding.kAD, const [Operand.reg, Operand.reg, Operand.none]),
  Opcode.kCheckClassId: const Format(
      Encoding.kAD, const [Operand.reg, Operand.imm, Operand.none]),
  Opcode.kCheckClassIdRange: const Format(
      Encoding.kAD, const [Operand.reg, Operand.imm, Operand.none]),
  Opcode.kCheckBitTest: const Format(
      Encoding.kAD, const [Operand.reg, Operand.imm, Operand.none]),
  Opcode.kCheckCids: const Format(
      Encoding.kABC, const [Operand.reg, Operand.imm, Operand.imm]),
  Opcode.kCheckCidsByRange: const Format(
      Encoding.kABC, const [Operand.reg, Operand.imm, Operand.imm]),
  Opcode.kCheckStack: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kCheckStackAlwaysExit: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kCheckFunctionTypeArgs: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kDebugStep: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
  Opcode.kDebugBreak: const Format(
      Encoding.kA, const [Operand.imm, Operand.none, Operand.none]),
  Opcode.kDeopt: const Format(
      Encoding.kAD, const [Operand.imm, Operand.imm, Operand.none]),
  Opcode.kDeoptRewind: const Format(
      Encoding.k0, const [Operand.none, Operand.none, Operand.none]),
};

// Should match constant in runtime/vm/stack_frame_dbc.h.
const int kParamEndSlotFromFp = 4;

enum SpecialIndex {
  exception,
  stackTrace,
}

bool isJump(Opcode opcode) => BytecodeFormats[opcode].encoding == Encoding.kT;
