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

commits at source.squeak.org commits at source.squeak.org
Sun Dec 15 17:24:18 UTC 2019


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

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

Name: Cog-eem.375
Author: eem
Time: 15 December 2019, 9:24:16.014168 am
UUID: a597482b-22b1-4e8c-a1ee-8d29cbea279c
Ancestors: Cog-eem.374

GdbARMv8Alien belongs with CogARMv8Compiler in ClosedVMMaker.

=============== Diff against Cog-eem.374 ===============

Item was removed:
- CogProcessorAlien variableByteSubclass: #GdbARMv8Alien
- 	instanceVariableNames: ''
- 	classVariableNames: 'Level0FailureTable Level0OpcodeTable'
- 	poolDictionaries: 'ARMv8A64Opcodes'
- 	category: 'Cog-Processors'!
- 
- !GdbARMv8Alien commentStamp: 'eem 11/19/2019 15:39' prior: 0!
- I am a wrapper around the struct sim aarch64 CPU instance and emulator routines and I give access to disassembling using libopcodes.!

Item was removed:
- ----- Method: GdbARMv8Alien class>>dataSize (in category 'instance creation') -----
- dataSize
- 	^2280!

Item was removed:
- ----- Method: GdbARMv8Alien class>>implementationClass (in category 'instance creation') -----
- implementationClass
- 	^Smalltalk wordSize = 8 ifTrue: [GdbARMv8Alien64] ifFalse: [self]!

Item was removed:
- ----- Method: GdbARMv8Alien class>>initialize (in category 'class initialization') -----
- initialize
- 	"Initialize the execution failure dispatch table.  This is organized around op0 in C4.1 of the Arm ARM.
- 	 Each tuple is a type and a failure routine, or nil of not needed to be handled as an execution failure."
- 	"self initialize"
- 	Level0FailureTable := #(
- 			"0"	nil nil nil nil
- 			"4"	(LDST	handleFailingLoadStore:at:in:)
- 			"5"	nil
- 			"6"	(LDST	handleFailingLoadStore:at:in:)
- 			"7"	nil nil nil
- 			"a"	(BR		handleFailingBranch:at:in:)
- 			"b"	(BR		handleFailingBranch:at:in:)
- 			"c"	(LDST	handleFailingLoadStore:at:in:)
- 			"d"	nil
- 			"e"	(LDST	handleFailingLoadStore:at:in:)
- 			nil)!

Item was removed:
- ----- Method: GdbARMv8Alien class>>primitiveNewCPU (in category 'primitives') -----
- primitiveNewCPU
- 	"Answer the address of a new struct sim_spu instance (see processors/ARM/gdb-8.3.1/sim/aarch64/sim_main.h)."
- 	<primitive: 'primitiveNewCPU' module: 'GdbARMv8Plugin'>
- 	^self primitiveFailed!

Item was removed:
- ----- Method: GdbARMv8Alien>>cResultRegister (in category 'accessing-abstract') -----
- cResultRegister
- 	^self r0!

Item was removed:
- ----- Method: GdbARMv8Alien>>cResultRegister: (in category 'accessing-abstract') -----
- cResultRegister: aValue
- 	self r0: aValue!

Item was removed:
- ----- Method: GdbARMv8Alien>>d0 (in category 'accessing') -----
- d0
- 	^self unsignedLongLongAt: 265!

Item was removed:
- ----- Method: GdbARMv8Alien>>d0: (in category 'accessing') -----
- d0: anUnsignedInteger
- 	^self unsignedLongLongAt: 265 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d1 (in category 'accessing') -----
- d1
- 	^self unsignedLongLongAt: 281!

Item was removed:
- ----- Method: GdbARMv8Alien>>d10 (in category 'accessing') -----
- d10
- 	^self unsignedLongLongAt: 425!

Item was removed:
- ----- Method: GdbARMv8Alien>>d10: (in category 'accessing') -----
- d10: anUnsignedInteger
- 	^self unsignedLongLongAt: 425 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d11 (in category 'accessing') -----
- d11
- 	^self unsignedLongLongAt: 441!

Item was removed:
- ----- Method: GdbARMv8Alien>>d11: (in category 'accessing') -----
- d11: anUnsignedInteger
- 	^self unsignedLongLongAt: 441 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d12 (in category 'accessing') -----
- d12
- 	^self unsignedLongLongAt: 457!

Item was removed:
- ----- Method: GdbARMv8Alien>>d12: (in category 'accessing') -----
- d12: anUnsignedInteger
- 	^self unsignedLongLongAt: 457 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d13 (in category 'accessing') -----
- d13
- 	^self unsignedLongLongAt: 473!

Item was removed:
- ----- Method: GdbARMv8Alien>>d13: (in category 'accessing') -----
- d13: anUnsignedInteger
- 	^self unsignedLongLongAt: 473 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d14 (in category 'accessing') -----
- d14
- 	^self unsignedLongLongAt: 489!

Item was removed:
- ----- Method: GdbARMv8Alien>>d14: (in category 'accessing') -----
- d14: anUnsignedInteger
- 	^self unsignedLongLongAt: 489 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d15 (in category 'accessing') -----
- d15
- 	^self unsignedLongLongAt: 505!

Item was removed:
- ----- Method: GdbARMv8Alien>>d15: (in category 'accessing') -----
- d15: anUnsignedInteger
- 	^self unsignedLongLongAt: 505 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d16 (in category 'accessing') -----
- d16
- 	^self unsignedLongLongAt: 521!

Item was removed:
- ----- Method: GdbARMv8Alien>>d16: (in category 'accessing') -----
- d16: anUnsignedInteger
- 	^self unsignedLongLongAt: 521 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d17 (in category 'accessing') -----
- d17
- 	^self unsignedLongLongAt: 537!

Item was removed:
- ----- Method: GdbARMv8Alien>>d17: (in category 'accessing') -----
- d17: anUnsignedInteger
- 	^self unsignedLongLongAt: 537 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d18 (in category 'accessing') -----
- d18
- 	^self unsignedLongLongAt: 553!

Item was removed:
- ----- Method: GdbARMv8Alien>>d18: (in category 'accessing') -----
- d18: anUnsignedInteger
- 	^self unsignedLongLongAt: 553 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d19 (in category 'accessing') -----
- d19
- 	^self unsignedLongLongAt: 569!

Item was removed:
- ----- Method: GdbARMv8Alien>>d19: (in category 'accessing') -----
- d19: anUnsignedInteger
- 	^self unsignedLongLongAt: 569 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d1: (in category 'accessing') -----
- d1: anUnsignedInteger
- 	^self unsignedLongLongAt: 281 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d2 (in category 'accessing') -----
- d2
- 	^self unsignedLongLongAt: 297!

Item was removed:
- ----- Method: GdbARMv8Alien>>d20 (in category 'accessing') -----
- d20
- 	^self unsignedLongLongAt: 585!

Item was removed:
- ----- Method: GdbARMv8Alien>>d20: (in category 'accessing') -----
- d20: anUnsignedInteger
- 	^self unsignedLongLongAt: 585 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d21 (in category 'accessing') -----
- d21
- 	^self unsignedLongLongAt: 601!

Item was removed:
- ----- Method: GdbARMv8Alien>>d21: (in category 'accessing') -----
- d21: anUnsignedInteger
- 	^self unsignedLongLongAt: 601 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d22 (in category 'accessing') -----
- d22
- 	^self unsignedLongLongAt: 617!

Item was removed:
- ----- Method: GdbARMv8Alien>>d22: (in category 'accessing') -----
- d22: anUnsignedInteger
- 	^self unsignedLongLongAt: 617 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d23 (in category 'accessing') -----
- d23
- 	^self unsignedLongLongAt: 633!

Item was removed:
- ----- Method: GdbARMv8Alien>>d23: (in category 'accessing') -----
- d23: anUnsignedInteger
- 	^self unsignedLongLongAt: 633 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d24 (in category 'accessing') -----
- d24
- 	^self unsignedLongLongAt: 649!

Item was removed:
- ----- Method: GdbARMv8Alien>>d24: (in category 'accessing') -----
- d24: anUnsignedInteger
- 	^self unsignedLongLongAt: 649 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d25 (in category 'accessing') -----
- d25
- 	^self unsignedLongLongAt: 665!

Item was removed:
- ----- Method: GdbARMv8Alien>>d25: (in category 'accessing') -----
- d25: anUnsignedInteger
- 	^self unsignedLongLongAt: 665 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d26 (in category 'accessing') -----
- d26
- 	^self unsignedLongLongAt: 681!

Item was removed:
- ----- Method: GdbARMv8Alien>>d26: (in category 'accessing') -----
- d26: anUnsignedInteger
- 	^self unsignedLongLongAt: 681 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d27 (in category 'accessing') -----
- d27
- 	^self unsignedLongLongAt: 697!

Item was removed:
- ----- Method: GdbARMv8Alien>>d27: (in category 'accessing') -----
- d27: anUnsignedInteger
- 	^self unsignedLongLongAt: 697 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d28 (in category 'accessing') -----
- d28
- 	^self unsignedLongLongAt: 713!

Item was removed:
- ----- Method: GdbARMv8Alien>>d28: (in category 'accessing') -----
- d28: anUnsignedInteger
- 	^self unsignedLongLongAt: 713 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d29 (in category 'accessing') -----
- d29
- 	^self unsignedLongLongAt: 729!

Item was removed:
- ----- Method: GdbARMv8Alien>>d29: (in category 'accessing') -----
- d29: anUnsignedInteger
- 	^self unsignedLongLongAt: 729 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d2: (in category 'accessing') -----
- d2: anUnsignedInteger
- 	^self unsignedLongLongAt: 297 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d3 (in category 'accessing') -----
- d3
- 	^self unsignedLongLongAt: 313!

Item was removed:
- ----- Method: GdbARMv8Alien>>d30 (in category 'accessing') -----
- d30
- 	^self unsignedLongLongAt: 745!

Item was removed:
- ----- Method: GdbARMv8Alien>>d30: (in category 'accessing') -----
- d30: anUnsignedInteger
- 	^self unsignedLongLongAt: 745 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d31 (in category 'accessing') -----
- d31
- 	^self unsignedLongLongAt: 761!

Item was removed:
- ----- Method: GdbARMv8Alien>>d31: (in category 'accessing') -----
- d31: anUnsignedInteger
- 	^self unsignedLongLongAt: 761 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d3: (in category 'accessing') -----
- d3: anUnsignedInteger
- 	^self unsignedLongLongAt: 313 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d4 (in category 'accessing') -----
- d4
- 	^self unsignedLongLongAt: 329!

Item was removed:
- ----- Method: GdbARMv8Alien>>d4: (in category 'accessing') -----
- d4: anUnsignedInteger
- 	^self unsignedLongLongAt: 329 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d5 (in category 'accessing') -----
- d5
- 	^self unsignedLongLongAt: 345!

Item was removed:
- ----- Method: GdbARMv8Alien>>d5: (in category 'accessing') -----
- d5: anUnsignedInteger
- 	^self unsignedLongLongAt: 345 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d6 (in category 'accessing') -----
- d6
- 	^self unsignedLongLongAt: 361!

Item was removed:
- ----- Method: GdbARMv8Alien>>d6: (in category 'accessing') -----
- d6: anUnsignedInteger
- 	^self unsignedLongLongAt: 361 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d7 (in category 'accessing') -----
- d7
- 	^self unsignedLongLongAt: 377!

Item was removed:
- ----- Method: GdbARMv8Alien>>d7: (in category 'accessing') -----
- d7: anUnsignedInteger
- 	^self unsignedLongLongAt: 377 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d8 (in category 'accessing') -----
- d8
- 	^self unsignedLongLongAt: 393!

Item was removed:
- ----- Method: GdbARMv8Alien>>d8: (in category 'accessing') -----
- d8: anUnsignedInteger
- 	^self unsignedLongLongAt: 393 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>d9 (in category 'accessing') -----
- d9
- 	^self unsignedLongLongAt: 409!

Item was removed:
- ----- Method: GdbARMv8Alien>>d9: (in category 'accessing') -----
- d9: anUnsignedInteger
- 	^self unsignedLongLongAt: 409 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>fp (in category 'accessing') -----
- fp
- 	^self unsignedLongLongAt: 233!

Item was removed:
- ----- Method: GdbARMv8Alien>>fp: (in category 'accessing') -----
- fp: anUnsignedInteger
- 	^self unsignedLongLongAt: 233 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>fpCPCR (in category 'accessing') -----
- fpCPCR
- 	^self unsignedLongLongAt: 793!

Item was removed:
- ----- Method: GdbARMv8Alien>>fpCPCR: (in category 'accessing') -----
- fpCPCR: anUnsignedInteger
- 	^self unsignedLongLongAt: 793 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>fpCPSR (in category 'accessing') -----
- fpCPSR
- 	^self unsignedLongLongAt: 789!

Item was removed:
- ----- Method: GdbARMv8Alien>>fpCPSR: (in category 'accessing') -----
- fpCPSR: anUnsignedInteger
- 	^self unsignedLongLongAt: 789 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>handleExecutionPrimitiveFailureIn:minimumAddress:code: (in category 'error handling') -----
- handleExecutionPrimitiveFailureIn: memoryArray "<Bitmap|ByteArray>" minimumAddress: minimumAddress "<Integer>" code: errorCode "<Integer>"
- 	"Handle an execution primitive failure.  Convert out-of-range call and absolute
- 	 memory read into register instructions into ProcessorSimulationTrap signals."
- 	"self printRegistersOn: Transcript"
- 	| instr pc op |
- 	pc := self pc.
- 	instr := self instr.
- 	(pc between: minimumAddress and: memoryArray byteSize - 1) ifTrue:
- 		[self assert: self instr = (memoryArray unsignedLongAt: pc + 1 bigEndian: false)].
- 	op := self instr >> 25 bitAnd: 16rF.
- 	(Level0FailureTable at: op + 1) ifNotNil:
- 		[:tuple|
- 		^self perform: tuple last with: instr with: pc with: memoryArray].
- 	^self reportPrimitiveFailure!

Item was removed:
- ----- Method: GdbARMv8Alien>>handleFailingBranch:at:in: (in category 'error handling') -----
- handleFailingBranch: instruction at: pc in: memoryArray "<Bitmap|ByteArray>"
- 	"see C4.1.3 Branches, Exception Generating and System instructions in Arm ARM.
- 	 Table C4-4 op1 plus the two top bit of op1"
- 	| decode |
- 	decode := ((instruction bitShift: -29) bitShift: 1) + ((instruction bitShift: -25) bitAnd: 1).
- 	decode = 2r1101 ifTrue: "Unconditional branch (register) on page C4-262"
- 		[instruction = RET ifTrue:
- 			[^(ProcessorSimulationTrap
- 				pc: pc
- 				nextpc: pc + 4
- 				address: self lr
- 				type: #return)
- 			signal]].
- 	self reportPrimitiveFailure!

Item was removed:
- ----- Method: GdbARMv8Alien>>initializeStackFor: (in category 'processor setup') -----
- initializeStackFor: aCogit
- 	"Different cpus need different stack alignment etc, so handle the details here.
- 	 See e.g. https://github.com/ARM-software/software-standards/blob/master/abi/aapcs64/aapcs64.rst#the-stack"
- 	aCogit setStackAlignment: 16 expectedSPOffset: 0 expectedFPOffset: 0.
- 	PostBuildStackDelta := 0!

Item was removed:
- ----- Method: GdbARMv8Alien>>instr (in category 'accessing') -----
- instr
- 	^self unsignedLongAt: 809!

Item was removed:
- ----- Method: GdbARMv8Alien>>lr (in category 'accessing') -----
- lr
- 	^self unsignedLongLongAt: 241!

Item was removed:
- ----- Method: GdbARMv8Alien>>lr: (in category 'accessing') -----
- lr: anUnsignedInteger
- 	^self unsignedLongLongAt: 241 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>nextpc (in category 'accessing') -----
- nextpc
- 	^self unsignedLongLongAt: 797!

Item was removed:
- ----- Method: GdbARMv8Alien>>nextpc: (in category 'accessing') -----
- nextpc: anUnsignedInteger
- 	^self unsignedLongLongAt: 797 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>nopOpcode (in category 'opcodes') -----
- nopOpcode
- 	^NOP!

Item was removed:
- ----- Method: GdbARMv8Alien>>pc (in category 'accessing') -----
- pc
- 	^self unsignedLongLongAt: 777!

Item was removed:
- ----- Method: GdbARMv8Alien>>pc: (in category 'accessing') -----
- pc: anUnsignedInteger
- 	^self unsignedLongLongAt: 777 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>primitiveDisassembleAt:inMemory: (in category 'primitives') -----
- primitiveDisassembleAt: address inMemory: memoryArray "<Bitmap|ByteArray>"
- 	"Answer an Array of the size and the disassembled code string for the instruction at the current instruction pointer in memory."
- 	<primitive: 'primitiveDisassembleAtInMemory' module: 'GdbARMv8Plugin'>
- 	^self primitiveFailed!

Item was removed:
- ----- Method: GdbARMv8Alien>>primitiveErrorAndLog (in category 'primitives') -----
- primitiveErrorAndLog
- 	"Answer an array of the current error code and log contents"
- 	<primitive: 'primitiveErrorAndLog' module: 'GdbARMv8Plugin'>
- 	^self primitiveFailed!

Item was removed:
- ----- Method: GdbARMv8Alien>>primitiveFlushICacheFrom:To: (in category 'primitives') -----
- primitiveFlushICacheFrom: startAddress "<Integer>" To: endAddress "<Integer>"
- 	"Flush the icache in the requested range"
- 	<primitive: 'primitiveFlushICacheFromTo' module: 'GdbARMv8Plugin'>
- 	^self primitiveFailed!

Item was removed:
- ----- Method: GdbARMv8Alien>>primitiveResetCPU (in category 'primitives') -----
- primitiveResetCPU
- 	"Reset the receiver to registers all zero, and protected 32-bit mode."
- 	<primitive: 'primitiveResetCPU' module: 'GdbARMv8Plugin'>
- 	^self reportPrimitiveFailure!

Item was removed:
- ----- Method: GdbARMv8Alien>>primitiveRunInMemory:minimumAddress:readOnlyBelow: (in category 'primitives') -----
- primitiveRunInMemory: memoryArray "<Bitmap|ByteArray>" minimumAddress: minimumAddress "<Integer>" readOnlyBelow: minimumWritableAddress "<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.
- 	Note that minWriteMaxExecAddress is both the minimum writeable address AND the maximum executable address"
- 	<primitive: 'primitiveRunInMemoryMinimumAddressReadWrite' module: 'GdbARMv8Plugin' error: ec>
- 	^ec isPrimitiveError
- 		ifTrue:
- 			[self handleExecutionPrimitiveFailureIn: memoryArray
- 				minimumAddress: minimumAddress
- 				code: ec errorCode]
- 		ifFalse:
- 			[ec == #'inappropriate operation'
- 				ifTrue: [self handleExecutionPrimitiveFailureIn: memoryArray
- 							minimumAddress: minimumAddress]
- 				ifFalse: [self reportPrimitiveFailure]]!

Item was removed:
- ----- Method: GdbARMv8Alien>>primitiveSingleStepInMemory:minimumAddress:readOnlyBelow: (in category 'primitives') -----
- primitiveSingleStepInMemory: memoryArray "<Bitmap|ByteArray>" minimumAddress: minimumAddress "<Integer>" readOnlyBelow: minimumWritableAddress "<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: 'primitiveSingleStepInMemoryMinimumAddressReadWrite' module: 'GdbARMv8Plugin' error: ec>
- 	^ec isPrimitiveError
- 		ifTrue:
- 			[self handleExecutionPrimitiveFailureIn: memoryArray
- 				minimumAddress: minimumAddress
- 				code: ec errorCode]
- 		ifFalse:
- 			[ec == #'inappropriate operation'
- 				ifTrue: [self handleExecutionPrimitiveFailureIn: memoryArray
- 							minimumAddress: minimumAddress]
- 				ifFalse: [self reportPrimitiveFailure]]!

Item was removed:
- ----- Method: GdbARMv8Alien>>printFields:inRegisterState:on: (in category 'printing') -----
- printFields: fields inRegisterState: registerStateVector on: aStream
- 	| rsvs |
- 	aStream ensureCr.
- 	rsvs := registerStateVector readStream.
- 	fields withIndexDo:
- 		[:sym :index| | val |
- 		sym = #cr
- 			ifTrue: [aStream cr]
- 			ifFalse:
- 				[(val := rsvs next) isNil ifTrue: [^self].
- 				aStream nextPutAll: sym; nextPut: $:; space.
- 				val printOn: aStream base: 16 length: 16 padded: true.
- 				#eflags == sym
- 					ifTrue:
- 						[aStream space.
- 						 "'FIVCZN'"'--VCZN' withIndexDo:
- 							[:flag :bitIndex|
- 							flag ~= $- ifTrue:
- 								[aStream nextPut: flag; nextPutAll: 'F='; print: (val bitAnd: 1 << (bitIndex - 1)) >> (bitIndex - 1); space]]]
- 					ifFalse:
- 						[val > 16 ifTrue:
- 							[aStream space; nextPut: $(.
- 							 val printOn: aStream base: 10 length: 1 padded: false.
- 							 aStream nextPut: $)]].
- 				(fields at: index + 1) ~~ #cr ifTrue:
- 					[aStream tab]]]!

Item was removed:
- ----- Method: GdbARMv8Alien>>printRegisterState:on: (in category 'printing') -----
- printRegisterState: registerStateVector on: aStream
- 	self printFields: #(	r0 r1 r2 r3 cr
- 						r4 r5 r6 r7 cr
- 						r8 r9 r10 r11 cr
- 						r12 r13 r14 r15 cr
- 						r16 r17 r18 r19 cr
- 						r20 r21 r22 r23 cr
- 						r24 r25 r26 r27 cr
- 						r28 fp lr sp cr
- 						d0 d1 d2 d3 cr
- 						d4 d5 d6 d7 cr
- 						d8 d9 d10 d11 cr
- 						d12 d13 d14 d15 cr
- 						d16 d17 d18 d19 cr
- 						d20 d21 d22 d23 cr
- 						d24 d25 d26 d27 cr
- 						d28 d29 d30 d31 cr
- 						pc CPSR FPSR FPCR nextpc cr)
- 		inRegisterState: registerStateVector
- 		on: aStream!

Item was removed:
- ----- Method: GdbARMv8Alien>>r0 (in category 'accessing') -----
- r0
- 	^self unsignedLongLongAt: 1!

Item was removed:
- ----- Method: GdbARMv8Alien>>r0: (in category 'accessing') -----
- r0: anUnsignedInteger
- 	^self unsignedLongLongAt: 1 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r1 (in category 'accessing') -----
- r1
- 	^self unsignedLongLongAt: 9!

Item was removed:
- ----- Method: GdbARMv8Alien>>r10 (in category 'accessing') -----
- r10
- 	^self unsignedLongLongAt: 81!

Item was removed:
- ----- Method: GdbARMv8Alien>>r10: (in category 'accessing') -----
- r10: anUnsignedInteger
- 	^self unsignedLongLongAt: 81 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r11 (in category 'accessing') -----
- r11
- 	^self unsignedLongLongAt: 89!

Item was removed:
- ----- Method: GdbARMv8Alien>>r11: (in category 'accessing') -----
- r11: anUnsignedInteger
- 	^self unsignedLongLongAt: 89 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r12 (in category 'accessing') -----
- r12
- 	^self unsignedLongLongAt: 97!

Item was removed:
- ----- Method: GdbARMv8Alien>>r12: (in category 'accessing') -----
- r12: anUnsignedInteger
- 	^self unsignedLongLongAt: 97 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r13 (in category 'accessing') -----
- r13
- 	^self unsignedLongLongAt: 105!

Item was removed:
- ----- Method: GdbARMv8Alien>>r13: (in category 'accessing') -----
- r13: anUnsignedInteger
- 	^self unsignedLongLongAt: 105 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r14 (in category 'accessing') -----
- r14
- 	^self unsignedLongLongAt: 113!

Item was removed:
- ----- Method: GdbARMv8Alien>>r14: (in category 'accessing') -----
- r14: anUnsignedInteger
- 	^self unsignedLongLongAt: 113 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r15 (in category 'accessing') -----
- r15
- 	^self unsignedLongLongAt: 121!

Item was removed:
- ----- Method: GdbARMv8Alien>>r15: (in category 'accessing') -----
- r15: anUnsignedInteger
- 	^self unsignedLongLongAt: 121 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r16 (in category 'accessing') -----
- r16
- 	^self unsignedLongLongAt: 129!

Item was removed:
- ----- Method: GdbARMv8Alien>>r16: (in category 'accessing') -----
- r16: anUnsignedInteger
- 	^self unsignedLongLongAt: 129 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r17 (in category 'accessing') -----
- r17
- 	^self unsignedLongLongAt: 137!

Item was removed:
- ----- Method: GdbARMv8Alien>>r17: (in category 'accessing') -----
- r17: anUnsignedInteger
- 	^self unsignedLongLongAt: 137 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r18 (in category 'accessing') -----
- r18
- 	^self unsignedLongLongAt: 145!

Item was removed:
- ----- Method: GdbARMv8Alien>>r18: (in category 'accessing') -----
- r18: anUnsignedInteger
- 	^self unsignedLongLongAt: 145 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r19 (in category 'accessing') -----
- r19
- 	^self unsignedLongLongAt: 153!

Item was removed:
- ----- Method: GdbARMv8Alien>>r19: (in category 'accessing') -----
- r19: anUnsignedInteger
- 	^self unsignedLongLongAt: 153 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r1: (in category 'accessing') -----
- r1: anUnsignedInteger
- 	^self unsignedLongLongAt: 9 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r2 (in category 'accessing') -----
- r2
- 	^self unsignedLongLongAt: 17!

Item was removed:
- ----- Method: GdbARMv8Alien>>r20 (in category 'accessing') -----
- r20
- 	^self unsignedLongLongAt: 161!

Item was removed:
- ----- Method: GdbARMv8Alien>>r20: (in category 'accessing') -----
- r20: anUnsignedInteger
- 	^self unsignedLongLongAt: 161 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r21 (in category 'accessing') -----
- r21
- 	^self unsignedLongLongAt: 169!

Item was removed:
- ----- Method: GdbARMv8Alien>>r21: (in category 'accessing') -----
- r21: anUnsignedInteger
- 	^self unsignedLongLongAt: 169 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r22 (in category 'accessing') -----
- r22
- 	^self unsignedLongLongAt: 177!

Item was removed:
- ----- Method: GdbARMv8Alien>>r22: (in category 'accessing') -----
- r22: anUnsignedInteger
- 	^self unsignedLongLongAt: 177 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r23 (in category 'accessing') -----
- r23
- 	^self unsignedLongLongAt: 185!

Item was removed:
- ----- Method: GdbARMv8Alien>>r23: (in category 'accessing') -----
- r23: anUnsignedInteger
- 	^self unsignedLongLongAt: 185 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r24 (in category 'accessing') -----
- r24
- 	^self unsignedLongLongAt: 193!

Item was removed:
- ----- Method: GdbARMv8Alien>>r24: (in category 'accessing') -----
- r24: anUnsignedInteger
- 	^self unsignedLongLongAt: 193 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r25 (in category 'accessing') -----
- r25
- 	^self unsignedLongLongAt: 201!

Item was removed:
- ----- Method: GdbARMv8Alien>>r25: (in category 'accessing') -----
- r25: anUnsignedInteger
- 	^self unsignedLongLongAt: 201 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r26 (in category 'accessing') -----
- r26
- 	^self unsignedLongLongAt: 209!

Item was removed:
- ----- Method: GdbARMv8Alien>>r26: (in category 'accessing') -----
- r26: anUnsignedInteger
- 	^self unsignedLongLongAt: 209 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r27 (in category 'accessing') -----
- r27
- 	^self unsignedLongLongAt: 217!

Item was removed:
- ----- Method: GdbARMv8Alien>>r27: (in category 'accessing') -----
- r27: anUnsignedInteger
- 	^self unsignedLongLongAt: 217 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r28 (in category 'accessing') -----
- r28
- 	^self unsignedLongLongAt: 225!

Item was removed:
- ----- Method: GdbARMv8Alien>>r28: (in category 'accessing') -----
- r28: anUnsignedInteger
- 	^self unsignedLongLongAt: 225 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r2: (in category 'accessing') -----
- r2: anUnsignedInteger
- 	^self unsignedLongLongAt: 17 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r3 (in category 'accessing') -----
- r3
- 	^self unsignedLongLongAt: 25!

Item was removed:
- ----- Method: GdbARMv8Alien>>r3: (in category 'accessing') -----
- r3: anUnsignedInteger
- 	^self unsignedLongLongAt: 25 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r4 (in category 'accessing') -----
- r4
- 	^self unsignedLongLongAt: 33!

Item was removed:
- ----- Method: GdbARMv8Alien>>r4: (in category 'accessing') -----
- r4: anUnsignedInteger
- 	^self unsignedLongLongAt: 33 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r5 (in category 'accessing') -----
- r5
- 	^self unsignedLongLongAt: 41!

Item was removed:
- ----- Method: GdbARMv8Alien>>r5: (in category 'accessing') -----
- r5: anUnsignedInteger
- 	^self unsignedLongLongAt: 41 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r6 (in category 'accessing') -----
- r6
- 	^self unsignedLongLongAt: 49!

Item was removed:
- ----- Method: GdbARMv8Alien>>r6: (in category 'accessing') -----
- r6: anUnsignedInteger
- 	^self unsignedLongLongAt: 49 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r7 (in category 'accessing') -----
- r7
- 	^self unsignedLongLongAt: 57!

Item was removed:
- ----- Method: GdbARMv8Alien>>r7: (in category 'accessing') -----
- r7: anUnsignedInteger
- 	^self unsignedLongLongAt: 57 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r8 (in category 'accessing') -----
- r8
- 	^self unsignedLongLongAt: 65!

Item was removed:
- ----- Method: GdbARMv8Alien>>r8: (in category 'accessing') -----
- r8: anUnsignedInteger
- 	^self unsignedLongLongAt: 65 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>r9 (in category 'accessing') -----
- r9
- 	^self unsignedLongLongAt: 73!

Item was removed:
- ----- Method: GdbARMv8Alien>>r9: (in category 'accessing') -----
- r9: anUnsignedInteger
- 	^self unsignedLongLongAt: 73 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>rawCPSR (in category 'accessing') -----
- rawCPSR
- 	^self unsignedLongLongAt: 785!

Item was removed:
- ----- Method: GdbARMv8Alien>>rawCPSR: (in category 'accessing') -----
- rawCPSR: anUnsignedInteger
- 	^self unsignedLongLongAt: 785 put: anUnsignedInteger!

Item was removed:
- ----- Method: GdbARMv8Alien>>registerState (in category 'accessing-abstract') -----
- registerState
- 	^{	self r0. self r1. self r2. self r3. self r4. self r5. self r6. self r7.
- 		self r8. self r9. self r10. self r11. self r12. self r13. self r14. self r15.
- 		self r16. self r17. self r18. self r19. self r20. self r21. self r22. self r23.
- 		self r24. self r25. self r26. self r27. self r28. self fp. self lr. self sp.
- 		self d0. self d1. self d2. self d3. self d4. self d5. self d6. self d7.
- 		self d8. self d9. self d10. self d11. self d12. self d13. self d14. self d15.
- 		self d16. self d17. self d18. self d19. self d20. self d21. self d22. self d23.
- 		self d24. self d25. self d26. self d27. self d28. self d29. self d30. self d31.
- 		self pc. self rawCPSR. self fpCPSR. self fpCPCR. self nextpc }!

Item was removed:
- ----- Method: GdbARMv8Alien>>registerStateGetters (in category 'accessing-abstract') -----
- registerStateGetters
- 	^#(r0 r1 r2 r3 r4 r5 r6 r7
- 		r8 r9 r10 r11 r12 r13 r14 r15
- 		r16 r17 r18 r19 r20 r21 r22 r23
- 		r24 r25 r26 r27 r28 fp lr sp
- 		d0 d1 d2 d3 d4 d5 d6 d7
- 		d8 d9 d10 d11 d12 d13 d14 d15
- 		d16 d17 d18 d19 d20 d21 d22 d23
- 		d24 d25 d26 d27 d28 d29 d30 d31
- 		pc rawCPSR fpCPSR fpCPCR nextpc)!

Item was removed:
- ----- Method: GdbARMv8Alien>>registerStateSetters (in category 'accessing-abstract') -----
- registerStateSetters
- 	^#(r0: r1: r2: r3: r4: r5: r6: r7:
- 		r8: r9: r10: r11: r12: r13: r14: r15:
- 		r16: r17: r18: r19: r20: r21: r22: r23:
- 		r24: r25: r26: r27: r28: fp: lr: sp:
- 		d0: d1: d2: d3: d4: d5: d6: d7:
- 		d8: d9: d10: d11: d12: d13: d14: d15:
- 		d16: d17: d18: d19: d20: d21: d22: d23:
- 		d24: d25: d26: d27: d28: d29: d30: d31:
- 		pc:  rawCPSR: fpCPSR: fpCPCR: nextpc:)!

Item was removed:
- ----- Method: GdbARMv8Alien>>reset (in category 'processor setup') -----
- reset
- 	self primitiveResetCPU!

Item was removed:
- ----- Method: GdbARMv8Alien>>setFramePointer:stackPointer: (in category 'accessing-abstract') -----
- setFramePointer: framePointer stackPointer: stackPointer
- 	"Initialize the processor's frame and stack pointers"
- 	self fp: framePointer.
- 	self sp: stackPointer!

Item was removed:
- ----- Method: GdbARMv8Alien>>simulateLeafCallOf:nextpc:memory: (in category 'execution simulation') -----
- simulateLeafCallOf: address nextpc: nextpc memory: aMemory
- 	self lr: nextpc.
- 	self pc: address!

Item was removed:
- ----- Method: GdbARMv8Alien>>smashRegisterAccessors (in category 'accessing-abstract') -----
- smashRegisterAccessors
- 	"See Table 3-1 Register Usage in AArch64 SMC32, HVC32, SMC64, and HVC64 calls
- 	 in http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf"
- 	^#(r0: r1: r2: r3: r4: r5: r6: r7: r8: r9: r10: r11: r12: r13: r14: r15: r16: r17:)!

Item was removed:
- ----- Method: GdbARMv8Alien>>sp (in category 'accessing') -----
- sp
- 	^self unsignedLongLongAt: 249!

Item was removed:
- ----- Method: GdbARMv8Alien>>sp: (in category 'accessing') -----
- sp: anUnsignedInteger
- 	^self unsignedLongLongAt: 249 put: anUnsignedInteger!

Item was removed:
- GdbARMv8Alien variableByteSubclass: #GdbARMv8Alien64
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Cog-Processors'!
- 
- !GdbARMv8Alien64 commentStamp: 'eem 11/19/2019 15:39' prior: 0!
- I am a wrapper around the struct sim aarch64 CPU instance and emulator routines when compiled for 64-bits. I give access to disassembling using libopcodes.!

Item was removed:
- ----- Method: GdbARMv8Alien64 class>>dataSize (in category 'instance creation') -----
- dataSize
- 	^2280!

Item was removed:
- ----- Method: GdbARMv8Alien64>>nextpc (in category 'accessing') -----
- nextpc
- 	^self unsignedLongLongAt: 801!

Item was removed:
- ----- Method: GdbARMv8Alien64>>nextpc: (in category 'accessing') -----
- nextpc: anUnsignedInteger
- 	^self unsignedLongLongAt: 801 put: anUnsignedInteger!



More information about the Vm-dev mailing list