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