Lars Wassermann uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-lw.50.mcz ==================== Summary ==================== Name: Cog-lw.50 Author: lw Time: 17 July 2012, 10:15:56.611 pm UUID: 00c1fd03-0c9a-fe46-8b5f-1d879ca17cd4 Ancestors: Cog-eem.49 - Removed the testMOVSD which was is not adaptable for ARM since there is no MOVSD-opcode. - Added some methods which are used by the simulator, namely setStackAlignmentDelta:, setFramePointer:stackPointer:, and endianness. - Switched Transcript logging of the Nfib1 test off. =============== Diff against Cog-eem.49 =============== Item was added: + ----- Method: CogProcessorAlien>>endianness (in category 'accessing-abstract') ----- + endianness + self subclassResponsibility! Item was added: + ----- Method: GdbARMAlien class>>initialize (in category 'class initialization') ----- + initialize + "GdbARMAlien initialize" + super initialize. + PostBuildStackDelta := 0.! Item was added: + ----- Method: GdbARMAlien class>>setStackAlignmentDelta: (in category 'accessing') ----- + setStackAlignmentDelta: stackAlignmentDelta + "copy of BochsIA32Alien>>#setStackAlignmentDelta:, because I don't know yet what it's effect is." + self assert: stackAlignmentDelta isPowerOfTwo. + PostBuildStackDelta := stackAlignmentDelta > 8 + ifTrue: [stackAlignmentDelta - 8] + ifFalse: [0]! Item was added: + ----- Method: GdbARMAlien>>endianness (in category 'accessing-abstract') ----- + endianness + ^#little! Item was added: + ----- Method: GdbARMAlien>>fp (in category 'accessing-abstract') ----- + fp + "According to the use in SVr4" + ^self r11! Item was added: + ----- Method: GdbARMAlien>>fp: (in category 'accessing-abstract') ----- + fp: aNumber + "According to SVr4, the frame pointer is stored in r11" + ^self r11: aNumber! Item was added: + ----- Method: GdbARMAlien>>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: GdbARMAlienTests>>testMOVSD (in category 'tests') ----- - testMOVSD - "Test MOVSD indirecting through edx." - "self new testMOVSD" - self processor - edx: 0; - eip: 0; - singleStepIn: {16rF2. 16r0F. 16r10. 16r42. 16r04. 16r90. 16r01. 16r02. 16r03. 16r04. 16r05. 16r06} asByteArray "movsd %ds:0x4(%edx), %xmm0;nop;garbage". - self assert: self processor eip = 5. - self assert: self processor xmm0low = 16r0605040302019004! Item was changed: ----- Method: GdbARMAlienTests>>testNfib1 (in category 'tests') ----- testNfib1 "self new testNfib1" + self should: [self runNFib: 1 disassemble: false printRegisters: false] - self should: [self runNFib: 1 disassemble: false printRegisters: true] raise: Error withExceptionDo: [:err| self assert: err messageText = 'Error 0: Illegal Instruction fetch address (0x00001000).']. self deny: (self processor pc between: 0 and: self nfib size). self assert: self processor r0 = 1 benchFib! |
Free forum by Nabble | Edit this page |