On Mon, 2 Sep 2002, Jake Burkholder wrote:

> Apparently, On Mon, Sep 02, 2002 at 02:24:08PM +1000,
>       Bruce Evans said words to the effect of;
> > aout support is still required for a few things (mainly for compiling
> > some boot blocks), but is broken in gcc3 for at least compile-time
> Which boot blocks?

Oops, perhaps only mine.  (I use my version of biosboot which is like
pc98/boot2 except it supports loading elf kernels and some local things,
and it hasn't been converted to elf at the source level.)  When I wrote
the above I thought that several standard boot blocks used OBJFORMAT=-aout.
They actually just have a lot of ${OBJFORMAT} == aout ifdefs and
elf2aout conversions.  Most of aout support at the source level seems to
have been broken some time ago by using new gas features in assembler

> > The above assembler output has two syntax errors:
> > - ".quad 0".  .quad is not supported by the old aout assembler.
> > - "shldl %eax, %edx".  The old aout assembler only accepts the correct
> >   syntax of "shldl %cl,%eax,%edx".  Note that gcc doesn't elide the
> >   similarly implicit %cl register for the sall instruction.

Wrong fixes for .quad are easy and are already done for some systems
(e.g., OpenBSD) by #undefing ASM_QUAD.

The following hack seems to fix shld (the breakage seems to be

Index: i386.md
RCS file: /home/ncvs/src/contrib/gcc/config/i386/i386.md,v
retrieving revision 1.12
diff -u -2 -r1.12 i386.md
--- i386.md     1 Sep 2002 21:13:32 -0000       1.12
+++ i386.md     2 Sep 2002 05:51:30 -0000
@@ -10768,5 +10768,5 @@
    shld{l}\t{%2, %1, %0|%0, %1, %2}
-   shld{l}\t{%s2%1, %0|%0, %1, %2}"
+   shld{l}\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "type" "ishift")
    (set_attr "prefix_0f" "1")

I forgot to make the corresponding change for shrd.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to