Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.373.mcz==================== Summary ====================
Name: Cog-eem.373
Author: eem
Time: 9 December 2019, 7:34:52.780952 pm
UUID: ed643698-337f-486e-992d-13db69bcbbad
Ancestors: Cog-eem.372
Move flushICacheFrom:to: up to te abstract superclass.
Fix a slip in GdbARMAlien>>instructionIsB:.
Implement some necessary initialization for GdbARMv8Alien.
=============== Diff against Cog-eem.372 ===============
Item was removed:
- ----- Method: BochsIA32Alien>>flushICacheFrom:to: (in category 'execution') -----
- flushICacheFrom: startAddress "<Integer>" to: endAddress "<Integer>"
- self primitiveFlushICacheFrom: startAddress To: endAddress!
Item was removed:
- ----- Method: BochsX64Alien>>flushICacheFrom:to: (in category 'execution') -----
- flushICacheFrom: startAddress "<Integer>" to: endAddress "<Integer>"
- self primitiveFlushICacheFrom: startAddress To: endAddress!
Item was added:
+ ----- Method: CogProcessorAlien>>flushICacheFrom:to: (in category 'execution') -----
+ flushICacheFrom: startAddress "<Integer>" to: endAddress "<Integer>"
+ self primitiveFlushICacheFrom: startAddress To: endAddress!
Item was removed:
- ----- Method: GdbARMAlien>>flushICacheFrom:to: (in category 'execution') -----
- flushICacheFrom: startAddress "<Integer>" to: endAddress "<Integer>"
- self primitiveFlushICacheFrom: startAddress To: endAddress!
Item was changed:
----- Method: GdbARMAlien>>instructionIsB: (in category 'testing') -----
instructionIsB: instr
"is this a B <offset> instruction?"
"first test for non-NV condition code; some important instructions use it"
^(instr bitShift: -28) < 16rF
"See ARM DDI0406A p. A8-44"
+ and: [((instr bitShift: -24) bitAnd: 16rF) = 16rA]!
- and: [(instr bitShift: -24) bitAnd: 16rF = 16rA]!
Item was added:
+ ----- Method: GdbARMv8Alien>>cResultRegister (in category 'accessing-abstract') -----
+ cResultRegister
+ ^self r0!
Item was added:
+ ----- Method: GdbARMv8Alien>>cResultRegister: (in category 'accessing-abstract') -----
+ cResultRegister: aValue
+ self r0: aValue!
Item was added:
+ ----- 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 added:
+ ----- 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!