Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2616.mcz ==================== Summary ==================== Name: VMMaker.oscog-eem.2616 Author: eem Time: 16 December 2019, 11:54:38.097499 pm UUID: 44ac8244-d59d-4131-b4c7-a70ece7dc55e Ancestors: VMMaker.oscog-eem.2615 Simulation: Robustness for reportLastNInstructions. Fix in-image compilation now that cFrame/StackPointerAddress are banished from the Cogit in all forms (the in-memory hack for these is gone). Make sure FullBlockClosure has its own im plementation for shouldStopIfAtPC: (eek!). Fix a typo. =============== Diff against VMMaker.oscog-eem.2615 =============== Item was changed: ----- Method: CogAbstractInstruction>>hasCmpRSPReg (in category 'testing') ----- hasCmpRSPReg "Answer if the receiver can do CmpR: anyRegExceptSP R: SPReg. + If the answer is false the Cogit assumes that the receiver can do CmpR: SPReg R: anyRegExceptSP. - If the answerr is false the Cogit assumes that the receiver can do CmpR: SPReg R: anyRegExceptSP. The back end has to do one or the other, by hook or by crook." ^true! Item was changed: ----- Method: Cogit>>reportLastNInstructions (in category 'debugging') ----- reportLastNInstructions <doNotGenerate> | skipNext printInst | skipNext := false. printInst := [:inst| coInterpreter transcript nextPutAll: (EagerInstructionDecoration ifTrue: [inst] ifFalse: [processor decorateDisassembly: inst for: self fromAddress: ((inst at: 3) = $r ifTrue: [Integer readFrom: inst readStream] ifFalse: [Integer readFrom: inst readStream base: 16])]); cr]. lastNInstructions withIndexDo: + [:thing :idx| - [:thing :idx| | next pc label | skipNext ifTrue: [skipNext := false] ifFalse: [thing isArray ifTrue: [thing first isString "i.e. { '(simulated return to '. processor retpcIn: coInterpreter memory. ')'}" ifTrue: [thing do: [:stringOrNumber| coInterpreter transcript nextPutAll: (stringOrNumber isString ifTrue: [stringOrNumber] ifFalse: [stringOrNumber hex])]. coInterpreter transcript cr] ifFalse: "if possible, add the label to the instruction line to condense the output" [coInterpreter transcript cr. + (thing at: processor registerStatePCIndex ifAbsent: []) ifNotNil: + [:pc| | next label | + label := self relativeLabelForPC: pc. + ((next := lastNInstructions at: idx + 1 ifAbsent: []) notNil + and: [next isString + and: [(Integer readFrom: next readStream radix: 16) = pc]]) + ifTrue: "Decorate instruction and eliminate pc line" + [skipNext := true. + processor printRegisterStateExceptPC: thing on: coInterpreter transcript. + label ifNotNil: [coInterpreter transcript nextPutAll: label; space]. + printInst value: next] + ifFalse: + [label ifNotNil: [coInterpreter transcript nextPutAll: label; nextPut: $:; cr]. + processor printRegisterState: thing on: coInterpreter transcript]]]] - pc := thing at: processor registerStatePCIndex. - label := self relativeLabelForPC: pc. - ((next := lastNInstructions at: idx + 1 ifAbsent: []) notNil - and: [next isString - and: [(Integer readFrom: next readStream radix: 16) = pc]]) - ifTrue: "Decorate instruction and eliminate pc line" - [skipNext := true. - processor printRegisterStateExceptPC: thing on: coInterpreter transcript. - label ifNotNil: [coInterpreter transcript nextPutAll: label; space]. - printInst value: next] - ifFalse: - [label ifNotNil: [coInterpreter transcript nextPutAll: label; nextPut: $:; cr]. - processor printRegisterState: thing on: coInterpreter transcript]]] ifFalse: [printInst value: thing]]]. coInterpreter transcript flush! Item was added: + ----- Method: CurrentImageCoInterpreterFacade>>cFramePointerAddress (in category 'accessing') ----- + cFramePointerAddress + ^self addressForLabel: #CFramePointer! Item was added: + ----- Method: CurrentImageCoInterpreterFacade>>cStackPointerAddress (in category 'accessing') ----- + cStackPointerAddress + ^self addressForLabel: #CStackPointer! Item was added: + ----- Method: FullBlockClosure>>shouldStopIfAtPC: (in category '*VMMaker-interpreter simulator') ----- + shouldStopIfAtPC: address + <primitive: 207> + ^self value: address! |
Free forum by Nabble | Edit this page |