Hi--
Mm, looks like a bunch of 64-bit fun is in store for me. :)
Interpreter>>primitiveNewWithArg includes:
***
self isDefinedTrueExpression: 'SQ_IMAGE64 && SQ_HOST64' inSmalltalk: [size := self positive32BitValueOf: self stackTop] comment: 'permit large object allocation on 64 bit image and host' ifTrue: [size := self positive64BitValueOf: self stackTop] ifFalse: [size := self positive32BitValueOf: self stackTop]
***
The "in Smalltalk" part doesn't answer a Boolean. What should it be?
thanks again,
-C
-- Craig Latta www.netjam.org/resume +31 06 2757 7177 + 1 415 287 3547
On Mon, May 23, 2011 at 05:33:09PM +0200, Craig Latta wrote:
Hi--
Mm, looks like a bunch of 64-bit fun is in store for me. :) Interpreter>>primitiveNewWithArg includes:
self isDefinedTrueExpression: 'SQ_IMAGE64 && SQ_HOST64' inSmalltalk: [size := self positive32BitValueOf: self stackTop] comment: 'permit large object allocation on 64 bit image and host' ifTrue: [size := self positive64BitValueOf: self stackTop] ifFalse: [size := self positive32BitValueOf: self stackTop]
The "in Smalltalk" part doesn't answer a Boolean. What should it be?
Hi Craig,
It's a bug, but I think I may have fixed it in VMMaker-dtl.231. I am away and cannot check it (I'm just looking at the commit notices on SqueakSource right now), but I think that you will find the corrected method in that update, along with a number of other fixes related to the simulator.
The commit notice for that update is:
VMMaker-dtl.231.mcz Dave Lewis, 6 May 2011 6:04:35 am VMMaker 4.4.18
Changes to allow 64-bit image interpreter simulator to run on little endian (e.g. Intel) platforms.
Implement missing methods #longAt: #longAt:put: and #byteSwapped: in InterpreterSimulatorLSB64.
Fix InterpreterSimulatorLSB>>charsOfLong: to use bytesPerWord instead of 4, required for running InterpreterSimulatorLSB64.
Fix the inSmalltalk: block in #primitiveNewWithArg (fix affects simulator only, no effect on generated code).
Use "self bytesPerWord" in Interpreter (required for C translation) but use direct variable ref in the simulator because it is noticeably faster in simulation.
Fix typo in InterpreterSimulator class comment.
Note, original 64-bit image work was done on a big endian Mac, so a few LSB64 updates may have been missed at that time.
Dave
vm-dev@lists.squeakfoundation.org