moraes@csri.toronto.edu (Mark Moraes) (11/30/88)
The following file and session illustrate the error - 'as' complains about illegal operands of the form 'lea sp@-,a0'. These were not present in gcc 1.30. Gcc compiled and run on a Sun3/180 running SunOS3.5 - used 'config.gcc sun3'. % cat foo.c typedef unsigned long Mask; typedef struct _DetailRec { /* Grab details may be bit masks */ unsigned short exact; Mask *pMask; } DetailRec; #define TRUE 1 #define FALSE 0 static int DetailSupersedesSecond(firstDetail, secondDetail, exception) DetailRec firstDetail, secondDetail; unsigned short exception; { if (IsInGrabMask(firstDetail, secondDetail, exception)) return TRUE; if (IdenticalExactDetails(firstDetail.exact, secondDetail.exact, exception)) return TRUE; return FALSE; } % gcc -v -O -S foo.c gcc version 1.31 /local/lib/gcc-cpp -v -undef -D__GNU__ -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 foo.c /tmp/cca12767.cpp GNU CPP version 1.31 /local/lib/gcc-cc1 /tmp/cca12767.cpp -quiet -dumpbase foo.c -O -version -o foo.s GNU C version 1.31 (68k, MIT syntax) compiled by GNU C version 1.31. % gcc -c -v foo.s gcc version 1.31 as -mc68020 foo.s -o foo.o % mv foo.s foo.s.ok % gcc -v -O -fforce-addr -S foo.c gcc version 1.31 /local/lib/gcc-cpp -v -undef -D__GNU__ -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 foo.c /tmp/cca12776.cpp GNU CPP version 1.31 /local/lib/gcc-cc1 /tmp/cca12776.cpp -quiet -dumpbase foo.c -fforce-addr -O -version -o foo.s GNU C version 1.31 (68k, MIT syntax) compiled by GNU C version 1.31. % gcc -c -v foo.s gcc version 1.31 as -mc68020 foo.s -o foo.o as: error (foo.s:12): Invalid operand as: error (foo.s:14): Invalid operand as: error (foo.s:17): Invalid operand as: error (foo.s:19): Invalid operand % diff foo.s.ok foo.s 12,13c12,15 < movel a6@(18),sp@- < movew a6@(16),sp@- --- > lea sp@-,a0 > movel a6@(18),a0@ > lea sp@-,a0 > movew a6@(16),a0@ 15,16c17,20 < movel a6@(10),sp@- < movew a6@(8),sp@- --- > lea sp@-,a0 > movel a6@(10),a0@ > lea sp@-,a0 > movew a6@(8),a0@ %