Keith Whitwell wrote:
> 
> Greg Hughes wrote:
> >
> > Inline assembly experts,
> >
> > I've been palying with RedHat 7.1 Beta.  This ships with gcc 2.96.77,
> > which is much better than the 2.96 bundled with RedHat 7.0.  This
> > compiler can build the xc tree from the trunk, but it chokes trying to
> > build the mesa-3-5-branch.  It doesn't like the COPY_DWORDS macro in the
> > r128, radeon, and i810 directories.
> >
> > #define COPY_DWORDS( j, vb, vertsize, v )       \
> >    __asm__ __volatile__( "rep ; movsl"          \
> >                          : "=%c" (j), "=D" (vb) \
> >                          : "0" (vertsize),      \
> >                            "D" ((long)vb),      \
> >                            "S" ((long)v)        \
> >                          : "esi" )
> >
> > The error is:
> >
> >   Can't find a register in class `SIREG' while reloading `asm'.
> >
> > My question:  Is this a compiler defect, or is the compiler just being
> > more strict?
> 
> Hmmm...  Not really sure.  A certain amount of fiddling went into choosing
> that assembly.  I'd suggest looking at the info files for that version of gcc
> to try and verify the code.

I've been experimenting with gcc-3.1 from gcc CVS (and working on the
x86 backend to improve performance on the Athlon, but that's another
story) and had also noticed this.  I'll look into the problem -- I had
originally thought it was related to the clobbered register list, but
this may be a 3.1 thing.

-- Gareth

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to