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! |
Free forum by Nabble | Edit this page |