Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1430.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1430 Author: eem Time: 11 August 2015, 12:17:13.928 pm UUID: 3d5ca520-ac41-40be-8a8b-95a18d1cb027 Ancestors: VMMaker.oscog-eem.1429
Get the fix for Integer receiver, float arg comparison right.
Fix some C compilation warnings.
Size a dictinary in Slang appropriately.
=============== Diff against VMMaker.oscog-eem.1429 ===============
Item was changed: ----- Method: Cogit>>JumpFull: (in category 'abstract instructions') ----- JumpFull: jumpTarget <inline: true> <returnTypeC: #'AbstractInstruction *'> + ^self gen: JumpFull literal: jumpTarget asInteger! - ^self gen: JumpFull literal: jumpTarget!
Item was changed: ----- Method: SimpleStackBasedCogit>>genPrimitiveLessOrEqual (in category 'primitive generators') ----- genPrimitiveLessOrEqual ^self genSmallIntegerComparison: JumpLessOrEqual + orDoubleComparison: #JumpFPGreaterOrEqual: - orDoubleComparison: #JumpFPGreater: invert: true!
Item was changed: ----- Method: SimpleStackBasedCogit>>genPrimitiveLessThan (in category 'primitive generators') ----- genPrimitiveLessThan ^self genSmallIntegerComparison: JumpLess + orDoubleComparison: #JumpFPGreater: - orDoubleComparison: #JumpFPGreaterOrEqual: invert: true!
Item was changed: ----- Method: StackInterpreter>>printStackPage: (in category 'debug printing') ----- printStackPage: page <inline: true> + <var: #page type: #'StackPage *'> self printStackPage: page useCount: -1!
Item was changed: ----- Method: TMethod>>argAssignmentsFor:send:in: (in category 'inlining') ----- argAssignmentsFor: meth send: aSendNode in: aCodeGen "Return a collection of assignment nodes that assign the given argument expressions to the formal parameter variables of the given method." "Optimization: If the actual parameters are either constants or local variables in the target method (the receiver), substitute them directly into the body of meth. Note that global variables cannot be subsituted because the inlined method might depend on the exact ordering of side effects to the globals."
| stmtList substitutionDict argList | meth args size > (argList := aSendNode args) size ifTrue: [self assert: (meth args first beginsWith: 'self_in_'). argList := {aSendNode receiver}, aSendNode args]. stmtList := OrderedCollection new: argList size. + substitutionDict := Dictionary new: argList size. - substitutionDict := Dictionary new: 100. meth args with: argList do: [ :argName :exprNode | (self isNode: exprNode substitutableFor: argName inMethod: meth in: aCodeGen) ifTrue: [substitutionDict at: argName put: (aCodeGen node: exprNode typeCompatibleWith: argName inliningInto: meth selector in: self). locals remove: argName] ifFalse: [stmtList addLast: (TAssignmentNode new setVariable: (TVariableNode new setName: argName) expression: (aCodeGen node: exprNode copy typeCompatibleWith: argName inliningInto: meth selector in: self))]]. meth parseTree: (meth parseTree bindVariablesIn: substitutionDict). ^stmtList!
vm-dev@lists.squeakfoundation.org