[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