Class new title: CompiledMethod subclassof: String fields: '' declare: 'primReturnField primReturnSelf '; bytesize: false; sharing: ByteCodes byte1 [Dorado  [self  1] self  2] byte1: t1 byte2: t2 [Dorado  [self  1 _ t1. self  2 _ t2] self  2 _ t1. self  1 _ t2] byte2 [Dorado  [self  2] self  1] bytes [self isQuick  [''] self  (self startingPC + 1 to: self length)] classInit [primReturnSelf _ 1. primReturnField _ 40] free [self refct > 2  [MethodKeeper next_ self] self freeLiterals] freeKeptMethods | t1 t2 [t1 _ MethodKeeper contents. MethodKeeper _ (Vector new: 10) asStream. for t2 from: t1 do [t2 free]] freeLiterals | t1 t2 t3 t4 [t1 _ self numLiterals. t1 = 0  [] t2 _ Vector new: (t1 max: 2). NoteTaker  [BitBlt new bltObj: t2 field: 1 to: t1 fromObj: self field: 2] t3 _ t2 nail. for t4 to: t1 do [mem  t3 + t4 - 1 _ self word: t4 + 3]. t2 unNail] holdLiterals: t1 | t2 t3 t4 [t2 _ t1 copy. NoteTaker  [BitBlt new bltObj: t2 field: 1 to: t2 length fromObj: nil field: 0] t3 _ t2 nail. for t4 to: t2 length do [mem  t3 + t4 - 1 _ 1]. t2 unNail] init initialPC [self isQuick  [0] NoteTaker  [(self byte1 land: 126) - 1] self  6 + 1] isQuick [NoteTaker  [self byte1 = 128] self length  6] isReturnField [NoteTaker  [self byte1 = 128 and self byte2  255  [self byte2 + 1] false] self  2 = primReturnField  [self  5 + 1] false] isReturnSelf [NoteTaker  [self byte1 = 128 and self byte2 = 255] self  2 = primReturnSelf] literal: t1 [self literals  t1] literals | t1 t2 t3 t4 [t1 _ self numLiterals. t1 = 0  [()] t2 _ Vector new: (t1 max: 2). [NoteTaker  [BitBlt new bltObj: t2 field: 1 to: t1 fromObj: self field: 2. t1 = 1  [t2 _ (t2  1) inVector]] t3 _ t2 nail. for t4 to: t1 do [mem  t3 + t4 - 1 _ self word: t4 + 3]. t2 unNail]. self holdLiterals: t2. t2] messageAt: t1 | t2 [t2 _ self  t1. self  (t1 - 1) = toSendLitLong and t2 < self numLiterals  [self literal: t2 + 1] t2  208  [self literal: t2 - 207] t2  176  [SpecialOops  (t2 - 176 + 10)] nil] numArgs [self isQuick  [0] NoteTaker  [self byte2 land: 15] self  4] numArgs: t1 numTemps: t2 numStack: t3 literals: t4 primitive: t5 bytes: t6 | t7 t8 t9 t10 t11 [t4 _ t4 asVector. [NoteTaker and t5 > 0  [t4 _ t4 , t5 asInteger]]. t7 _ t4 length * 2 + [NoteTaker  [2] 6]. t8 _ CompiledMethod new: t7 + t6 length. t9 _ Stream new of: t8. [NoteTaker  [(t1 > 15 or t2 > 31) or t7  126  [user notify: 'Attempt to create invalid CompiledMethod'. self] t8 byte1: t7 + 2 + (t2 / 16) + [t5 = 0  [0] 128] byte2: t2 \ 16 * 16 + t1]]. t10 _ t1 + t2. t9 next_ 0. t9 next_ t5. t9 next_ t10 + t3. t9 next_ t1. t9 next_ t10. t9 next_ t7. [t4 length > 0  [[NoteTaker  [BitBlt new bltObj: t8 field: 2 to: 1 + t4 length fromObj: t4 field: 1] for t11 to: t4 length do [t8 word: t11 + 3 _ (t4  t11) asOop]]. t8 holdLiterals: t4]]. t9 position_ t7. t6 copyto: t9. t8] numLiterals [self isQuick  [0] NoteTaker  [(self byte1 land: 126) - 4 / 2] self  6 - 6 / 2] numStack [NoteTaker  [0] self length < 6  [0] self  3 - (self  5)] numTemps [self isQuick  [0] NoteTaker  [(self byte1 land: 1) * 16 + (self byte2 / 16)] self  5 - (self  4)] primitive [NoteTaker  [self byte1  128  [0] self literal: self numLiterals] self length < 6  [0] self  2 = 0  [0] self  2] toReturnField: t1 | t2 [[NoteTaker  [t2 _ CompiledMethod new: 2. t2 byte1: 128 byte2: t1 - 1] t2 _ String new: 5. t2  1 _ 0. t2  2 _ primReturnField. t2  3 _ 0. t2  4 _ 0. t2  5 _ t1 - 1]. t2] toReturnSelf | t1 [[NoteTaker  [t1 _ CompiledMethod new: 2. t1 byte1: 128 byte2: 255] t1 _ String new: 2. t1 word: 1 _ primReturnSelf]. t1]