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

commits at source.squeak.org commits at source.squeak.org
Tue Nov 26 00:51:14 UTC 2013


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

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

Name: Cog-eem.124
Author: eem
Time: 25 November 2013, 4:50:58.945 pm
UUID: cbd92eb3-1bf4-41e8-a3ea-11a30a9b388a
Ancestors: Cog-eem.123

Remove the new cog zone anywhere execution primitives from the
processor plugins.  The plugin is simpler without them.

=============== Diff against Cog-eem.123 ===============

Item was removed:
- ----- Method: BochsIA32Alien>>primitiveRunInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- primitiveRunInMemory: memoryArray "<Bitmap|ByteArray>"
- 	minimumAddress: minimumAddress "<Integer>"
- 		executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>"
- 			to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Run the receiver using the argument as the store.  Origin the argument at 0. i.e. the first byte of the
- 	 memoryArray is address 0.  Make addresses below minimumAddress illegal.  Convert out-of-range
- 	 calls, jumps and memory read/writes into ProcessorSimulationTrap signals."
- 	<primitive: 'primitiveRunInMemoryMinimumAddressERFromTo' module: 'BochsIA32Plugin' error: ec>
- 	^ec == #'inappropriate operation'
- 		ifTrue: [self handleExecutionPrimitiveFailureIn: memoryArray
- 					minimumAddress: minimumAddress]
- 		ifFalse: [self reportPrimitiveFailure]
- 
- 	"self printRegistersOn: Transcript"!

Item was removed:
- ----- Method: BochsIA32Alien>>primitiveSingleStepInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- primitiveSingleStepInMemory: memoryArray "<Bitmap|ByteArray>"
- 	minimumAddress: minimumAddress "<Integer>"
- 		executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>"
- 			to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Single-step the receiver using the argument as the store.  Origin the argument at 0. i.e. the first byte of the
- 	 memoryArray is address 0.  Make addresses below minimumAddress illegal.  Convert out-of-range
- 	 calls, jumps and memory read/writes into ProcessorSimulationTrap signals."
- 	<primitive: 'primitiveSingleStepInMemoryMinimumAddressERFromTo' module: 'BochsIA32Plugin' error: ec>
- 	^ec == #'inappropriate operation'
- 		ifTrue: [self handleExecutionPrimitiveFailureIn: memoryArray
- 					minimumAddress: minimumAddress]
- 		ifFalse: [self reportPrimitiveFailure]
- 
- 	"self printRegistersOn: Transcript"!

Item was removed:
- ----- Method: BochsIA32Plugin>>primitiveRunInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- "cpuAlien <BochsIA32Alien>" primitiveRunInMemory: memory "<Bitmap|ByteArray|WordArray>" minimumAddress: minAddress "<Integer>" executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>" to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Run the cpu using the first argument as the memory and the following arguments defining valid addresses, running until it halts or hits an exception."
- 	| cpuAlien cpu maybeErr |
- 	<var: #cpu type: #'void *'>
- 	cpuAlien := self primitive: #primitiveRunInMemoryMinimumAddressERFromTo
- 					parameters: #(WordsOrBytes Unsigned Unsigned Unsigned)
- 					receiver: #Oop.
- 	(cpu := self startOfData: cpuAlien) = 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrBadReceiver].
- 	prevInterruptCheckChain := interpreterProxy setInterruptCheckChain: #forceStopOnInterrupt asSymbol.
- 	prevInterruptCheckChain = #forceStopOnInterrupt asSymbol ifTrue:
- 		[prevInterruptCheckChain = 0].
- 	maybeErr := self runCPU: cpu
- 					In: memory
- 					Size: (interpreterProxy byteSizeOf: memory cPtrAsOop)
- 					MinAddress: minAddress
- 					EROFrom: minExecAndReadOnlyAddress
- 					To: maxExecAndReadOnlyAddress.
- 	interpreterProxy setInterruptCheckChain: prevInterruptCheckChain.
- 	maybeErr ~= 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrInappropriate].
- 	^cpuAlien!

Item was removed:
- ----- Method: BochsIA32Plugin>>primitiveSingleStepInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- "cpuAlien <BochsIA32Alien>" primitiveSingleStepInMemory: memory "<Bitmap|ByteArray|WordArray>" minimumAddress: minAddress "<Integer>" executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>" to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Single-step the cpu using the first argument as the memory and the following arguments defining valid addresses, running until it halts or hits an exception."
- 	| cpuAlien cpu maybeErr |
- 	<var: #cpu type: #'void *'>
- 	cpuAlien := self primitive: #primitiveSingleStepInMemoryMinimumAddressERFromTo
- 					parameters: #(WordsOrBytes Unsigned Unsigned Unsigned)
- 					receiver: #Oop.
- 	(cpu := self startOfData: cpuAlien) = 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrBadReceiver].
- 	maybeErr := self singleStepCPU: cpu
- 					In: memory
- 					Size: (interpreterProxy byteSizeOf: memory cPtrAsOop)
- 					MinAddress: minAddress
- 					EROFrom: minExecAndReadOnlyAddress
- 					To: maxExecAndReadOnlyAddress.
- 	interpreterProxy setInterruptCheckChain: prevInterruptCheckChain.
- 	maybeErr ~= 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrInappropriate].
- 	^cpuAlien!

Item was removed:
- ----- Method: CogProcessorAlien>>runInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'execution') -----
- runInMemory: aMemory minimumAddress: minimumAddress executableAndReadOnlyFrom: minExecAndReadOnlyAddress to: maxExecAndReadOnlyAddress
- 	| result |
- 	result := self primitiveRunInMemory: aMemory
- 				minimumAddress: minimumAddress
- 				executableAndReadOnlyFrom: minExecAndReadOnlyAddress
- 				to: maxExecAndReadOnlyAddress.
- 	result ~~ self ifTrue:
- 		[self error: 'eek!!']!

Item was removed:
- ----- Method: CogProcessorAlien>>singleStepInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'execution') -----
- singleStepInMemory: aMemory minimumAddress: minimumAddress executableAndReadOnlyFrom: minExecAndReadOnlyAddress to: maxExecAndReadOnlyAddress
- 	| result |
- 	result := self primitiveSingleStepInMemory: aMemory
- 				minimumAddress: minimumAddress
- 				executableAndReadOnlyFrom: minExecAndReadOnlyAddress
- 				to: maxExecAndReadOnlyAddress.
- 	result ~~ self ifTrue:
- 		[self error: 'eek!!']!

Item was removed:
- ----- Method: GdbARMAlien>>primitiveRunInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- primitiveRunInMemory: memoryArray "<Bitmap|ByteArray>"
- 	minimumAddress: minimumAddress "<Integer>"
- 		executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>"
- 			to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Run the receiver using the argument as the store.  Origin the argument at 0. i.e. the first byte of the
- 	 memoryArray is address 0.  Make addresses below minimumAddress illegal.  Convert out-of-range
- 	 calls, jumps and memory read/writes into ProcessorSimulationTrap signals."
- 	<primitive: 'primitiveRunInMemoryMinimumAddressERFromTo' module: 'GdbARMPlugin' error: ec>
- 	^ec == #'inappropriate operation'
- 		ifTrue: [self handleExecutionPrimitiveFailureIn: memoryArray
- 					minimumAddress: minimumAddress]
- 		ifFalse: [self reportPrimitiveFailure]
- 
- 	"self printRegistersOn: Transcript"!

Item was removed:
- ----- Method: GdbARMAlien>>primitiveSingleStepInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- primitiveSingleStepInMemory: memoryArray "<Bitmap|ByteArray>"
- 	minimumAddress: minimumAddress "<Integer>"
- 		executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>"
- 			to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Single-step the receiver using the argument as the store.  Origin the argument at 0. i.e. the first byte of the
- 	 memoryArray is address 0.  Make addresses below minimumAddress illegal.  Convert out-of-range
- 	 calls, jumps and memory read/writes into ProcessorSimulationTrap signals."
- 	<primitive: 'primitiveSingleStepInMemoryMinimumAddressERFromTo' module: 'GdbARMPlugin' error: ec>
- 	^ec == #'inappropriate operation'
- 		ifTrue: [self handleExecutionPrimitiveFailureIn: memoryArray
- 					minimumAddress: minimumAddress]
- 		ifFalse: [self reportPrimitiveFailure]
- 
- 	"self printRegistersOn: Transcript"!

Item was removed:
- ----- Method: GdbARMPlugin>>primitiveRunInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- "cpuAlien <GdbARMAlien>" primitiveRunInMemory: memory "<Bitmap|ByteArray|WordArray>" minimumAddress: minAddress "<Integer>" executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>" to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Run the cpu using the first argument as the memory and the following arguments defining valid addresses, running until it halts or hits an exception."
- 	| cpuAlien cpu maybeErr |
- 	<var: #cpu type: #'void *'>
- 	cpuAlien := self primitive: #primitiveRunInMemoryMinimumAddressERFromTo
- 					parameters: #(WordsOrBytes Unsigned Unsigned Unsigned)
- 					receiver: #Oop.
- 	(cpu := self startOfData: cpuAlien) = 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrBadReceiver].
- 	prevInterruptCheckChain := interpreterProxy setInterruptCheckChain: #forceStopOnInterrupt asSymbol.
- 	prevInterruptCheckChain = #forceStopOnInterrupt asSymbol ifTrue:
- 		[prevInterruptCheckChain = 0].
- 	maybeErr := self runCPU: cpu
- 					In: memory
- 					Size: (interpreterProxy byteSizeOf: memory cPtrAsOop)
- 					MinAddress: minAddress
- 					EROFrom: minExecAndReadOnlyAddress
- 					To: maxExecAndReadOnlyAddress.
- 	interpreterProxy setInterruptCheckChain: prevInterruptCheckChain.
- 	maybeErr ~= 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrInappropriate].
- 	^cpuAlien!

Item was removed:
- ----- Method: GdbARMPlugin>>primitiveSingleStepInMemory:minimumAddress:executableAndReadOnlyFrom:to: (in category 'primitives') -----
- "cpuAlien <GdbARMAlien>" primitiveSingleStepInMemory: memory "<Bitmap|ByteArray|WordArray>" minimumAddress: minAddress "<Integer>" executableAndReadOnlyFrom: minExecAndReadOnlyAddress "<Integer>" to: maxExecAndReadOnlyAddress "<Integer>"
- 	"Single-step the cpu using the first argument as the memory and the following arguments defining valid addresses, running until it halts or hits an exception."
- 	| cpuAlien cpu maybeErr |
- 	<var: #cpu type: #'void *'>
- 	cpuAlien := self primitive: #primitiveSingleStepInMemoryMinimumAddressERFromTo
- 					parameters: #(WordsOrBytes Unsigned Unsigned Unsigned)
- 					receiver: #Oop.
- 	(cpu := self startOfData: cpuAlien) = 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrBadReceiver].
- 	maybeErr := self singleStepCPU: cpu
- 					In: memory
- 					Size: (interpreterProxy byteSizeOf: memory cPtrAsOop)
- 					MinAddress: minAddress
- 					EROFrom: minExecAndReadOnlyAddress
- 					To: maxExecAndReadOnlyAddress.
- 	interpreterProxy setInterruptCheckChain: prevInterruptCheckChain.
- 	maybeErr ~= 0 ifTrue:
- 		[^interpreterProxy primitiveFailFor: PrimErrInappropriate].
- 	^cpuAlien!



More information about the Vm-dev mailing list