[Vm-dev] VM Maker: Cog-eem.250.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Mar 23 17:04:28 UTC 2015


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.250.mcz

==================== Summary ====================

Name: Cog-eem.250
Author: eem
Time: 23 March 2015, 10:04:13.394 am
UUID: e5ac03a8-0c8f-4e8e-86fa-83b5999ef9de
Ancestors: Cog-tpr.249

ARM Alien:
Eliminate the misplaced stack alignment assert in
simulateCallOf:nextpc:memory:

Spur Bootstrap:
Provide accurate comments for primBytesLeft
and primitiveGarbageCollect

=============== Diff against Cog-tpr.249 ===============

Item was changed:
  ----- Method: GdbARMAlien>>simulateCallOf:nextpc:memory: (in category 'execution simulation') -----
  simulateCallOf: address nextpc: nextpc memory: aMemory
  	"Simulate a frame-building call of address.  Build a frame since
  	a) this is used for calls into the run-time which are unlikely to be leaf-calls"
  	"This method builds a stack frame as expected by the simulator, not as defined by ARM aapcs-abi.
  	In ARM aapcs, every method can define for itself, wether it wants to push lr (nextpc), and wether it 
  	uses a frame pointer. The standard never mentions a fp. It merely defines r4-r11 to be callee-saved."
  
- 	self assert: self sp \\ 8 = 0. "This check ensures, that we conform with ARM abi. Before doing anything to the stack, we ensure 2-word alignment."
  	self pushWord: nextpc in: aMemory.
  	self pushWord: self fp in: aMemory.
  	self fp: self sp.
  	PostBuildStackDelta ~= 0 ifTrue:
  		[self sp: self sp - PostBuildStackDelta]. "In order to satisfy the CStackAlignment check by cogit, which is only valid on IA32 platforms."
  	self pc: address!

Item was changed:
  ----- Method: GdbARMAlien>>simulateReturnIn: (in category 'execution simulation') -----
  simulateReturnIn: aMemory
- "simulate a return; this may get a bit more complicated since we are trying to compensate for the IA32 automagically pushing the return address whereas the ARM doesn't."
- 
  	PostBuildStackDelta ~= 0 ifTrue:
  		[self sp: self sp + PostBuildStackDelta].
  	self fp: (self popWordIn: aMemory).
  	self lr: (self popWordIn: aMemory).
  	self pc: self lr!

Item was added:
+ ----- Method: SpurBootstrapPrototypes>>SmalltalkImagePROTOTYPEprimBytesLeft (in category 'method prototypes') -----
+ SmalltalkImagePROTOTYPEprimBytesLeft
+ 	"Primitive. Answer the number of free bytes available in old space.
+ 	 Not accurate unless preceded by
+ 		Smalltalk garbageCollectMost (for reasonable accuracy), or
+ 		Smalltalk garbageCollect (for real accuracy).
+ 	 See Object documentation whatIsAPrimitive."
+ 
+ 	<primitive: 112>
+ 	^0!

Item was added:
+ ----- Method: SpurBootstrapPrototypes>>SmalltalkImagePROTOTYPEprimitiveGarbageCollect (in category 'method prototypes') -----
+ SmalltalkImagePROTOTYPEprimitiveGarbageCollect
+ 	"Primitive. Reclaims all garbage and answers the size of the largest free chunk in old space.."
+ 
+ 	<primitive: 130>
+ 	^self primitiveFailed!



More information about the Vm-dev mailing list