[Vm-dev] VM Maker: VMMaker.oscog-nice.1911.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jul 28 21:31:55 UTC 2016
Nicolas Cellier uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-nice.1911.mcz
==================== Summary ====================
Name: VMMaker.oscog-nice.1911
Author: nice
Time: 26 July 2016, 12:34:16.863784 am
UUID: 76ca83f3-8f11-fd4a-a9c4-5dd8b907d737
Ancestors: VMMaker.oscog-topa.1910
Use same FileDirectory tricks as Cog* for Stack* generation
This way we can generate sources on windows (with recent trunk corrections for pathFromURI:).
Don't put a trailing / to '../'. in VMMaker initialization.
Indeed, some FileDirectory hacks work only for '..'
For example, (FileDirectory on: '..') is ok, (FileDirectory on: '../') is not.
Correct the prototype of genDoubleFailIfZeroArgRcvr:arg:
It's used as a function taking int, not #sqInt
See #genDoubleArithmetic:preOpCheck: and #genDoubleArithmetic:preOpCheck:boxed: for 64bits
=============== Diff against VMMaker.oscog-topa.1910 ===============
Item was changed:
----- Method: SimpleStackBasedCogit>>genDoubleFailIfZeroArgRcvr:arg: (in category 'primitive generators') -----
genDoubleFailIfZeroArgRcvr: rcvrReg arg: argReg
<option: #DPFPReg0>
+ <var: 'rcvrReg' type: #int>
+ <var: 'argReg' type: #int>
<returnTypeC: #'AbstractInstruction *'>
self MoveCq: 0 R: TempReg.
self ConvertR: TempReg Rd: DPFPReg2.
self CmpRd: DPFPReg2 Rd: argReg.
^self JumpFPEqual: 0!
Item was changed:
----- Method: VMMaker class>>generateNewspeakSpurCog64VM (in category 'configurations') -----
generateNewspeakSpurCog64VM
"No primitives since we can use those for the Cog VM"
^VMMaker
generate: CoInterpreter
and: StackToRegisterMappingCogit
with: #( ObjectMemory Spur64BitCoMemoryManager
MULTIPLEBYTECODESETS true
NewspeakVM true)
+ to: (FileDirectory default pathFromURI: self sourceTree, '/nsspur64src')
+ platformDir: (FileDirectory default pathFromURI: self sourceTree, '/platforms')
- to: (FileDirectory default directoryNamed: self sourceTree, '/nsspur64src') fullName
- platformDir: (FileDirectory default directoryNamed: self sourceTree, '/platforms') fullName
including:#()
!
Item was changed:
----- Method: VMMaker class>>generateNewspeakSpurStack64VM (in category 'configurations') -----
generateNewspeakSpurStack64VM
"No primitives since we can use those for the Cog VM"
^VMMaker
generate: StackInterpreter
with: #( ObjectMemory Spur64BitMemoryManager
MULTIPLEBYTECODESETS true
NewspeakVM true
FailImbalancedPrimitives false)
+ to: (FileDirectory default pathFromURI: self sourceTree, '/nsspurstack64src')
+ platformDir: (FileDirectory default pathFromURI: self sourceTree, '/platforms')
- to: (FileDirectory default directoryNamed: self sourceTree, '/nsspurstack64src') fullName
- platformDir: (FileDirectory default directoryNamed: self sourceTree, '/platforms') fullName
including: #()!
Item was changed:
----- Method: VMMaker class>>generateNewspeakSpurStackVM (in category 'configurations') -----
generateNewspeakSpurStackVM
"No primitives since we can use those for the Cog VM"
^VMMaker
generate: StackInterpreter
with: #( ObjectMemory Spur32BitMemoryManager
MULTIPLEBYTECODESETS true
NewspeakVM true
FailImbalancedPrimitives false)
+ to: (FileDirectory default pathFromURI: self sourceTree, '/nsspurstacksrc')
+ platformDir: (FileDirectory default pathFromURI: self sourceTree, '/platforms')
- to: (FileDirectory default directoryNamed: self sourceTree, '/nsspurstacksrc') fullName
- platformDir: (FileDirectory default directoryNamed: self sourceTree, '/platforms') fullName
including: #()!
Item was changed:
----- Method: VMMaker class>>generateSqueakSpurStack64VM (in category 'configurations') -----
generateSqueakSpurStack64VM
"No primitives since we can use those from the Cog VM"
^VMMaker
generate: StackInterpreter
with: #(ObjectMemory Spur64BitMemoryManager
FailImbalancedPrimitives false)
+ to: (FileDirectory default pathFromURI: self sourceTree, '/spurstack64src')
+ platformDir: (FileDirectory default pathFromURI: self sourceTree, '/platforms')
- to: (FileDirectory default directoryNamed: self sourceTree, '/spurstack64src') fullName
- platformDir: (FileDirectory default directoryNamed: self sourceTree, '/platforms') fullName
including: #()!
Item was changed:
----- Method: VMMaker class>>generateSqueakSpurStackVM (in category 'configurations') -----
generateSqueakSpurStackVM
"No primitives since we can use those from the Cog VM"
^VMMaker
generate: StackInterpreter
with: #(ObjectMemory Spur32BitMemoryManager
FailImbalancedPrimitives false)
+ to: (FileDirectory default pathFromURI: self sourceTree, '/spurstacksrc')
+ platformDir: (FileDirectory default pathFromURI: self sourceTree, '/platforms')
- to: (FileDirectory default directoryNamed: self sourceTree, '/spurstacksrc') fullName
- platformDir: (FileDirectory default directoryNamed: self sourceTree, '/platforms') fullName
including: #()!
Item was changed:
----- Method: VMMaker class>>generateSqueakStackVM (in category 'configurations') -----
generateSqueakStackVM
"No primitives since we can use those from the Cog VM"
^VMMaker
generate: StackInterpreter
with: #(FailImbalancedPrimitives false)
+ to: (FileDirectory default pathFromURI: self sourceTree, '/stacksrc')
+ platformDir: (FileDirectory default pathFromURI: self sourceTree, '/platforms')
- to: (FileDirectory default directoryNamed: self sourceTree, '/stacksrc') fullName
- platformDir: (FileDirectory default directoryNamed: self sourceTree, '/platforms') fullName
including: #()!
Item was changed:
----- Method: VMMaker class>>initialize (in category 'initialisation') -----
initialize
"VMMaker initialize"
DirNames := Dictionary new.
DirNames
at: #coreVMDir put: 'vm';
at: #platformsDir put: 'platforms';
at: #pluginsDir put: 'plugins';
at: #sourceDir put: 'src'.
"Try and decide where the Cog source tree is. Two configurations are likely.
One is that the VMMaker image is running in the image directory in the
source tree and hence everything will be at '..'.
Another is where the source tree is at the same level as the VMMaker image,
in which case it is likely called oscogvm or Cog."
#('../platforms' 'oscogvm/platforms' 'Cog/platforms' '../oscogvm/platforms')
+ with: #('..' 'oscogvm' 'Cog' '../oscogvm')
- with: #('../' 'oscogvm' 'Cog' '../oscogvm')
do: [:dir :path|
(FileDirectory default directoryExists: dir) ifTrue:
[DirNames at: #sourceTree put: path.
^self]]!
More information about the Vm-dev
mailing list