[Vm-dev] VM Maker: Cog-eem.223.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Nov 24 23:29:36 UTC 2014
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.223.mcz
==================== Summary ====================
Name: Cog-eem.223
Author: eem
Time: 24 November 2014, 3:29:20.446 pm
UUID: 1c99ed1d-47d5-4fd5-bfae-0f2264678598
Ancestors: Cog-eem.222
Update Spur bootstrap to account for
floatObjectOf: moving to ObjectMemory hierarchy.
=============== Diff against Cog-eem.222 ===============
Item was changed:
----- Method: SpurBootstrap>>findLiteral:inClass: (in category 'bootstrap methods') -----
findLiteral: aLiteral inClass: classOop
| bindingOrNil |
aLiteral isString ifTrue:
[^self stringFor: aLiteral].
aLiteral isFloat ifTrue:
+ [^oldHeap floatObjectOf: aLiteral].
- [^oldInterpreter floatObjectOf: aLiteral].
aLiteral isArray ifTrue:
[^self cloneArrayLiteral: aLiteral].
aLiteral isCharacter ifTrue:
[^oldHeap characterObjectOf: aLiteral asciiValue].
self assert: aLiteral isVariableBinding.
bindingOrNil := self interpreter: oldInterpreter
object: classOop
perform: (self findSymbol: #bindingOf:)
withArguments: {self findSymbol: aLiteral key}.
bindingOrNil ~= oldHeap nilObject ifTrue:
[^bindingOrNil].
self error: 'couldn''t find literal ', aLiteral printString!
Item was changed:
----- Method: SpurOldToNewMethodFormatMunger>>literalFor:inClass: (in category 'munging') -----
literalFor: aLiteral inClass: classOop
| bindingOrNil |
aLiteral isSymbol ifTrue:
[^symbolOops at: aLiteral].
aLiteral isString ifTrue:
[^heap stringForCString: aLiteral].
(aLiteral isInteger and: [aLiteral class == SmallInteger]) ifTrue:
[^heap integerObjectOf: aLiteral].
aLiteral isFloat ifTrue:
+ [^heap floatObjectOf: aLiteral].
- [^interpreter floatObjectOf: aLiteral].
aLiteral isArray ifTrue:
[^self cloneArrayLiteral: aLiteral].
self assert: aLiteral isVariableBinding.
"interpreter
ensureDebugAtEachStepBlock;
instVarNamed: 'printBytecodeAtEachStep' put: true;
instVarNamed: 'printFrameAtEachStep' put: true."
bindingOrNil := self interpreter: interpreter
object: classOop
perform: (symbolOops at: #bindingOf:)
withArguments: {symbolOops at: aLiteral key}.
bindingOrNil ~= heap nilObject ifTrue:
[^bindingOrNil].
self error: 'couldn''t find literal ', aLiteral printString!
More information about the Vm-dev
mailing list