Large and small integers on 64 bit Squeak
David T. Lewis
lewis at mail.msen.com
Sat Jan 14 14:27:25 UTC 2006
For 32 bit Squeak on 32 bit Intel hardware:
SmallInteger maxVal hex ==> '16r3FFFFFFF'
16r3FFFFFFF class ==> SmallInteger
16r40000000 class ==> LargePositiveInteger
16r3FFFFFFF + 1 = 16r40000000 ==> true
For 64 bit Squeak on 32 bit Intel hardware:
SmallInteger maxVal hex ==> '16r3FFFFFFF'
16r4FFFFFF03FFFFFFF class ==> SmallInteger
16r4FFFFFF040000000 class ==> LargePositiveInteger
(16r4FFFFFF03FFFFFFF + 1) = 16r4FFFFFF040000000 ==> true
For 64 bit Squeak on 64 bit AMD hardware (note high order bit):
SmallInteger maxVal hex ==> '16r3FFFFFFF'
16rFFFFFFF03FFFFFFF class ==> SmallInteger
16rFFFFFFF040000000 class ==> LargePositiveInteger
(16rFFFFFFF03FFFFFFF + 1) = 16rFFFFFFF040000000 ==> true
SmallIntegers are still 31 bits in 64 bit Squeak, so this does not
look right. Or am I just misunderstanding something?
I was looking at this because of
DateAndTime now ==> -4391-03-28T17:46:11+00:00
on 64 bit Squeak, which definitely does not look right.
Dave
More information about the Vm-dev
mailing list