[Vm-dev] VM Maker: VMMaker-dtl.346.mcz

commits at source.squeak.org commits at source.squeak.org
Fri May 30 23:24:10 UTC 2014


David T. Lewis uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-dtl.346.mcz

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

Name: VMMaker-dtl.346
Author: dtl
Time: 30 May 2014, 7:19:01.389 pm
UUID: b3d921ff-4a69-45e5-9321-d022b072e50b
Ancestors: VMMaker-dtl.345

VMMaker 4.13.5
In primitiveUtcWithOffset, use storePointer:ofObject:withValue: rather than stObject:at:put: to avoid unnecessary checks

=============== Diff against VMMaker-dtl.345 ===============

Item was changed:
  ----- Method: InterpreterPrimitives>>primitiveUtcWithOffset (in category 'system control primitives') -----
  primitiveUtcWithOffset
  	"Answer an array with UTC microseconds since the Posix epoch and
  	the current seconds offset from GMT in the local time zone. An empty
  	two element array may be supplied as a parameter.
  	This is a named (not numbered) primitive in the null module (ie the VM)"
  	| clock offset resultArray |
  
  	<export: true>
  	<var: #clock type: 'sqLong'>
  	<var: #offset type: 'int'>
  	argumentCount > 1 ifTrue: [^self primitiveFailFor: PrimErrBadNumArgs].
  	(self cCode: 'ioUtcWithOffset(&clock, &offset)' inSmalltalk: [-1]) = -1
  		ifTrue: [^ self primitiveFail].
  	objectMemory pushRemappableOop: (self positive64BitIntegerFor: clock).
  	argumentCount > 0
  		ifTrue: [resultArray := self popStack.
  			((objectMemory isPointers: resultArray)
  				and: [(objectMemory lengthOf: resultArray) = 2])
  					ifFalse: [^self primitiveFailFor: PrimErrBadArgument]]
  		ifFalse: [resultArray := objectMemory instantiateClass: objectMemory classArray indexableSize: 2].
+ 	objectMemory storePointer: 0 ofObject: resultArray withValue: objectMemory popRemappableOop.
+ 	objectMemory storePointerUnchecked: 1 ofObject: resultArray withValue: (objectMemory integerObjectOf: offset).
- 	self stObject: resultArray at: 1 put: objectMemory popRemappableOop.
- 	self stObject: resultArray at: 2 put: (objectMemory integerObjectOf: offset).
  	self pop: 1 thenPush: resultArray
  !

Item was changed:
  ----- Method: VMMaker class>>versionString (in category 'version testing') -----
  versionString
  
  	"VMMaker versionString"
  
+ 	^'4.13.5'!
- 	^'4.13.4'!



More information about the Vm-dev mailing list