[Vm-dev] VM Maker: Cog-eem.434.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jan 20 04:47:08 UTC 2021


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.434.mcz

==================== Summary ====================

Name: Cog-eem.434
Author: eem
Time: 19 January 2021, 8:47:05.865683 pm
UUID: ee50579f-beb7-487a-816e-23bc0ce7d244
Ancestors: Cog-eem.433

doWithIndex: => withIndexDo:

=============== Diff against Cog-eem.433 ===============

Item was changed:
  ----- Method: GdbARMv8Alien>>printRegisterState:on: (in category 'printing') -----
  printRegisterState: registerStateVector on: aStream
  	(registerStateVector size >= 64
  		ifTrue:
  			[#(	(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))]
  		ifFalse:
  			[#(	(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))]) withIndexDo:
- 				(r28 fp lr sp cr))]) doWithIndex:
  				[:subset :index|
  				(subset anySatisfy: [:getter| getter ~~ #cr and: [(self perform: getter) ~= 0]]) ifTrue:
  					[self printFields: subset
  						inRegisterState: (registerStateVector copyFrom: index * 4 - 3 to: index * 4)
  						on: aStream]].
  	registerStateVector size = 34 "i.e. imtegerRegisterState"
  		ifTrue:
  			[self printFields: #(pc rawCPSR cr)
  				inRegisterState: (registerStateVector last: 2)
  				on: aStream]
  		ifFalse:
  			[self printFields: #(pc CPSR FPSR FPCR nextpc cr)
  				inRegisterState: (registerStateVector last: 5)
  				on: aStream]!

Item was changed:
  ----- Method: GdbARMv8AlienTests>>singleStepNFibFor:numTimes:on: (in category 'examples') -----
  singleStepNFibFor: v numTimes: n on: aStream
  	"self new singleStepNFibFor: 2 numTimes: 32 on: Transcript"
  	| memory p state newState |
  	memory := Bitmap new: 1024 * 2 withAll: self processor nopOpcode.
  	memory replaceFrom: 1 to: self nfib size with: self nfib asWordArray startingAt: 1.
  	(p := self processor)
  		r0: n;
  		lr: memory size * 2; "return address"
  		pc: 0;
  		sp: (memory size * 4) - 16.
  	p printRegistersOn: aStream.
  	state := p registerState.
  	aStream cr; flush.
  	n timesRepeat:
  		[| first |
  		 aStream nextPutAll: (p disassembleNextInstructionIn: memory); space.
  		 p singleStepIn: memory readExecuteOnlyBelow: memory size / 2.
  		 newState := p registerState.
  		 first := true.
+ 		 state withIndexDo:
- 		 state doWithIndex:
  			[:rv :i| | nv |
  			rv ~= (nv := newState at: i) ifTrue:
  				[first ifTrue: [aStream crtab: 2. first := false].
  				 aStream nextPutAll: (p registerStateSetters at: i); space; print: rv; nextPutAll: ' -> '; print: nv; space]].
  		 aStream cr; flush.
  		 state := newState].
  	^p r0!

Item was changed:
  ----- Method: MIPSSimulator>>printRegisterState:on: (in category 'user interface') -----
  printRegisterState: registerStateVector on: aStream
  	#(	(at v0 v1 cr)
  		(a0 a1 a2 a3 cr)
  		(t0 t1 t2 t3 cr)
  		(t4 t5 t6 t7 cr)
  		(s0 s1 s2 s3 cr)
  		(s4 s5 s6 s7 cr)
  		(t8 t9 k0 k1 cr)
+ 		(gp sp fp ra cr)) withIndexDo:
- 		(gp sp fp ra cr)) doWithIndex:
  				[:subset :index|
  				(subset anySatisfy: [:getter| getter ~~ #cr and: [(self perform: getter) ~= 0]]) ifTrue:
  					[self printFields: subset
  						inRegisterState: (registerStateVector copyFrom: index * 4 - 3 to: index * 4)
  						on: aStream]].
  	self printFields: #(pc cr)
  		inRegisterState: (registerStateVector last: 1)
  		on: aStream!



More information about the Vm-dev mailing list