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

commits at source.squeak.org commits at source.squeak.org
Tue May 10 18:54:11 UTC 2016


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

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

Name: Cog-eem.319
Author: eem
Time: 10 May 2016, 11:53:43.273329 am
UUID: 763f34da-8118-4645-9095-8decbcd3605a
Ancestors: Cog-eem.318

Add VPF register state accessors to the GdbARMAlien; advance after a multiply, and fix printing.

=============== Diff against Cog-eem.318 ===============

Item was changed:
  ----- Method: GdbARMAlien class>>dataSize (in category 'instance creation') -----
  dataSize
+ 	^1788!
- 
- 	^1536!

Item was added:
+ ----- Method: GdbARMAlien>>d0 (in category 'accessing') -----
+ d0
+ 	^self unsignedLongLongAt: 1529!

Item was added:
+ ----- Method: GdbARMAlien>>d0: (in category 'accessing') -----
+ d0: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1529 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d1 (in category 'accessing') -----
+ d1
+ 	^self unsignedLongLongAt: 1537!

Item was added:
+ ----- Method: GdbARMAlien>>d10 (in category 'accessing') -----
+ d10
+ 	^self unsignedLongLongAt: 1609!

Item was added:
+ ----- Method: GdbARMAlien>>d10: (in category 'accessing') -----
+ d10: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1609 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d11 (in category 'accessing') -----
+ d11
+ 	^self unsignedLongLongAt: 1617!

Item was added:
+ ----- Method: GdbARMAlien>>d11: (in category 'accessing') -----
+ d11: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1617 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d12 (in category 'accessing') -----
+ d12
+ 	^self unsignedLongLongAt: 1625!

Item was added:
+ ----- Method: GdbARMAlien>>d12: (in category 'accessing') -----
+ d12: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1625 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d13 (in category 'accessing') -----
+ d13
+ 	^self unsignedLongLongAt: 1633!

Item was added:
+ ----- Method: GdbARMAlien>>d13: (in category 'accessing') -----
+ d13: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1633 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d14 (in category 'accessing') -----
+ d14
+ 	^self unsignedLongLongAt: 1641!

Item was added:
+ ----- Method: GdbARMAlien>>d14: (in category 'accessing') -----
+ d14: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1641 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d15 (in category 'accessing') -----
+ d15
+ 	^self unsignedLongLongAt: 1649!

Item was added:
+ ----- Method: GdbARMAlien>>d15: (in category 'accessing') -----
+ d15: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1649 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d16 (in category 'accessing') -----
+ d16
+ 	^self unsignedLongLongAt: 1657!

Item was added:
+ ----- Method: GdbARMAlien>>d16: (in category 'accessing') -----
+ d16: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1657 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d17 (in category 'accessing') -----
+ d17
+ 	^self unsignedLongLongAt: 1665!

Item was added:
+ ----- Method: GdbARMAlien>>d17: (in category 'accessing') -----
+ d17: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1665 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d18 (in category 'accessing') -----
+ d18
+ 	^self unsignedLongLongAt: 1673!

Item was added:
+ ----- Method: GdbARMAlien>>d18: (in category 'accessing') -----
+ d18: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1673 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d19 (in category 'accessing') -----
+ d19
+ 	^self unsignedLongLongAt: 1681!

Item was added:
+ ----- Method: GdbARMAlien>>d19: (in category 'accessing') -----
+ d19: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1681 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d1: (in category 'accessing') -----
+ d1: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1537 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d2 (in category 'accessing') -----
+ d2
+ 	^self unsignedLongLongAt: 1545!

Item was added:
+ ----- Method: GdbARMAlien>>d20 (in category 'accessing') -----
+ d20
+ 	^self unsignedLongLongAt: 1689!

Item was added:
+ ----- Method: GdbARMAlien>>d20: (in category 'accessing') -----
+ d20: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1689 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d21 (in category 'accessing') -----
+ d21
+ 	^self unsignedLongLongAt: 1697!

Item was added:
+ ----- Method: GdbARMAlien>>d21: (in category 'accessing') -----
+ d21: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1697 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d22 (in category 'accessing') -----
+ d22
+ 	^self unsignedLongLongAt: 1705!

Item was added:
+ ----- Method: GdbARMAlien>>d22: (in category 'accessing') -----
+ d22: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1705 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d23 (in category 'accessing') -----
+ d23
+ 	^self unsignedLongLongAt: 1713!

Item was added:
+ ----- Method: GdbARMAlien>>d23: (in category 'accessing') -----
+ d23: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1713 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d24 (in category 'accessing') -----
+ d24
+ 	^self unsignedLongLongAt: 1721!

Item was added:
+ ----- Method: GdbARMAlien>>d24: (in category 'accessing') -----
+ d24: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1721 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d25 (in category 'accessing') -----
+ d25
+ 	^self unsignedLongLongAt: 1729!

Item was added:
+ ----- Method: GdbARMAlien>>d25: (in category 'accessing') -----
+ d25: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1729 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d26 (in category 'accessing') -----
+ d26
+ 	^self unsignedLongLongAt: 1737!

Item was added:
+ ----- Method: GdbARMAlien>>d26: (in category 'accessing') -----
+ d26: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1737 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d27 (in category 'accessing') -----
+ d27
+ 	^self unsignedLongLongAt: 1745!

Item was added:
+ ----- Method: GdbARMAlien>>d27: (in category 'accessing') -----
+ d27: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1745 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d28 (in category 'accessing') -----
+ d28
+ 	^self unsignedLongLongAt: 1753!

Item was added:
+ ----- Method: GdbARMAlien>>d28: (in category 'accessing') -----
+ d28: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1753 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d29 (in category 'accessing') -----
+ d29
+ 	^self unsignedLongLongAt: 1761!

Item was added:
+ ----- Method: GdbARMAlien>>d29: (in category 'accessing') -----
+ d29: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1761 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d2: (in category 'accessing') -----
+ d2: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1545 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d3 (in category 'accessing') -----
+ d3
+ 	^self unsignedLongLongAt: 1553!

Item was added:
+ ----- Method: GdbARMAlien>>d30 (in category 'accessing') -----
+ d30
+ 	^self unsignedLongLongAt: 1769!

Item was added:
+ ----- Method: GdbARMAlien>>d30: (in category 'accessing') -----
+ d30: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1769 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d31 (in category 'accessing') -----
+ d31
+ 	^self unsignedLongLongAt: 1777!

Item was added:
+ ----- Method: GdbARMAlien>>d31: (in category 'accessing') -----
+ d31: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1777 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d3: (in category 'accessing') -----
+ d3: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1553 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d4 (in category 'accessing') -----
+ d4
+ 	^self unsignedLongLongAt: 1561!

Item was added:
+ ----- Method: GdbARMAlien>>d4: (in category 'accessing') -----
+ d4: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1561 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d5 (in category 'accessing') -----
+ d5
+ 	^self unsignedLongLongAt: 1569!

Item was added:
+ ----- Method: GdbARMAlien>>d5: (in category 'accessing') -----
+ d5: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1569 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d6 (in category 'accessing') -----
+ d6
+ 	^self unsignedLongLongAt: 1577!

Item was added:
+ ----- Method: GdbARMAlien>>d6: (in category 'accessing') -----
+ d6: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1577 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d7 (in category 'accessing') -----
+ d7
+ 	^self unsignedLongLongAt: 1585!

Item was added:
+ ----- Method: GdbARMAlien>>d7: (in category 'accessing') -----
+ d7: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1585 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d8 (in category 'accessing') -----
+ d8
+ 	^self unsignedLongLongAt: 1593!

Item was added:
+ ----- Method: GdbARMAlien>>d8: (in category 'accessing') -----
+ d8: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1593 put: anUnsignedInteger!

Item was added:
+ ----- Method: GdbARMAlien>>d9 (in category 'accessing') -----
+ d9
+ 	^self unsignedLongLongAt: 1601!

Item was added:
+ ----- Method: GdbARMAlien>>d9: (in category 'accessing') -----
+ d9: anUnsignedInteger
+ 	^self unsignedLongLongAt: 1601 put: anUnsignedInteger!

Item was changed:
  ----- Method: GdbARMAlien>>handleOneRegTransferDoubleArithmetic:at: (in category 'floating-point emulation') -----
  handleOneRegTransferDoubleArithmetic: instr at: pc
  	"Emulate a one-register transfer VFP instruction."
  	| rn rd rm vn vm |
  	rn := instr >> 16 bitAnd: 15.
  	rd := instr >> 12 bitAnd: 15.
  	rm := instr bitAnd: 15.
  	vn := Float fromIEEE64BitWord: (self perform: (self registerStateGetters at: rn + 18)). "Assume accesses fp regs"
  	vm := Float fromIEEE64BitWord: (self perform: (self registerStateGetters at: rm + 18)). "Assume accesses fp regs"
  	(instr >> 18 bitAnd: 31)
  		caseOf: {
  		[8 "FMULD"]	->
  			[| r |
  			 r := vn * vm.
  			 self perform: (self registerStateSetters at: rd + 18) with: r asIEEE64BitWord].
  		[12"FADDD/FSUBD"]	->
  			[self shouldBeImplemented].
  		[32"FDIVD"]	->
  			[self shouldBeImplemented].
  		[45"FCMPD"]	->
  			[self shouldBeImplemented]. }
+ 		otherwise: [self reportPrimitiveFailure].
+ 	self pc: pc + 4!
- 		otherwise: [self reportPrimitiveFailure]!

Item was changed:
  ----- Method: GdbARMAlien>>printOn: (in category 'printing') -----
  printOn: aStream
+ 	| first |
+ 	first := true.
+ 	aStream nextPutAll: 'an ARMAlien ('.
+ 	self registerState with: self registerStateGetters do: [ :state :getter |
+ 		first
+ 			ifTrue: [first := false]
+ 			ifFalse: [aStream << ', '].
+ 		getter first = $d
+ 			ifTrue:
+ 				[aStream
+ 					<< getter << ': '
+ 					<< (Float fromIEEE64BitWord: state)]
+ 			ifFalse:
+ 				[getter == #eflags
+ 					ifTrue:
+ 						[aStream
+ 							<< 'NZCVIF: '
+ 							<< (state printStringBase: 2 length: 6 padded: true)]
+ 					ifFalse:
+ 						[aStream
+ 							<< getter << ': '
+ 							<< (state printStringBase: 16)]]]!
- 	aStream nextPutAll: 'an ARMAlien('.
- 	self registerState allButLast with: self registerStateGetters allButLast do: [ :state :i |
- 		aStream 
- 			<< i << ': ' 
- 			<< (state abs > 15 ifTrue: [state hex] ifFalse: [state asString]) 
- 			<< ', '].
- 	aStream << 'NZCVIF: ' 
- 		<< (self registerState last printStringBase: 2 length: 6 padded: true) << ')'.!

Item was changed:
  ----- Method: GdbARMAlien>>registerState (in category 'accessing-abstract') -----
  registerState
  	^{	self r0. self r1. self r2. self r3. self r4. self r5. self r6. self r7.
+ 		self r8. self r9. self sl. self fp. self r12. self sp. self lr. self pc. self eflags.
+ 		self d0. self d1. self d2. self d3. self d4. self d5. self d6. self d7.
+ 		self d8. self d9. self d10. self d11. self d12. self d13. self d14. self d15 }!
- 		self r8. self r9. self sl. self fp. self r12. self sp. self lr. self pc. self eflags }!



More information about the Vm-dev mailing list