[Vm-dev] VM Maker: VMMaker.oscog-tpr.289.mcz

commits at source.squeak.org commits at source.squeak.org
Tue May 14 22:21:23 UTC 2013

tim Rowledge uploaded a new version of VMMaker to project VM Maker:

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

Name: VMMaker.oscog-tpr.289
Author: tpr
Time: 14 May 2013, 3:19:03.426 pm
UUID: 522ae12f-76a5-465d-9b22-0a418d901ad2
Ancestors: VMMaker.oscog-eem.288

USe asmLabel: false pragma to stop asm lables being put into floatValueOf and safeObejctAfter so that gcc -o3 doesn't fuck up; it tends to put the label in twice for some reason and then complains about that. Typical...

=============== Diff against VMMaker.oscog-eem.288 ===============

Item was changed:
  ----- Method: NewObjectMemory>>safeObjectAfter: (in category 'object enumeration') -----
  safeObjectAfter: oop 
  	"Return the object or start of free space immediately following the 
  	 given object or free chunk in memory. Return freeStart when
  	 enumeration is complete.  This is for assertion checking only."
  	| sz |
+ 	<asmLabel: false>
  	(self isFreeObject: oop)
  		ifTrue: [sz := self sizeOfFree: oop]
  		ifFalse: [sz := self sizeBitsOf: oop].
  	^oop + sz >= freeStart
  		ifTrue: [freeStart]
  		ifFalse: [self oopFromChunk: oop + sz]!

Item was changed:
  ----- Method: StackInterpreter>>floatValueOf: (in category 'utilities') -----
  floatValueOf: oop
  	"Answer the C double precision floating point value of the argument,
  	 or fail if it is not a Float, and answer 0.
  	 Note: May be called by translated primitive code."
  	| isFloat result |
+ 	<asmLabel: false>
  	<returnTypeC: #double>
  	<var: #result type: #double>
  	isFloat := self isInstanceOfClassFloat: oop.
  	isFloat ifTrue:
  		[self cCode: '' inSmalltalk: [result := Float new: 2].
  		 objectMemory fetchFloatAt: oop + BaseHeaderSize into: result.
  	self primitiveFail.

More information about the Vm-dev mailing list