From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Gabriel Paubert <paubert@iram.es>
Cc: Ulrich Weigand <Ulrich.Weigand@de.ibm.com>,
Steve Munroe <sjmunroe@us.ibm.com>,
linuxppc-dev list <linuxppc-dev@ozlabs.org>,
Anton Blanchard <anton@samba.org>,
Paul Mackerras <paulus@samba.org>
Subject: Re: Saving to 32 bits of GPRs in signal context
Date: Tue, 29 May 2007 19:44:10 +1000 [thread overview]
Message-ID: <1180431850.19517.146.camel@localhost.localdomain> (raw)
In-Reply-To: <20070529092658.GA32228@iram.es>
> - do you use the standard 32 bit ABI, in which case the caller of libraries
> does not care and the libraries can be put in the standard places, or are
> there cases where the ability to pass 64 bit values in a single
> register would improve performance to the point that it is worth
> having an incompatible library (where to put it and how to name it)?
>
> I'd rather lean towards the first solution but I don't have enough
> data to judge.
>
> - how can an application know that it can use 64 bit registers and call
> the optimized routines?
I'd say use the 32 bits ABI, AT_HWCAP will tell you if you are running
on a 64 bits capable machine. You can then either use hand tuned code at
runtime, or I think ld.so can load alternate libs based on the bits in
there.
> Finally, I've not seen a compiler (well, GCC, but I don't have 4.2 or
> 4.3 installed yet) that allows you to tell the compiler to use 32 bit
> addresses but assume that integer registers are 64 bit wide. As long
> as such an option does not exist, the usefulness of this feature is
> somewhat limited. In other words, GCC for now has support for ILP32 and
> LP64 modes, but it would be better to also have support for IP32L64.
Depends... If such binaries are actual 64 bits binaries from a kernel
POV, then no change is necessary.
> Have you considered the case of a mixed (IP32L64) mode calling a pure
> 32 bit library (or a user provided callback). The high part of R13-R31
> will also be clobbered. Therefore the caller has to save and restore
> all registers that are live around the call, which results in
> significant code bloat and needs compiler support.
Yes. The high parts are call clobbered. Either you use C code and you'll
need some new gcc options to use this mode, or, as it's mostly the
request for now, you use hand tuned asm code and you know what you are
doing.
> All of this of course unless all people who write mixed mode code
> are masochistic enough to limit themselves to 100% pure assembly...
:-)
Ben.
next prev parent reply other threads:[~2007-05-29 9:44 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-29 7:24 Saving to 32 bits of GPRs in signal context Benjamin Herrenschmidt
2007-05-29 7:52 ` Dan Malek
2007-05-29 8:05 ` Benjamin Herrenschmidt
2007-05-29 9:26 ` Gabriel Paubert
2007-05-29 9:44 ` Benjamin Herrenschmidt [this message]
2007-05-29 13:12 ` Segher Boessenkool
2007-05-29 14:00 ` Steve Munroe
2007-05-29 14:08 ` Ulrich Weigand
2007-05-29 14:17 ` Kumar Gala
2007-05-29 14:38 ` Segher Boessenkool
2007-05-29 19:04 ` Becky Bruce
2007-05-30 10:04 ` Christoph Hellwig
2007-05-30 12:13 ` Kumar Gala
2007-05-30 12:30 ` Segher Boessenkool
2007-05-29 14:31 ` Segher Boessenkool
2007-05-29 14:51 ` Steve Munroe
2007-05-29 21:44 ` Benjamin Herrenschmidt
2007-05-29 23:16 ` Steve Munroe
2007-05-29 23:19 ` Benjamin Herrenschmidt
2007-05-30 7:34 ` Hiroyuki Machida
2007-05-30 11:40 ` Segher Boessenkool
2007-05-30 11:48 ` Benjamin Herrenschmidt
2007-05-30 3:37 ` Paul Mackerras
2007-05-30 5:32 ` Kumar Gala
2007-05-30 11:44 ` Benjamin Herrenschmidt
2007-05-30 12:15 ` Kumar Gala
2007-05-30 12:48 ` Hiroyuki Machida
2007-05-30 12:58 ` Benjamin Herrenschmidt
2007-05-30 18:09 ` Steve Munroe
2007-05-30 21:02 ` Gabriel Paubert
2007-05-30 21:41 ` Steve Munroe
2007-05-30 12:01 ` Segher Boessenkool
2007-05-30 11:59 ` Segher Boessenkool
2007-05-30 12:01 ` Benjamin Herrenschmidt
2007-05-30 12:07 ` Segher Boessenkool
2007-05-30 12:09 ` Benjamin Herrenschmidt
2007-05-30 12:36 ` Segher Boessenkool
2007-05-29 14:28 ` Segher Boessenkool
2007-05-29 21:37 ` Benjamin Herrenschmidt
2007-05-29 21:38 ` Benjamin Herrenschmidt
2007-05-29 13:04 ` Segher Boessenkool
2007-05-29 14:28 ` Arnd Bergmann
2007-05-29 14:43 ` Segher Boessenkool
2007-05-29 15:54 ` Geert Uytterhoeven
2007-05-29 18:48 ` Arnd Bergmann
2007-05-29 21:27 ` Benjamin Herrenschmidt
2007-05-29 21:45 ` Felix Domke
2007-05-30 11:23 ` Benjamin Herrenschmidt
2007-05-30 11:52 ` Felix Domke
2007-05-30 13:14 ` Segher Boessenkool
2007-05-30 11:54 ` Segher Boessenkool
2007-05-30 12:07 ` Felix Domke
2007-05-31 5:39 ` Benjamin Herrenschmidt
2007-05-29 13:10 ` Kumar Gala
2007-05-29 21:32 ` Benjamin Herrenschmidt
2007-05-29 23:46 ` Olof Johansson
2007-05-30 0:43 ` Kumar Gala
2007-05-30 2:54 ` Steve Munroe
2007-05-30 5:31 ` Kumar Gala
2007-05-30 19:47 ` Steve Munroe
2007-05-30 20:52 ` Olof Johansson
2007-05-30 21:33 ` Steve Munroe
2007-05-29 13:53 ` Ulrich Weigand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1180431850.19517.146.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=Ulrich.Weigand@de.ibm.com \
--cc=anton@samba.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=paubert@iram.es \
--cc=paulus@samba.org \
--cc=sjmunroe@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).