[Vm-dev] VM Maker: Cog-eem.145.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Mar 18 18:24:40 UTC 2014
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.145.mcz
==================== Summary ====================
Name: Cog-eem.145
Author: eem
Time: 18 March 2014, 11:24:26.211 am
UUID: d053c091-fd80-4423-b68d-fd7c05af1f1d
Ancestors: Cog-eem.144
In the interests of pushing the lemming over the cliff,
make CogProcessorAlien survive snapshots.
Move new up from the subclasses into CogProcessorAlien.
Rename FooProcessorAlienTests register[GS]etters to
integerRegister[GS]etters.
=============== Diff against Cog-eem.144 ===============
Item was removed:
- ----- Method: BochsIA32Alien class>>new (in category 'instance creation') -----
- new
- ^(self atAddress: self primitiveNewCPU) reset!
Item was added:
+ ----- Method: BochsIA32Alien>>registerStateGetters (in category 'accessing-abstract') -----
+ registerStateGetters
+ ^#( eax ebx ecx edx esp ebp esi edi eip eflags
+ xmm0low xmm1low xmm2low xmm3low
+ xmm4low xmm5low xmm6low xmm7low )!
Item was added:
+ ----- Method: BochsIA32Alien>>registerStateSetters (in category 'accessing-abstract') -----
+ registerStateSetters
+ ^#( eax: ebx: ecx: edx: esp: ebp: esi: edi: eip: eflags:
+ xmm0low: xmm1low: xmm2low: xmm3low:
+ xmm4low: xmm5low: xmm6low: xmm7low: )!
Item was added:
+ ----- Method: BochsIA32AlienTests>>integerRegisterGetters (in category 'accessing') -----
+ integerRegisterGetters
+ ^#(eax ecx edx ebx esp ebp esi edi eip)!
Item was added:
+ ----- Method: BochsIA32AlienTests>>integerRegisterSetters (in category 'accessing') -----
+ integerRegisterSetters
+ ^#(eax: ecx: edx: ebx: esp: ebp: esi: edi: eip:)!
Item was removed:
- ----- Method: BochsIA32AlienTests>>registerGetters (in category 'accessing') -----
- registerGetters
- ^#(eax ecx edx ebx esp ebp esi edi eip)!
Item was removed:
- ----- Method: BochsIA32AlienTests>>registerSetters (in category 'accessing') -----
- registerSetters
- ^#(eax: ecx: edx: ebx: esp: ebp: esi: edi: eip:)!
Item was changed:
----- Method: BochsIA32AlienTests>>testResetCPU (in category 'tests') -----
testResetCPU
"self new testResetCPU"
+ self integerRegisterSetters do:
- self registerSetters do:
[:setter|
self processor perform: setter with: 16r55555555].
+ self integerRegisterGetters do:
- self registerGetters do:
[:getter|
self assert: 16r55555555 = (self processor perform: getter)].
self processor reset.
+ self integerRegisterGetters do:
- self registerGetters do:
[:getter|
self assert: 0 = (self processor perform: getter)]!
Item was changed:
Alien variableByteSubclass: #CogProcessorAlien
instanceVariableNames: ''
+ classVariableNames: 'SavedState'
- classVariableNames: ''
poolDictionaries: ''
category: 'Cog-Processors'!
!CogProcessorAlien commentStamp: 'lw 8/23/2012 19:15' prior: 0!
I am the superclass for the Simulation CPU instance wrappers. I ensure that methods used in both/all of them need not be copied.!
Item was added:
+ ----- Method: CogProcessorAlien class>>initialize (in category 'class initialization') -----
+ initialize
+ SavedState := WeakIdentityKeyDictionary new.
+ Smalltalk
+ addToStartUpList: self;
+ addToShutDownList: self!
Item was added:
+ ----- Method: CogProcessorAlien class>>new (in category 'instance creation') -----
+ new
+ ^(self atAddress: self primitiveNewCPU) reset!
Item was added:
+ ----- Method: CogProcessorAlien class>>shutDown: (in category 'system startup') -----
+ shutDown: quitting
+ self allSubInstancesDo:
+ [:processor|
+ SavedState at: processor put: processor registerState]!
Item was added:
+ ----- Method: CogProcessorAlien class>>startUp: (in category 'system startup') -----
+ startUp: resuming
+ resuming ifTrue:
+ [SavedState keysAndValuesDo:
+ [:processorOrNil :state|
+ processorOrNil ifNotNil:
+ [processorOrNil addressFieldPut: processorOrNil class primitiveNewCPU.
+ state with: processorOrNil registerStateSetters do:
+ [:value :setter|
+ processorOrNil perform: setter with: value]]]].
+ SavedState removeAll!
Item was removed:
- ----- Method: GdbARMAlien class>>new (in category 'instance creation') -----
- new
- ^(self atAddress: self primitiveNewCPU) reset!
Item was added:
+ ----- Method: GdbARMAlien>>registerStateGetters (in category 'accessing-abstract') -----
+ registerStateGetters
+ ^#( r0 r1 r2 r3 r4 r5 r6 r7
+ r8 r9 r10 r11 r12 sp lr pc eflags )!
Item was added:
+ ----- Method: GdbARMAlienTests>>integerRegisterGetters (in category 'accessing') -----
+ integerRegisterGetters
+ ^#(r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 lr sp pc)!
Item was added:
+ ----- Method: GdbARMAlienTests>>integerRegisterSetters (in category 'accessing') -----
+ integerRegisterSetters
+ ^#(r0: r1: r2: r3: r4: r5: r6: r7: r8: r9: r10: r11: r12: lr: sp: pc:)!
Item was removed:
- ----- Method: GdbARMAlienTests>>registerGetters (in category 'accessing') -----
- registerGetters
- ^#(r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 lr sp pc)!
Item was removed:
- ----- Method: GdbARMAlienTests>>registerSetters (in category 'accessing') -----
- registerSetters
- ^#(r0: r1: r2: r3: r4: r5: r6: r7: r8: r9: r10: r11: r12: lr: sp: pc:)!
Item was changed:
----- Method: GdbARMAlienTests>>testResetCPU (in category 'tests') -----
testResetCPU
"self new testResetCPU"
+ self integerRegisterSetters do:
- self registerSetters do:
[:setter|
self processor perform: setter with: 16r55555555].
+ self integerRegisterGetters do:
- self registerGetters do:
[:getter|
self assert: 16r55555555 = (self processor perform: getter)].
self processor reset.
+ self integerRegisterGetters do:
- self registerGetters do:
[:getter|
self assert: 0 = (self processor perform: getter)]!
More information about the Vm-dev
mailing list