At 07:40 PM 9/22/2001 +0300, Jarkko Hietaniemi wrote:
>On Sat, Sep 22, 2001 at 05:17:16PM +0100, Simon Cozens wrote:
> > On Sat, Sep 22, 2001 at 04:40:46PM +0100, Simon Cozens wrote:
> > > And now I know why! The branch-fixup section of the assembler's busted:
> >
> > No, that wasn't it. This is it:
> >
> > opcode_t *ne_nc_ic(opcode_t cur_opcode[], struct Parrot_Interp
> *interpreter) {
> > IV return_offset = 5;
> > if (NUM_REG(cur_opcode[1]) != *(NV *)&cur_opcode[2]) {
> > return cur_opcode + cur_opcode[4];
> >
> > Now, this (and similar code) assumes that
> > sizeof(NV) == 2*sizeof(opcode_t)
>
>Baaad assumption. In Tru64 sizeof(double) is 8, sizeof(long) (IVs are
>longs) is 8, too. (Just to add to the confusion, Tru64 also has long
>doubles but they are only a decoy to aid compilations: they are really
>the same as doubles.) (When long doubles are not decoys, they can be 12
>or 16 bytes long.)
And one I deeply regret. All I can say is "It seemed like a good idea at
the time" :)
Hong's suggestion earlier is correct. We should put all non-integer
constants into the constants section, not inline.
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk