This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Patch for md.texi: Fix i386 constraints


On 24 Apr 2001, Andreas Jaeger wrote:

> Richard Henderson <rth@redhat.com> writes:
>
> > On Sun, Apr 22, 2001 at 02:04:17PM +0200, Andreas Jaeger wrote:
> > > > GCC may use any register pair to hold 64bit values on 32bit system
> > [...]
> > > Are you sure?  In glibc we often do:
> > > __asm__ __volatile__ ("rdtsc" : "=A" (Var))
> > > and rdtsc puts the value in ax:dx.  The current description is misleading.
> >
> > Yes, but your replacement is just as misleading.
> >
> > > -@samp{a}, or @code{d} register (for 64-bit ints)
> > > +@samp{a} and @samp{d} register used together to store 64-bit ints.  The
> > > +@samp{a} register will store the most significand 32-bits, the @samp{d}
> > > +register the least significand 32-bits.
> >
> > How about
> >
> >   Specifies the @samp{a} or @samp{d} registers.  This is primarily useful
>
> Is it really an *or*?  I understand it that it uses both registers and
> think of an *and*.

Both registers are allowed by the "A" class.  If you use a DImode value, it'll
have to use both of them and thus start with eax, but if you use "A" with a
SImode value, it'll end up in either eax or edx.


Bernd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]