> [CC'd to the GPUtils project admins]
>
> Hi,
> I think I may have found a bug in GPAsm that relates to its decoding of
> hexadecimal expressions. Specifically, if I have a constant like this:
> DELTA EQU 0x9E3779B9
> .. GPasm seems to clip it at 0x7FFFFFFF. So i do this with the constant:
> MOVLW (((DELTA & 0xFF000000)>>8)>>8)>>8
> .. I end up getting the value 0x7F loaded into W. MPASM, on the other hand,
> evaluates the expression correctly and loads the value 0x9E into W. This
> particular bug is wreaking absolute havoc with my 32-bit math macros -
> especially with the "Load 32-bit constant into variable" (M_COPYLIT) macro.
> Does a workaround for this bug exist - besides, of course, "Rip out the
> macros and do the calculations manually"? I suppose I could use MPASM under
> Dosemu or WINE, but IME Dosemu takes ages to load.
> I can provide a full, compilable example to demonstrate this bug. Also, if
> I try to do a full shift-right-by-24-bits (i.e. "DELTA >> 24"), GPAsm rejects
> the line of code with an error - something about the 24 being too large?
>
> Thanks.
> --
> Phil. | Acorn Risc PC600 Mk3, SA202, 64MB, 6GB,
>
.....philpemKILLspam
.....dsl.pipex.com | ViewFinder, Ethernet (Acorn AEH62),
>
http://www.philpem.dsl.pipex.com/ | 8xCD, framegrabber, Teletext
> Nothing can go wroff001010 bus error: core dumped