use crate::hermes;
build_instructions!(
(0, Unreachable, ),
(1, NewObjectWithBuffer, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt16, p3: UInt16),
(2, NewObjectWithBufferLong, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt32, p3: UInt32),
(3, NewObject, r0: Reg8),
(4, NewObjectWithParent, r0: Reg8, r1: Reg8),
(5, NewArrayWithBuffer, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt16),
(6, NewArrayWithBufferLong, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt32),
(7, NewArray, r0: Reg8, p0: UInt16),
(8, Mov, r0: Reg8, r1: Reg8),
(9, MovLong, r0: Reg32, r1: Reg32),
(10, Negate, r0: Reg8, r1: Reg8),
(11, Not, r0: Reg8, r1: Reg8),
(12, BitNot, r0: Reg8, r1: Reg8),
(13, TypeOf, r0: Reg8, r1: Reg8),
(14, Eq, r0: Reg8, r1: Reg8, r2: Reg8),
(15, StrictEq, r0: Reg8, r1: Reg8, r2: Reg8),
(16, Neq, r0: Reg8, r1: Reg8, r2: Reg8),
(17, StrictNeq, r0: Reg8, r1: Reg8, r2: Reg8),
(18, Less, r0: Reg8, r1: Reg8, r2: Reg8),
(19, LessEq, r0: Reg8, r1: Reg8, r2: Reg8),
(20, Greater, r0: Reg8, r1: Reg8, r2: Reg8),
(21, GreaterEq, r0: Reg8, r1: Reg8, r2: Reg8),
(22, Add, r0: Reg8, r1: Reg8, r2: Reg8),
(23, AddN, r0: Reg8, r1: Reg8, r2: Reg8),
(24, Mul, r0: Reg8, r1: Reg8, r2: Reg8),
(25, MulN, r0: Reg8, r1: Reg8, r2: Reg8),
(26, Div, r0: Reg8, r1: Reg8, r2: Reg8),
(27, DivN, r0: Reg8, r1: Reg8, r2: Reg8),
(28, Mod, r0: Reg8, r1: Reg8, r2: Reg8),
(29, Sub, r0: Reg8, r1: Reg8, r2: Reg8),
(30, SubN, r0: Reg8, r1: Reg8, r2: Reg8),
(31, LShift, r0: Reg8, r1: Reg8, r2: Reg8),
(32, RShift, r0: Reg8, r1: Reg8, r2: Reg8),
(33, URshift, r0: Reg8, r1: Reg8, r2: Reg8),
(34, BitAnd, r0: Reg8, r1: Reg8, r2: Reg8),
(35, BitXor, r0: Reg8, r1: Reg8, r2: Reg8),
(36, BitOr, r0: Reg8, r1: Reg8, r2: Reg8),
(37, Inc, r0: Reg8, r1: Reg8),
(38, Dec, r0: Reg8, r1: Reg8),
(39, InstanceOf, r0: Reg8, r1: Reg8, r2: Reg8),
(40, IsIn, r0: Reg8, r1: Reg8, r2: Reg8),
(41, GetEnvironment, r0: Reg8, p0: UInt8),
(42, StoreToEnvironment, r0: Reg8, p0: UInt8, r1: Reg8),
(43, StoreToEnvironmentL, r0: Reg8, p0: UInt16, r1: Reg8),
(44, StoreNPToEnvironment, r0: Reg8, p0: UInt8, r1: Reg8),
(45, StoreNPToEnvironmentL, r0: Reg8, p0: UInt16, r1: Reg8),
(46, LoadFromEnvironment, r0: Reg8, r1: Reg8, p0: UInt8),
(47, LoadFromEnvironmentL, r0: Reg8, r1: Reg8, p0: UInt16),
(48, GetGlobalObject, r0: Reg8),
(49, GetNewTarget, r0: Reg8),
(50, CreateEnvironment, r0: Reg8),
(51, CreateInnerEnvironment, r0: Reg8, r1: Reg8, p0: UInt32),
(52, DeclareGlobalVar, p0: StringIDUInt32),
(53, ThrowIfHasRestrictedGlobalProperty, p0: StringIDUInt32),
(54, GetByIdShort, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt8),
(55, GetById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
(56, GetByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
(57, TryGetById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
(58, TryGetByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
(59, PutById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
(60, PutByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
(61, TryPutById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
(62, TryPutByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
(63, PutNewOwnByIdShort, r0: Reg8, r1: Reg8, p0: StringIDUInt8),
(64, PutNewOwnById, r0: Reg8, r1: Reg8, p0: StringIDUInt16),
(65, PutNewOwnByIdLong, r0: Reg8, r1: Reg8, p0: StringIDUInt32),
(66, PutNewOwnNEById, r0: Reg8, r1: Reg8, p0: StringIDUInt16),
(67, PutNewOwnNEByIdLong, r0: Reg8, r1: Reg8, p0: StringIDUInt32),
(68, PutOwnByIndex, r0: Reg8, r1: Reg8, p0: UInt8),
(69, PutOwnByIndexL, r0: Reg8, r1: Reg8, p0: UInt32),
(70, PutOwnByVal, r0: Reg8, r1: Reg8, r2: Reg8, p0: UInt8),
(71, DelById, r0: Reg8, r1: Reg8, p0: StringIDUInt16),
(72, DelByIdLong, r0: Reg8, r1: Reg8, p0: StringIDUInt32),
(73, GetByVal, r0: Reg8, r1: Reg8, r2: Reg8),
(74, PutByVal, r0: Reg8, r1: Reg8, r2: Reg8),
(75, DelByVal, r0: Reg8, r1: Reg8, r2: Reg8),
(76, PutOwnGetterSetterByVal, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, p0: UInt8),
(77, GetPNameList, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8),
(78, GetNextPName, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, r4: Reg8),
(79, Call, r0: Reg8, r1: Reg8, p0: UInt8),
(80, Construct, r0: Reg8, r1: Reg8, p0: UInt8),
(81, Call1, r0: Reg8, r1: Reg8, r2: Reg8),
(82, CallDirect, r0: Reg8, p0: UInt8, p1: FunctionIDUInt16),
(83, Call2, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8),
(84, Call3, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, r4: Reg8),
(85, Call4, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, r4: Reg8, r5: Reg8),
(86, CallLong, r0: Reg8, r1: Reg8, p0: UInt32),
(87, ConstructLong, r0: Reg8, r1: Reg8, p0: UInt32),
(88, CallDirectLongIndex, r0: Reg8, p0: UInt8, p1: UInt32),
(89, CallBuiltin, r0: Reg8, p0: UInt8, p1: UInt8),
(90, CallBuiltinLong, r0: Reg8, p0: UInt8, p1: UInt32),
(91, GetBuiltinClosure, r0: Reg8, p0: UInt8),
(92, Ret, r0: Reg8),
(93, Catch, r0: Reg8),
(94, DirectEval, r0: Reg8, r1: Reg8),
(95, Throw, r0: Reg8),
(96, ThrowIfEmpty, r0: Reg8, r1: Reg8),
(97, Debugger, ),
(98, AsyncBreakCheck, ),
(99, ProfilePoint, p0: UInt16),
(100, CreateClosure, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
(101, CreateClosureLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
(102, CreateGeneratorClosure, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
(103, CreateGeneratorClosureLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
(104, CreateAsyncClosure, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
(105, CreateAsyncClosureLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
(106, CreateThis, r0: Reg8, r1: Reg8, r2: Reg8),
(107, SelectObject, r0: Reg8, r1: Reg8, r2: Reg8),
(108, LoadParam, r0: Reg8, p0: UInt8),
(109, LoadParamLong, r0: Reg8, p0: UInt32),
(110, LoadConstUInt8, r0: Reg8, p0: UInt8),
(111, LoadConstInt, r0: Reg8, p0: Imm32),
(112, LoadConstDouble, r0: Reg8, p0: Double),
(113, LoadConstBigInt, r0: Reg8, p0: BigIntIDUInt16),
(114, LoadConstBigIntLongIndex, r0: Reg8, p0: BigIntIDUInt32),
(115, LoadConstString, r0: Reg8, p0: StringIDUInt16),
(116, LoadConstStringLongIndex, r0: Reg8, p0: StringIDUInt32),
(117, LoadConstEmpty, r0: Reg8),
(118, LoadConstUndefined, r0: Reg8),
(119, LoadConstNull, r0: Reg8),
(120, LoadConstTrue, r0: Reg8),
(121, LoadConstFalse, r0: Reg8),
(122, LoadConstZero, r0: Reg8),
(123, CoerceThisNS, r0: Reg8, r1: Reg8),
(124, LoadThisNS, r0: Reg8),
(125, ToNumber, r0: Reg8, r1: Reg8),
(126, ToNumeric, r0: Reg8, r1: Reg8),
(127, ToInt32, r0: Reg8, r1: Reg8),
(128, AddEmptyString, r0: Reg8, r1: Reg8),
(129, GetArgumentsPropByVal, r0: Reg8, r1: Reg8, r2: Reg8),
(130, GetArgumentsLength, r0: Reg8, r1: Reg8),
(131, ReifyArguments, r0: Reg8),
(132, CreateRegExp, r0: Reg8, p0: StringIDUInt32, p1: StringIDUInt32, p2: UInt32),
(133, SwitchImm, r0: Reg8, p0: UInt32, p1: Addr32, p2: UInt32, p3: UInt32),
(134, StartGenerator, ),
(135, ResumeGenerator, r0: Reg8, r1: Reg8),
(136, CompleteGenerator, ),
(137, CreateGenerator, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
(138, CreateGeneratorLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
(139, IteratorBegin, r0: Reg8, r1: Reg8),
(140, IteratorNext, r0: Reg8, r1: Reg8, r2: Reg8),
(141, IteratorClose, r0: Reg8, p0: UInt8),
(142, Jmp, p0: Addr8),
(143, JmpLong, p0: Addr32),
(144, JmpTrue, p0: Addr8, r0: Reg8),
(145, JmpTrueLong, p0: Addr32, r0: Reg8),
(146, JmpFalse, p0: Addr8, r0: Reg8),
(147, JmpFalseLong, p0: Addr32, r0: Reg8),
(148, JmpUndefined, p0: Addr8, r0: Reg8),
(149, JmpUndefinedLong, p0: Addr32, r0: Reg8),
(150, SaveGenerator, p0: Addr8),
(151, SaveGeneratorLong, p0: Addr32),
(152, JLess, p0: Addr8, r0: Reg8, r1: Reg8),
(153, JLessLong, p0: Addr32, r0: Reg8, r1: Reg8),
(154, JNotLess, p0: Addr8, r0: Reg8, r1: Reg8),
(155, JNotLessLong, p0: Addr32, r0: Reg8, r1: Reg8),
(156, JLessN, p0: Addr8, r0: Reg8, r1: Reg8),
(157, JLessNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(158, JNotLessN, p0: Addr8, r0: Reg8, r1: Reg8),
(159, JNotLessNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(160, JLessEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(161, JLessEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(162, JNotLessEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(163, JNotLessEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(164, JLessEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
(165, JLessEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(166, JNotLessEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
(167, JNotLessEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(168, JGreater, p0: Addr8, r0: Reg8, r1: Reg8),
(169, JGreaterLong, p0: Addr32, r0: Reg8, r1: Reg8),
(170, JNotGreater, p0: Addr8, r0: Reg8, r1: Reg8),
(171, JNotGreaterLong, p0: Addr32, r0: Reg8, r1: Reg8),
(172, JGreaterN, p0: Addr8, r0: Reg8, r1: Reg8),
(173, JGreaterNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(174, JNotGreaterN, p0: Addr8, r0: Reg8, r1: Reg8),
(175, JNotGreaterNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(176, JGreaterEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(177, JGreaterEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(178, JNotGreaterEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(179, JNotGreaterEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(180, JGreaterEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
(181, JGreaterEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(182, JNotGreaterEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
(183, JNotGreaterEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
(184, JEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(185, JEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(186, JNotEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(187, JNotEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(188, JStrictEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(189, JStrictEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(190, JStrictNotEqual, p0: Addr8, r0: Reg8, r1: Reg8),
(191, JStrictNotEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
(192, Add32, r0: Reg8, r1: Reg8, r2: Reg8),
(193, Sub32, r0: Reg8, r1: Reg8, r2: Reg8),
(194, Mul32, r0: Reg8, r1: Reg8, r2: Reg8),
(195, Divi32, r0: Reg8, r1: Reg8, r2: Reg8),
(196, Divu32, r0: Reg8, r1: Reg8, r2: Reg8),
(197, Loadi8, r0: Reg8, r1: Reg8, r2: Reg8),
(198, Loadu8, r0: Reg8, r1: Reg8, r2: Reg8),
(199, Loadi16, r0: Reg8, r1: Reg8, r2: Reg8),
(200, Loadu16, r0: Reg8, r1: Reg8, r2: Reg8),
(201, Loadi32, r0: Reg8, r1: Reg8, r2: Reg8),
(202, Loadu32, r0: Reg8, r1: Reg8, r2: Reg8),
(203, Store8, r0: Reg8, r1: Reg8, r2: Reg8),
(204, Store16, r0: Reg8, r1: Reg8, r2: Reg8),
(205, Store32, r0: Reg8, r1: Reg8, r2: Reg8)
);