This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch for md.texi: Fix i386 constraints
- To: Andreas Jaeger <aj at suse dot de>
- Subject: Re: Patch for md.texi: Fix i386 constraints
- From: Bernd Schmidt <bernds at redhat dot com>
- Date: Tue, 24 Apr 2001 16:49:44 +0100 (BST)
- cc: Richard Henderson <rth at redhat dot com>, Jan Hubicka <jh at suse dot cz>, <gcc-patches at gcc dot gnu dot org>
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