[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