[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