[Vm-dev] Interpreter>>primitiveNewWithArg breaks the simulator

David T. Lewis lewis at mail.msen.com
Mon May 23 16:00:50 UTC 2011


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



More information about the Vm-dev mailing list