fixed register variables on 368 (was: RE: [Win32] VM update (3.2 release candidate))

Ian Piumarta ian.piumarta at inria.fr
Sat May 25 13:12:16 UTC 2002


If anyone is still interested...

> #if defined(__i386__)
> # define IP_REG asm("%esi")
> # define SP_REG asm("%edi")
> # define CB_REG asm("%ebx")
> #endif

After receiving several reports (many thanks!) it seems that version
2.91.6 of gcc (shipped with RedHat 6.1 and 6.2, and probably other
distributions) cannot cope with the above definitions when compiling
`interp.c'.

What I will do is make the third definition conditional on gcc version
2.95 or higher which should enable it in all of the current popular linux
distributions.

Ian

PS: For the insatiably curious, the error message is:

gnu-interp.c: In function `interpret':
gnu-interp.c:8377: fixed or forbidden register 3 (bx) was spilled for class GENERAL_REGS.
This may be due to a compiler bug or to impossible asm statements or clauses.




More information about the Squeak-dev mailing list