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!
vm-dev@lists.squeakfoundation.org