[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