This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I have this exact same problem. It seems the optimizer places a few variables into address registers. In _floatdixf, there is if( u < 0 ) u = -u, negate = 1; This is when the bad assembly is generated. I believe it is a compiler bug. I scanned the m68kmd.c file and it look OK, but I ain't no expert. I filed a bug report Sunday, but have received no reply to it. Not sure when/if it will be fixed. Work-around. gcc-2.7.2% make TARGET_LIBGCC2_CFLAGS=-O0 Which disables optimization when compiling the parts of libgcc2.c file. When the compiler, ./xgcc is invoked, you'll see -O, but the compiler only uses the *last* optimization specified. Hope that helps you along. GCC 2.7.0 does not have this problem. Neal Becker writes: ----------- Now gcc-2.7.2.2 cross configured as: # GCC was configured as follows: ./configure --verbose --target=m68k-none-coff --prefix=/usr/local/m68k --with-gnu-as --with-gnu-ld echo host=hppa1.1-hp-hpux9.05 target=m68k-none-coff build=hppa1.1-hp-hpux9.05 then make all in gcc-2.7.2.2 produced: _fixunsxfdi _floatdixf /usr/tmp/cca15191.s: Assembler messages: /usr/tmp/cca15191.s:97: Error: operands mismatch -- statement `tst.l %a4' ignored make[2]: *** [libgcc2.a] Error 1 make[2]: Leaving directory `/a/data/src/gcc-2.7.2.2' make[1]: *** [stmp-multilib-sub] Error 2 make[1]: Leaving directory `/a/data/src/gcc-2.7.2.2' make: *** [stmp-multilib] Error 1 Any ideas? ----------- --- Real programmers desolder in the nude. --- brian witt