Eliot Miranda uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-eem.291.mcz ==================== Summary ==================== Name: EToys-eem.291 Author: eem Time: 4 April 2017, 5:55:00.217947 pm UUID: c62015f2-3ec7-4885-a001-f7b39758b4d5 Ancestors: EToys-eem.290 Remove more unused cruft from EToys kernel and compiler classes. =============== Diff against EToys-eem.290 =============== Item was removed: - ----- Method: CompiledMethod>>qDecompress: (in category '*Etoys-Squeakland-source code management') ----- - qDecompress: byteArray - "Decompress strings compressed by qCompress:. - Most common 12 chars get values 0-11 packed in one 4-bit nibble; - others get values 12-15 (2 bits) * 16 plus next nibble" - | charTable extended ext | - charTable := "Character encoding table must match qCompress:" - ' eatrnoislcm bdfghjkpquvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'. - ^ String streamContents: - [:strm | extended := false. "Flag for 2-nibble characters" - byteArray do: - [:byte | - (Array with: byte//16 with: byte\\16) - do: - [:nibble | extended - ifTrue: [strm nextPut: (charTable at: ext*16+nibble + 1). extended := false] - ifFalse: [nibble < 12 ifTrue: [strm nextPut: (charTable at: nibble + 1)] - ifFalse: [ext := nibble-12. extended := true]]]]]! Item was removed: - ----- Method: CompiledMethod>>scanLongLoad: (in category '*Etoys-Squeakland-scanning') ----- - scanLongLoad: extension - "Answer whether the receiver contains a long load whose extension is the - argument." - - | scanner | - scanner := InstructionStream on: self. - ^scanner scanFor: [:instr | instr = 128 and: [scanner followingByte = extension]]! Item was removed: - ----- Method: CompiledMethod>>scanLongStore: (in category '*Etoys-Squeakland-scanning') ----- - scanLongStore: extension - "Answer whether the receiver contains a long store whose extension is - the argument." - | scanner | - scanner := InstructionStream on: self. - ^scanner scanFor: - [:instr | (instr = 129 or: [instr = 130]) and: [scanner followingByte = extension]]! Item was removed: - ----- Method: CompiledMethod>>scanVeryLongLoad:offset: (in category '*Etoys-Squeakland-scanning') ----- - scanVeryLongLoad: extension offset: offset - "Answer whether the receiver contains a long load whose extension is the - argument." - | scanner | - scanner := InstructionStream on: self. - ^ scanner scanFor: [:instr | (instr = 132 and: [scanner followingByte = extension]) - and: [scanner thirdByte = offset]]! Item was removed: - ----- Method: Decompiler>>checkForBlock: (in category '*Etoys-Squeakland-control') ----- - checkForBlock: receiver - "We just saw a blockCopy: message. Check for a following block." - - | savePc jump args argPos block | - receiver == constructor codeThisContext ifFalse: [^false]. - savePc := pc. - (jump := self interpretJump) notNil - ifFalse: - [pc := savePc. ^nil]. - "Definitely a block" - jump := jump + pc. - argPos := statements size. - [self willStorePop] - whileTrue: - [stack addLast: ArgumentFlag. "Flag for doStore:" - self interpretNextInstructionFor: self]. - args := Array new: statements size - argPos. - 1 to: args size do: "Retrieve args" - [:i | args at: i put: statements removeLast. - (args at: i) scope: -1 "flag args as block temps"]. - block := self blockTo: jump. - stack addLast: (constructor codeArguments: args block: block). - ^true! Item was removed: - ----- Method: InstructionStream>>interpretExtension:in:for: (in category '*Etoys-Squeakland-private') ----- - interpretExtension: offset in: method for: client - | type offset2 byte2 byte3 | - offset <=6 ifTrue: - ["Extended op codes 128-134" - byte2 := method at: pc. - pc := pc + 1. - offset <= 2 ifTrue: - ["128-130: extended pushes and pops" - type := byte2 // 64. - offset2 := byte2 \\ 64. - offset = 0 ifTrue: - [type = 0 ifTrue: [^ client pushReceiverVariable: offset2]. - type = 1 ifTrue: [^ client pushTemporaryVariable: offset2]. - type = 2 ifTrue: [^ client pushConstant: (method literalAt: offset2 + 1)]. - type = 3 ifTrue: [^ client pushLiteralVariable: (method literalAt: offset2 + 1)]]. - offset = 1 ifTrue: - [type = 0 ifTrue: [^ client storeIntoReceiverVariable: offset2]. - type = 1 ifTrue: [^ client storeIntoTemporaryVariable: offset2]. - type = 2 ifTrue: [self error: 'illegalStore']. - type = 3 ifTrue: [^ client storeIntoLiteralVariable: (method literalAt: offset2 + 1)]]. - offset = 2 ifTrue: - [type = 0 ifTrue: [^ client popIntoReceiverVariable: offset2]. - type = 1 ifTrue: [^ client popIntoTemporaryVariable: offset2]. - type = 2 ifTrue: [self error: 'illegalStore']. - type = 3 ifTrue: [^ client popIntoLiteralVariable: (method literalAt: offset2 + 1)]]]. - "131-134: extended sends" - offset = 3 ifTrue: "Single extended send" - [^ client send: (method literalAt: byte2 \\ 32 + 1) - super: false numArgs: byte2 // 32]. - offset = 4 ifTrue: "Double extended do-anything" - [byte3 := method at: pc. pc := pc + 1. - type := byte2 // 32. - type = 0 ifTrue: [^ client send: (method literalAt: byte3 + 1) - super: false numArgs: byte2 \\ 32]. - type = 1 ifTrue: [^ client send: (method literalAt: byte3 + 1) - super: true numArgs: byte2 \\ 32]. - type = 2 ifTrue: [^ client pushReceiverVariable: byte3]. - type = 3 ifTrue: [^ client pushConstant: (method literalAt: byte3 + 1)]. - type = 4 ifTrue: [^ client pushLiteralVariable: (method literalAt: byte3 + 1)]. - type = 5 ifTrue: [^ client storeIntoReceiverVariable: byte3]. - type = 6 ifTrue: [^ client popIntoReceiverVariable: byte3]. - type = 7 ifTrue: [^ client storeIntoLiteralVariable: (method literalAt: byte3 + 1)]]. - offset = 5 ifTrue: "Single extended send to super" - [^ client send: (method literalAt: byte2 \\ 32 + 1) - super: true numArgs: byte2 // 32]. - offset = 6 ifTrue: "Second extended send" - [^ client send: (method literalAt: byte2 \\ 64 + 1) - super: false numArgs: byte2 // 64]]. - offset = 7 ifTrue: [^ client doPop]. - offset = 8 ifTrue: [^ client doDup]. - offset = 9 ifTrue: [^ client pushActiveContext]. - self error: 'unusedBytecode'! |
Free forum by Nabble | Edit this page |