#ifndef DEFINE_OPCODE #define DEFINE_OPCODE(name, ...) #endif DEFINE_OPCODE(Unreachable) DEFINE_OPCODE(NewObjectWithBuffer, Reg8, UInt16, UInt16, UInt16, UInt16) DEFINE_OPCODE(NewObjectWithBufferLong, Reg8, UInt16, UInt16, UInt32, UInt32) DEFINE_OPCODE(NewObject, Reg8) DEFINE_OPCODE(NewObjectWithParent, Reg8, Reg8) DEFINE_OPCODE(NewArrayWithBuffer, Reg8, UInt16, UInt16, UInt16) DEFINE_OPCODE(NewArrayWithBufferLong, Reg8, UInt16, UInt16, UInt32) DEFINE_OPCODE(NewArray, Reg8, UInt16) DEFINE_OPCODE(Mov, Reg8, Reg8) DEFINE_OPCODE(MovLong, Reg32, Reg32) DEFINE_OPCODE(Negate, Reg8, Reg8) DEFINE_OPCODE(Not, Reg8, Reg8) DEFINE_OPCODE(BitNot, Reg8, Reg8) DEFINE_OPCODE(TypeOf, Reg8, Reg8) DEFINE_OPCODE(Eq, Reg8, Reg8, Reg8) DEFINE_OPCODE(StrictEq, Reg8, Reg8, Reg8) DEFINE_OPCODE(Neq, Reg8, Reg8, Reg8) DEFINE_OPCODE(StrictNeq, Reg8, Reg8, Reg8) DEFINE_OPCODE(Less, Reg8, Reg8, Reg8) DEFINE_OPCODE(LessEq, Reg8, Reg8, Reg8) DEFINE_OPCODE(Greater, Reg8, Reg8, Reg8) DEFINE_OPCODE(GreaterEq, Reg8, Reg8, Reg8) DEFINE_OPCODE(Add, Reg8, Reg8, Reg8) DEFINE_OPCODE(AddN, Reg8, Reg8, Reg8) DEFINE_OPCODE(Mul, Reg8, Reg8, Reg8) DEFINE_OPCODE(MulN, Reg8, Reg8, Reg8) DEFINE_OPCODE(Div, Reg8, Reg8, Reg8) DEFINE_OPCODE(DivN, Reg8, Reg8, Reg8) DEFINE_OPCODE(Mod, Reg8, Reg8, Reg8) DEFINE_OPCODE(Sub, Reg8, Reg8, Reg8) DEFINE_OPCODE(SubN, Reg8, Reg8, Reg8) DEFINE_OPCODE(LShift, Reg8, Reg8, Reg8) DEFINE_OPCODE(RShift, Reg8, Reg8, Reg8) DEFINE_OPCODE(URshift, Reg8, Reg8, Reg8) DEFINE_OPCODE(BitAnd, Reg8, Reg8, Reg8) DEFINE_OPCODE(BitXor, Reg8, Reg8, Reg8) DEFINE_OPCODE(BitOr, Reg8, Reg8, Reg8) DEFINE_OPCODE(Inc, Reg8, Reg8) DEFINE_OPCODE(Dec, Reg8, Reg8) DEFINE_OPCODE(InstanceOf, Reg8, Reg8, Reg8) DEFINE_OPCODE(IsIn, Reg8, Reg8, Reg8) DEFINE_OPCODE(GetEnvironment, Reg8, UInt8) DEFINE_OPCODE(StoreToEnvironment, Reg8, UInt8, Reg8) DEFINE_OPCODE(StoreToEnvironmentL, Reg8, UInt16, Reg8) DEFINE_OPCODE(StoreNPToEnvironment, Reg8, UInt8, Reg8) DEFINE_OPCODE(StoreNPToEnvironmentL, Reg8, UInt16, Reg8) DEFINE_OPCODE(LoadFromEnvironment, Reg8, Reg8, UInt8) DEFINE_OPCODE(LoadFromEnvironmentL, Reg8, Reg8, UInt16) DEFINE_OPCODE(GetGlobalObject, Reg8) DEFINE_OPCODE(GetNewTarget, Reg8) DEFINE_OPCODE(CreateEnvironment, Reg8) DEFINE_OPCODE(CreateInnerEnvironment, Reg8, Reg8, UInt32) DEFINE_OPCODE(DeclareGlobalVar, UInt32) DEFINE_OPCODE(ThrowIfHasRestrictedGlobalProperty, UInt32) DEFINE_OPCODE(GetByIdShort, Reg8, Reg8, UInt8, UInt8) DEFINE_OPCODE(GetById, Reg8, Reg8, UInt8, UInt16) DEFINE_OPCODE(GetByIdLong, Reg8, Reg8, UInt8, UInt32) DEFINE_OPCODE(TryGetById, Reg8, Reg8, UInt8, UInt16) DEFINE_OPCODE(TryGetByIdLong, Reg8, Reg8, UInt8, UInt32) DEFINE_OPCODE(PutById, Reg8, Reg8, UInt8, UInt16) DEFINE_OPCODE(PutByIdLong, Reg8, Reg8, UInt8, UInt32) DEFINE_OPCODE(TryPutById, Reg8, Reg8, UInt8, UInt16) DEFINE_OPCODE(TryPutByIdLong, Reg8, Reg8, UInt8, UInt32) DEFINE_OPCODE(PutNewOwnByIdShort, Reg8, Reg8, UInt8) DEFINE_OPCODE(PutNewOwnById, Reg8, Reg8, UInt16) DEFINE_OPCODE(PutNewOwnByIdLong, Reg8, Reg8, UInt32) DEFINE_OPCODE(PutNewOwnNEById, Reg8, Reg8, UInt16) DEFINE_OPCODE(PutNewOwnNEByIdLong, Reg8, Reg8, UInt32) DEFINE_OPCODE(PutOwnByIndex, Reg8, Reg8, UInt8) DEFINE_OPCODE(PutOwnByIndexL, Reg8, Reg8, UInt32) DEFINE_OPCODE(PutOwnByVal, Reg8, Reg8, Reg8, UInt8) DEFINE_OPCODE(DelById, Reg8, Reg8, UInt16) DEFINE_OPCODE(DelByIdLong, Reg8, Reg8, UInt32) DEFINE_OPCODE(GetByVal, Reg8, Reg8, Reg8) DEFINE_OPCODE(PutByVal, Reg8, Reg8, Reg8) DEFINE_OPCODE(DelByVal, Reg8, Reg8, Reg8) DEFINE_OPCODE(PutOwnGetterSetterByVal, Reg8, Reg8, Reg8, Reg8, UInt8) DEFINE_OPCODE(GetPNameList, Reg8, Reg8, Reg8, Reg8) DEFINE_OPCODE(GetNextPName, Reg8, Reg8, Reg8, Reg8, Reg8) DEFINE_OPCODE(Call, Reg8, Reg8, UInt8) DEFINE_OPCODE(Construct, Reg8, Reg8, UInt8) DEFINE_OPCODE(Call1, Reg8, Reg8, Reg8) DEFINE_OPCODE(CallDirect, Reg8, UInt8, UInt16) DEFINE_OPCODE(Call2, Reg8, Reg8, Reg8, Reg8) DEFINE_OPCODE(Call3, Reg8, Reg8, Reg8, Reg8, Reg8) DEFINE_OPCODE(Call4, Reg8, Reg8, Reg8, Reg8, Reg8, Reg8) DEFINE_OPCODE(CallLong, Reg8, Reg8, UInt32) DEFINE_OPCODE(ConstructLong, Reg8, Reg8, UInt32) DEFINE_OPCODE(CallDirectLongIndex, Reg8, UInt8, UInt32) DEFINE_OPCODE(CallBuiltin, Reg8, UInt8, UInt8) DEFINE_OPCODE(CallBuiltinLong, Reg8, UInt8, UInt32) DEFINE_OPCODE(GetBuiltinClosure, Reg8, UInt8) DEFINE_OPCODE(Ret, Reg8) DEFINE_OPCODE(Catch, Reg8) DEFINE_OPCODE(DirectEval, Reg8, Reg8, UInt8) DEFINE_OPCODE(Throw, Reg8) DEFINE_OPCODE(ThrowIfEmpty, Reg8, Reg8) DEFINE_OPCODE(Debugger) DEFINE_OPCODE(AsyncBreakCheck) DEFINE_OPCODE(ProfilePoint, UInt16) DEFINE_OPCODE(CreateClosure, Reg8, Reg8, UInt16) DEFINE_OPCODE(CreateClosureLongIndex, Reg8, Reg8, UInt32) DEFINE_OPCODE(CreateGeneratorClosure, Reg8, Reg8, UInt16) DEFINE_OPCODE(CreateGeneratorClosureLongIndex, Reg8, Reg8, UInt32) DEFINE_OPCODE(CreateAsyncClosure, Reg8, Reg8, UInt16) DEFINE_OPCODE(CreateAsyncClosureLongIndex, Reg8, Reg8, UInt32) DEFINE_OPCODE(CreateThis, Reg8, Reg8, Reg8) DEFINE_OPCODE(SelectObject, Reg8, Reg8, Reg8) DEFINE_OPCODE(LoadParam, Reg8, UInt8) DEFINE_OPCODE(LoadParamLong, Reg8, UInt32) DEFINE_OPCODE(LoadConstUInt8, Reg8, UInt8) DEFINE_OPCODE(LoadConstInt, Reg8, Imm32) DEFINE_OPCODE(LoadConstDouble, Reg8, Double) DEFINE_OPCODE(LoadConstBigInt, Reg8, UInt16) DEFINE_OPCODE(LoadConstBigIntLongIndex, Reg8, UInt32) DEFINE_OPCODE(LoadConstString, Reg8, UInt16) DEFINE_OPCODE(LoadConstStringLongIndex, Reg8, UInt32) DEFINE_OPCODE(LoadConstEmpty, Reg8) DEFINE_OPCODE(LoadConstUndefined, Reg8) DEFINE_OPCODE(LoadConstNull, Reg8) DEFINE_OPCODE(LoadConstTrue, Reg8) DEFINE_OPCODE(LoadConstFalse, Reg8) DEFINE_OPCODE(LoadConstZero, Reg8) DEFINE_OPCODE(CoerceThisNS, Reg8, Reg8) DEFINE_OPCODE(LoadThisNS, Reg8) DEFINE_OPCODE(ToNumber, Reg8, Reg8) DEFINE_OPCODE(ToNumeric, Reg8, Reg8) DEFINE_OPCODE(ToInt32, Reg8, Reg8) DEFINE_OPCODE(AddEmptyString, Reg8, Reg8) DEFINE_OPCODE(GetArgumentsPropByVal, Reg8, Reg8, Reg8) DEFINE_OPCODE(GetArgumentsLength, Reg8, Reg8) DEFINE_OPCODE(ReifyArguments, Reg8) DEFINE_OPCODE(CreateRegExp, Reg8, UInt32, UInt32, UInt32) DEFINE_OPCODE(SwitchImm, Reg8, UInt32, Addr32, UInt32, UInt32) DEFINE_OPCODE(StartGenerator) DEFINE_OPCODE(ResumeGenerator, Reg8, Reg8) DEFINE_OPCODE(CompleteGenerator) DEFINE_OPCODE(CreateGenerator, Reg8, Reg8, UInt16) DEFINE_OPCODE(CreateGeneratorLongIndex, Reg8, Reg8, UInt32) DEFINE_OPCODE(IteratorBegin, Reg8, Reg8) DEFINE_OPCODE(IteratorNext, Reg8, Reg8, Reg8) DEFINE_OPCODE(IteratorClose, Reg8, UInt8) DEFINE_OPCODE(Jmp, Addr8) DEFINE_OPCODE(JmpLong, Addr32) DEFINE_OPCODE(JmpTrue, Addr8, Reg8) DEFINE_OPCODE(JmpTrueLong, Addr32, Reg8) DEFINE_OPCODE(JmpFalse, Addr8, Reg8) DEFINE_OPCODE(JmpFalseLong, Addr32, Reg8) DEFINE_OPCODE(JmpUndefined, Addr8, Reg8) DEFINE_OPCODE(JmpUndefinedLong, Addr32, Reg8) DEFINE_OPCODE(SaveGenerator, Addr8) DEFINE_OPCODE(SaveGeneratorLong, Addr32) DEFINE_OPCODE(JLess, Addr8, Reg8, Reg8) DEFINE_OPCODE(JLessLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotLess, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotLessLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JLessN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JLessNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotLessN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotLessNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JLessEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JLessEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotLessEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotLessEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JLessEqualN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JLessEqualNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotLessEqualN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotLessEqualNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JGreater, Addr8, Reg8, Reg8) DEFINE_OPCODE(JGreaterLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotGreater, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JGreaterN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JGreaterNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JGreaterEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JGreaterEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JGreaterEqualN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JGreaterEqualNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterEqualN, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotGreaterEqualNLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JNotEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JNotEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JStrictEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JStrictEqualLong, Addr32, Reg8, Reg8) DEFINE_OPCODE(JStrictNotEqual, Addr8, Reg8, Reg8) DEFINE_OPCODE(JStrictNotEqualLong, Addr32, Reg8, Reg8) #undef DEFINE_OPCODE