[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