Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.522.mcz==================== Summary ====================
Name: Tools-eem.522
Author: eem
Time: 20 May 2014, 4:27:02.888 pm
UUID: 883b5218-67a9-4d85-9f1b-6969772fcefb
Ancestors: Tools-nice.521
Simpler, faster pcPreviousTo: using new multiple bytecode set
support.
=============== Diff against Tools-nice.521 ===============
Item was changed:
----- Method: CompiledMethod>>pcPreviousTo: (in category '*Tools-Debugger-support') -----
+ pcPreviousTo: thePC
+ "Answer the pc of the bytecode before the bytecode at thePC."
+ | pc prevPc byte encoderClass |
- pcPreviousTo: pc
- | scanner client prevPc |
self flag: 'belongs in DebuggerMethodMap?'.
+ thePC > self endPC ifTrue: [^self endPC].
+ pc := self initialPC.
+ encoderClass := self encoderClass.
+ [pc < thePC] whileTrue:
+ [byte := self at: (prevPc := pc).
+ [pc := pc + (encoderClass bytecodeSize: byte).
+ encoderClass isExtension: byte] whileTrue:
+ [byte := self at: pc]].
- pc > self endPC ifTrue: [^self endPC].
- scanner := InstructionStream on: self.
- client := InstructionClient new.
- [scanner pc < pc] whileTrue:
- [prevPc := scanner pc.
- scanner interpretNextInstructionFor: client].
^prevPc!