[Vm-dev] VM Maker: VMMaker.oscog-cb.1940.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Sep 5 14:32:35 UTC 2016
ClementBera uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1940.mcz
==================== Summary ====================
Name: VMMaker.oscog-cb.1940
Author: cb
Time: 5 September 2016, 4:30:12.516872 pm
UUID: 2c5c4513-a2d7-4f93-ab3a-168bb35b52c9
Ancestors: VMMaker.oscog-cb.1939
disabled 2 paths compiltion on full blocks.
Improved an assertion.
=============== Diff against VMMaker.oscog-cb.1939 ===============
Item was changed:
----- Method: StackToRegisterMappingCogit>>compileFullBlockMethodFrameBuild: (in category 'compile abstract instructions') -----
compileFullBlockMethodFrameBuild: numCopied
<option: #SistaV1BytecodeSet>
+ useTwoPaths ifTrue:
+ [ "method with only inst var store, we compile only slow path for now"
+ useTwoPaths := false.
+ self cppIf: IMMUTABILITY ifTrue: [ needsFrame := true ] ].
needsFrame ifFalse:
[self assert: numCopied = 0.
self compileFullBlockFramelessEntry: numCopied.
self initSimStackForFramelessBlock: initialPC.
^self].
super compileFullBlockMethodFrameBuild: numCopied.
self initSimStackForFramefulMethod: initialPC!
Item was changed:
----- Method: StackToRegisterMappingCogit>>initSimStackForFramelessMethod: (in category 'simulation stack') -----
initSimStackForFramelessMethod: startpc
| desc |
<var: #desc type: #'CogSimStackEntry *'>
simSelf
type: SSRegister;
spilled: false;
register: ReceiverResultReg.
optStatus
isReceiverResultRegLive: true;
ssEntry: (self addressOf: simSelf).
+ self assert: methodOrBlockNumTemps = methodOrBlockNumArgs.
- self assert: methodOrBlockNumTemps >= methodOrBlockNumArgs.
self assert: self numRegArgs <= 2.
(methodOrBlockNumArgs between: 1 and: self numRegArgs)
ifTrue:
[desc := self simStackAt: 0.
desc
type: SSRegister;
spilled: false;
register: Arg0Reg;
bcptr: startpc.
methodOrBlockNumArgs > 1 ifTrue:
[desc := self simStackAt: 1.
desc
type: SSRegister;
spilled: false;
register: Arg1Reg;
bcptr: startpc]]
ifFalse:
[0 to: methodOrBlockNumArgs - 1 do:
[:i|
desc := self simStackAt: i.
desc
type: SSBaseOffset;
register: SPReg;
spilled: true;
offset: ((backEnd hasLinkRegister
ifTrue: [methodOrBlockNumArgs - 1- i]
ifFalse: [methodOrBlockNumArgs - i]) * objectMemory wordSize);
bcptr: startpc]].
simSpillBase := simStackPtr := methodOrBlockNumArgs - 1!
More information about the Vm-dev
mailing list