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

commits at source.squeak.org commits at source.squeak.org
Thu Dec 10 01:14:12 UTC 2015


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

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

Name: Cog-eem.307
Author: eem
Time: 9 December 2015, 5:13:58.628 pm
UUID: f72e4af8-89ec-4aa9-8b89-84c081875468
Ancestors: Cog-eem.306

Do a better job of filtering uninitialized fp regs in x86 and x64 register state printing.

=============== Diff against Cog-eem.306 ===============

Item was changed:
  ----- Method: BochsIA32Alien>>printRegisterState:on: (in category 'printing') -----
  printRegisterState: registerStateVector on: aStream
+ 	"Print the registers, somewhat nicely formatted"
+ 	| lastIndex |
+ 	"First find out what floating point registers are used, and only print the ones up through the last non-zero one."
+ 	lastIndex := (registerStateVector size to: 11 by: -1) detect: [:i| (registerStateVector at: i) ~= 0] ifNone: [0].
+ 	 lastIndex := lastIndex > 0
+ 					ifTrue: [lastIndex - 10 + 1 // 2 * 3 + 13]
+ 					ifFalse: [13].
  	self printFields:
+ 			(#(	eax ebx ecx edx cr
+ 				esp ebp esi edi cr
+ 				eip eflags cr
+ 				xmm0low xmm1low cr
+ 				xmm2low xmm3low cr
+ 				xmm4low xmm5low cr
+ 				xmm6low xmm7low cr )
+ 					copyFrom: 1 to: lastIndex)
- 			((registerStateVector size < 18
- 			  or: [(11 to: 18) allSatisfy: [:i| (registerStateVector at: i) isZero]])
- 				ifTrue:
- 					[#(	eax ebx ecx edx cr
- 						esp ebp esi edi cr
- 						eip eflags cr )]
- 				ifFalse:
- 					[#(	eax ebx ecx edx cr
- 						esp ebp esi edi cr
- 						eip eflags cr
- 						xmm0low xmm1low cr
- 						xmm2low xmm3low cr
- 						xmm4low xmm5low cr
- 						xmm6low xmm7low cr )])
  		inRegisterState: registerStateVector
  		on: aStream!

Item was changed:
  ----- Method: BochsX64Alien>>printRegisterState:on: (in category 'printing') -----
  printRegisterState: registerStateVector on: aStream
+ 	"Print the registers, somewhat nicely formatted"
+ 	| lastIndex |
+ 	"First find out what floating point registers are used, and only print the ones up through the last non-zero one."
+ 	lastIndex := (registerStateVector size to: 19 by: -1) detect: [:i| (registerStateVector at: i) ~= 0] ifNone: [0].
+ 	lastIndex := lastIndex > 0
+ 					ifTrue: [lastIndex - 18 + 1 // 2 * 3 + 23]
+ 					ifFalse: [23].
  	self printFields:
+ 			(#(	rax rbx rcx rdx cr
+ 				rsp rbp rsi rdi cr
+ 				r8 r9 r10 r11 cr
+ 				r12 r13 r14 r15 cr
+ 				rip rflags cr
+ 				xmm0low xmm1low cr
+ 				xmm2low xmm3low cr
+ 				xmm4low xmm5low cr
+ 				xmm6low xmm7low cr
+ 				xmm8low xmm9low cr
+ 				xmm10low xmm11low cr
+ 				xmm12low xmm13low cr
+ 				xmm14low xmm15low cr )
+ 					copyFrom: 1 to: lastIndex)
- 			((registerStateVector size < 26
- 			  or: [(19 to: 26) allSatisfy: [:i| (registerStateVector at: i) isZero]])
- 				ifTrue:
- 					[#(	rax rbx rcx rdx cr
- 						rsp rbp rsi rdi cr
- 						r8 r9 r10 r11 cr
- 						r12 r13 r14 r15 cr
- 						rip rflags cr)]
- 				ifFalse:
- 					[#(	rax rbx rcx rdx cr
- 						rsp rbp rsi rdi cr
- 						r8 r9 r10 r11 cr
- 						r12 r13 r14 r15 cr
- 						rip rflags cr
- 						xmm0low xmm1low cr
- 						xmm2low xmm3low cr
- 						xmm4low xmm5low cr
- 						xmm6low xmm7low cr )])
  		inRegisterState: registerStateVector
  		on: aStream!

Item was changed:
  ----- Method: BochsX64Alien>>registerState (in category 'accessing-abstract') -----
  registerState
  	^{	self rax. self rbx. self rcx. self rdx. self rsp. self rbp. self rsi. self rdi.
  		self r8. self r9. self r10. self r11. self r12. self r13. self r14. self r15.
  		self rip. self rflags.
  		self xmm0low. self xmm1low. self xmm2low. self xmm3low.
+ 		self xmm4low. self xmm5low. self xmm6low. self xmm7low.
+ 		self xmm8low. self xmm9low. self xmm10low. self xmm11low.
+ 		self xmm12low. self xmm13low. self xmm14low. self xmm5low }!
- 		self xmm4low. self xmm5low. self xmm6low. self xmm7low }!



More information about the Vm-dev mailing list