VM Maker: Cog-eem.375.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-eem.375.mcz

commits-2
 
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!