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

commits at source.squeak.org commits at source.squeak.org
Sun Oct 25 02:51:22 UTC 2020


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

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

Name: Cog-eem.413
Author: eem
Time: 24 October 2020, 7:51:20.269241 pm
UUID: b0316e73-788d-4e7f-ae7b-0f9a09515581
Ancestors: Cog-eem.412

Update MultiProcessor to current disassembly API.

=============== Diff against Cog-eem.412 ===============

Item was added:
+ ----- Method: MultiProcessor class>>printTempNames (in category 'testing') -----
+ printTempNames
+ 	^CogProcessorAlien printTempNames!

Item was added:
+ ----- Method: MultiProcessor class>>printTempNames: (in category 'testing') -----
+ printTempNames: aBoolean
+ 	^CogProcessorAlien printTempNames: aBoolean!

Item was added:
+ ----- Method: MultiProcessor class>>setReceiverResultReg: (in category 'testing') -----
+ setReceiverResultReg: anIntegerOrNil
+ 	CogProcessorAlien setReceiverResultReg: anIntegerOrNil!

Item was changed:
  ----- Method: MultiProcessor>>doesNotUnderstand: (in category 'message forwarding') -----
  doesNotUnderstand: aMessage
  	"Forward a message to the actual processor, managing a thread-switch if necessary.
  	 Catch ProcessorSimulationTraps and raise them outside of the critical section to
  	 avoid deadlock when reentering the VM from a trap and switching threads in the run-time."
  	| selector result trap |
  	selector := aMessage selector.
  	(guardedProcessorProtocol includes: selector) ifFalse:
  		[^(unguardedProcessorProtocol includes: selector)
  			ifTrue: [processor perform: selector withArguments: aMessage arguments]
  			ifFalse: [super doesNotUnderstand: aMessage]].
- 	(#(simulateLeafCallOf:nextpc:memory:) includes: selector) ifTrue:
- 		[self halt: selector].
  	result := [mutex critical:
  				[owner ~~ mutex owningProcess ifTrue:
  					[owner ifNotNil:
  						[registerState at: owner put: processor registerState].
  					 (registerState at: (owner := mutex owningProcess) ifAbsent: nil)
  						ifNil: [coInterpreter initializeProcessorForThreadIndex: (threadIndex := threadIndex + 1)]
  						ifNotNil: [:newState| processor setRegisterState: newState]].
  				 processor perform: selector withArguments: aMessage arguments]]
  					on: ProcessorSimulationTrap, Error, AssertionFailure
  					do: [:ex|
  						ex class == ProcessorSimulationTrap ifFalse:
  							[ex pass].
  						trap := ex].
  	^trap ifNil: [result] ifNotNil: [trap signal]!



More information about the Vm-dev mailing list