This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: makecontext and its arguments


Jakub Jelinek <jakub@redhat.com> writes:

|> On Mon, Aug 05, 2002 at 10:29:55PM +0200, Andreas Schwab wrote:
|> > |> Adding __attribute__((sane_x86_64_varargs)) to makecontext and make gcc
|> > |> promote all varargs into DImode when calling vararg functions with
|> > |> this attribute?
|> > 
|> > How do you know whether you are supposed to sign extend or not?
|> 
|> If the type of the argument passed to vararg function is signed, you
|> sign extend, otherwise zero extend. That's what all other 64-bit ABIs do.

How does that help in any way?  If you pass an unsigned int to
makecontext it is not supposed to be signed extended, but zero extended
when assigned to long.  There is no way for va_arg to know that.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


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