-- Pretty printing for each instruction -- Factored out in a separate file ATTR CaseOffsets [ | | count USE {+} {0} : Int ] SEM CaseOffsets | Cons +count = (+1) SEM Instruction | Add lhs.output = u8 0xA0 | Add_i lhs.output = u8 0xC5 | Add_d lhs.output = u8 0x9B | ApplyType lhs.output = u8 0x53 ## u30 @name | AsType lhs.output = u8 0x86 ## u30 @name | AsTypeLate lhs.output = u8 0x87 | BitAnd lhs.output = u8 0xA8 | BitNot lhs.output = u8 0x97 | BitOr lhs.output = u8 0xA9 | BitXor lhs.output = u8 0xAA | Breakpoint lhs.output = u8 0x01 | BreakLine lhs.output = u8 0xF2 ## u30 @line | Call lhs.output = u8 0x41 ## u30 @argCount | CallInterface lhs.output = u8 0x4D ## u30 @name ## u30 @argCount | CallMethod lhs.output = u8 0x43 ## u30 @index ## u30 @argCount | CallProp lhs.output = u8 0x46 ## u30 @name ## u30 @argCount | CallPropLex lhs.output = u8 0x4C ## u30 @name ## u30 @argCount | CallPropVoid lhs.output = u8 0x4F ## u30 @name ## u30 @argCount | CallStatic lhs.output = u8 0x44 ## u30 @method ## u30 @argCount | CallSuper lhs.output = u8 0x45 ## u30 @name ## u30 @argCount | CallSuperId lhs.output = u8 0x4B | CallSuperVoid lhs.output = u8 0x4E ## u30 @name ## u30 @argCount | CheckFilter lhs.output = u8 0x78 | Coerce lhs.output = u8 0x80 ## u30 @name | Coerce_b lhs.output = u8 0x81 | Coerce_a lhs.output = u8 0x82 | Coerce_i lhs.output = u8 0x83 | Coerce_d lhs.output = u8 0x84 | Coerce_s lhs.output = u8 0x85 | Coerce_u lhs.output = u8 0x88 | Coerce_o lhs.output = u8 0x89 | Concat lhs.output = u8 0x9A | Construct lhs.output = u8 0x42 ## u30 @argCount | ConstructProp lhs.output = u8 0x4A ## u30 @name ## u30 @argCount | ConstructSuper lhs.output = u8 0x49 ## u30 @argCount | Convert_b lhs.output = u8 0x76 | Convert_i lhs.output = u8 0x73 | Convert_d lhs.output = u8 0x75 | Convert_o lhs.output = u8 0x77 | Convert_u lhs.output = u8 0x74 | Convert_s lhs.output = u8 0x70 | Debug lhs.output = u8 0xEF ## @tp.output ## u30 @name ## u30 @reg ## u30 @extra | DebugFile lhs.output = u8 0xF1 ## u30 @name | DebugLine lhs.output = u8 0xF0 ## u30 @line | DecLocal lhs.output = u8 0x94 ## u30 @reg | DecLocal_i lhs.output = u8 0xC3 ## u30 @reg | Decrement lhs.output = u8 0x93 | Decrement_i lhs.output = u8 0xC1 | DeleteProperty lhs.output = u8 0x6A ## u30 @name | DeletePropertyLate lhs.output = u8 0x6B | Divide lhs.output = u8 0xA3 | Dup lhs.output = u8 0x2A | Dxns lhs.output = u8 0x06 ## u30 @name | DxnsLate lhs.output = u8 0x07 | Equals lhs.output = u8 0xAB | EscXAttr lhs.output = u8 0x72 | EscXElem lhs.output = u8 0x71 | FindDef lhs.output = u8 0x5F ## u30 @name | FindPropertyGlobalStrict lhs.output = u8 0x5B ## u30 @name | FindPropertyGlobal lhs.output = u8 0x5C ## u30 @name | FindProperty lhs.output = u8 0x5E ## u30 @name | FindPropStrict lhs.output = u8 0x5D ## u30 @name | GetDescendants lhs.output = u8 0x59 ## u30 @name | GetGlobalScope lhs.output = u8 0x64 | GetGlobalSlot lhs.output = u8 0x6E ## u30 @slot | GetLex lhs.output = u8 0x60 ## u30 @name | GetLocal lhs.output = u8 0x62 ## u30 @reg | GetLocal0 lhs.output = u8 0xD0 | GetLocal1 lhs.output = u8 0xD1 | GetLocal2 lhs.output = u8 0xD2 | GetLocal3 lhs.output = u8 0xD3 | GetOuterScope lhs.output = u8 0x67 | GetProperty lhs.output = u8 0x66 ## u30 @name | GetScopeObject lhs.output = u8 0x65 ## u8 @index | GetSlot lhs.output = u8 0x6C ## u30 @slot | GetSuper lhs.output = u8 0x04 ## u30 @name | GreaterEquals lhs.output = u8 0xB0 | GreaterThan lhs.output = u8 0xAF | HasNext lhs.output = u8 0x1F | HasNext2 lhs.output = u8 0x32 ## u30 @objectReg ## u30 @indexReg | IfEq lhs.output = u8 0x13 ## s24 @offset | IfFalse lhs.output = u8 0x12 ## s24 @offset | IfGe lhs.output = u8 0x18 ## s24 @offset | IfGt lhs.output = u8 0x17 ## s24 @offset | IfLe lhs.output = u8 0x16 ## s24 @offset | IfLt lhs.output = u8 0x15 ## s24 @offset | IfNGe lhs.output = u8 0x0F ## s24 @offset | IfNGt lhs.output = u8 0x0E ## s24 @offset | IfNLe lhs.output = u8 0x0D ## s24 @offset | IfNLt lhs.output = u8 0x0C ## s24 @offset | IfNe lhs.output = u8 0x14 ## s24 @offset | IfStrictEq lhs.output = u8 0x19 ## s24 @offset | IfStrictNe lhs.output = u8 0x1A ## s24 @offset | IfTrue lhs.output = u8 0x11 ## s24 @offset | In lhs.output = u8 0xB4 | IncLocal lhs.output = u8 0x92 ## u30 @reg | IncLocal_i lhs.output = u8 0xC2 ## u30 @reg | Increment lhs.output = u8 0x91 | Increment_i lhs.output = u8 0xC0 | InitProperty lhs.output = u8 0x68 ## u30 @name | InstanceOf lhs.output = u8 0xB1 | IsType lhs.output = u8 0xB2 ## u30 @name | IsTypeLate lhs.output = u8 0xB3 | Jump lhs.output = u8 0x10 ## s24 @offset | Kill lhs.output = u8 0x08 ## u30 @reg | Label lhs.output = u8 0x09 | LessEquals lhs.output = u8 0xAE | LessThan lhs.output = u8 0xAD | LoadFloat32 lhs.output = u8 0x38 | LoadFloat64 lhs.output = u8 0x39 | LoadIndirect8 lhs.output = u8 0x35 | LoadIndirect16 lhs.output = u8 0x36 | LoadIndirect32 lhs.output = u8 0x37 | LookupSwitch lhs.output = u8 0x1B ## s24 @defaultOffset ## u30size (@caseOffsets.count - 1) ## @caseOffsets.output | Lshift lhs.output = u8 0xA5 | Modulo lhs.output = u8 0xA4 | Multiply lhs.output = u8 0xA2 | Multiply_i lhs.output = u8 0xC7 | Negate lhs.output = u8 0x90 | Negate_i lhs.output = u8 0xC4 | NewActivation lhs.output = u8 0x57 | NewArray lhs.output = u8 0x56 ## u30 @argCount | NewCatch lhs.output = u8 0x5A ## u30 @exception | NewClass lhs.output = u8 0x58 ## u30 @class | NewFunction lhs.output = u8 0x40 ## u30 @method | NewObject lhs.output = u8 0x55 ## u30 @argCount | NextName lhs.output = u8 0x1E | NextValue lhs.output = u8 0x23 | Nop lhs.output = u8 0x02 | Not lhs.output = u8 0x96 | Pop lhs.output = u8 0x29 | PopScope lhs.output = u8 0x1D | PushByte lhs.output = u8 0x24 ## u8 @val | PushDouble lhs.output = u8 0x2F ## u30 @name | PushFalse lhs.output = u8 0x27 | PushInt lhs.output = u8 0x2D ## u30 @name | PushNamespace lhs.output = u8 0x31 ## u30 @name | PushNaN lhs.output = u8 0x28 | PushNull lhs.output = u8 0x20 | PushScope lhs.output = u8 0x30 | PushShort lhs.output = u8 0x25 ## u30 @val | PushString lhs.output = u8 0x2C ## u30 @name | PushTrue lhs.output = u8 0x26 | PushUInt lhs.output = u8 0x2E ## u30 @name | PushUndefined lhs.output = u8 0x21 | PushWith lhs.output = u8 0x1C | ReturnValue lhs.output = u8 0x48 | ReturnVoid lhs.output = u8 0x47 | Rshift lhs.output = u8 0xA6 | SetLocal lhs.output = u8 0x63 ## u30 @reg | SetLocal0 lhs.output = u8 0xD4 | SetLocal1 lhs.output = u8 0xD5 | SetLocal2 lhs.output = u8 0xD6 | SetLocal3 lhs.output = u8 0xD7 | SetGlobalSlot lhs.output = u8 0x6F ## u30 @slot | SetProperty lhs.output = u8 0x61 ## u30 @name | SetPropertyLate lhs.output = u8 0x69 | SetSlot lhs.output = u8 0x6D ## u30 @slot | SetSuper lhs.output = u8 0x05 ## u30 @name | SignExtend1 lhs.output = u8 0x50 | SignExtend8 lhs.output = u8 0x51 | SignExtend16 lhs.output = u8 0x52 | StoreFloat32 lhs.output = u8 0x3D | StoreFloat64 lhs.output = u8 0x3E | StoreIndirect8 lhs.output = u8 0x3A | StoreIndirect16 lhs.output = u8 0x3B | StoreIndirect32 lhs.output = u8 0x3C | StrictEquals lhs.output = u8 0xAC | Substract lhs.output = u8 0xA1 | Substract_i lhs.output = u8 0xC6 | Swap lhs.output = u8 0x2B | Throw lhs.output = u8 0x03 | Timestamp lhs.output = u8 0xF3 | TypeOf lhs.output = u8 0x95 | Urshift lhs.output = u8 0xA7 SEM DebugType | Local lhs.output = u8 0x01 SEM CaseOffsets | Cons lhs.output = s24 @hd ## @tl.output