[Vm-dev] VM Maker: VMMaker.oscog-eem.797.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jul 3 02:51:49 UTC 2014


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

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

Name: VMMaker.oscog-eem.797
Author: eem
Time: 2 July 2014, 7:49:19.914 pm
UUID: 28e6fe82-fa68-4b73-a714-e2481f350031
Ancestors: VMMaker.oscog-eem.796

Nuke a halt from testing the simulator...

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

Item was changed:
  ----- Method: CoInterpreter>>ceActivateFailingPrimitiveMethod: (in category 'enilopmarts') -----
  ceActivateFailingPrimitiveMethod: aPrimitiveMethod
  	"An external call or FFI primitive has failed.  Build the frame and
  	 activate as appropriate.  Enter either the interpreter or machine
  	 code depending on whether aPrimitiveMethod has been or is still
  	 cogged.  Note that we could always interpret but want the efficiency
  	 of executing machine code if it is available."
  	<api>
  	| methodHeader |
  	self assert: primFailCode ~= 0.
  	self assert: newMethod = aPrimitiveMethod.
  	"If we're on Spur, check for forwarders and retry,
  	 returning if successful the second time around."
  	(objectMemory hasSpurMemoryManagerAPI
  	 and: [(objectMemory isOopCompiledMethod: newMethod)
  	 and: [self checkForAndFollowForwardedPrimitiveState]]) ifTrue:
+ 		[self initPrimCall.
- 		[self halt; initPrimCall.
  		 self cCode: [self dispatchFunctionPointer: primitiveFunctionPointer]
  			inSmalltalk:
  				[| evaluable |
  				 evaluable := primitiveFunctionPointer isInteger
  								ifTrue: [cogit simulatedTrampolines at: primitiveFunctionPointer]
  								ifFalse: [primitiveFunctionPointer].
  				 evaluable isMessageSend
  					ifTrue: [self assert: evaluable receiver == self]
  					ifFalse: [self assert: evaluable isBlock].
  				 evaluable value].
  		 self successful ifTrue:
  			[^self]].
  	methodHeader := self rawHeaderOf: aPrimitiveMethod.
  	(self isCogMethodReference: methodHeader)
  		ifTrue: [self activateCoggedNewMethod: false]
  		ifFalse: [self activateNewMethod]!



More information about the Vm-dev mailing list