From: "Douglas A. Gwyn" <DAGwyn@null.net>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Non-stack-based calling conventions
Date: Fri, 22 Feb 2008 10:02:23 +0000 [thread overview]
Message-ID: <47BDEB14.B9DCA12D@null.net> (raw)
In-Reply-To: <47BC116F.3060906@proweb.co.uk>
maht wrote:
> For the C version there's all sorts of pushing and popping return
> addresses and arguments on to the stack
> float
> sqr(x float)
> {
> return x * x;
> }
> float
> hyp(x float, y float)
> {
> return sqrt(sqr(x) + sqr(y));
> }
[Assuming that the code is corrected and the types made compatible
with the argument to sqrt.]
The extra overhead occurs only because of the support for full
recursion, with private instance data. Many C compilers dating
back to around 1980 will in-line the calls to sqr, so the effect is:
hyp: mul r2,r2,r2
mul r3,r3,r3
add r2,r3,r2
jmp sqrt
It's hard to imagine anything more efficient (except when hyp
itself can be in-lined.) Details of course depend on the machine
architecture and linkage convention; the above is modeled loosely
after the M*CORE, which is very nice in this respect.
next prev parent reply other threads:[~2008-02-22 10:02 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-13 22:03 [9fans] quote of the day erik quanstrom
2008-02-13 23:08 ` Pietro Gagliardi
2008-02-13 23:24 ` [9fans] Google search " dave.l
2008-02-13 23:31 ` Pietro Gagliardi
2008-02-13 23:41 ` erik quanstrom
2008-02-13 23:49 ` Pietro Gagliardi
2008-02-13 23:59 ` john
2008-02-14 0:04 ` Pietro Gagliardi
2008-02-14 6:11 ` Anant Narayanan
2008-02-15 17:39 ` Skip Tavakkolian
2008-02-14 16:45 ` Douglas A. Gwyn
2008-02-14 17:09 ` john
2008-02-14 17:27 ` erik quanstrom
2008-02-15 9:50 ` Douglas A. Gwyn
2008-02-15 11:49 ` Alf
2008-02-15 13:15 ` erik quanstrom
2008-02-15 14:56 ` Brantley Coile
2008-02-15 15:44 ` Eris Discordia
2008-02-15 16:07 ` erik quanstrom
2008-02-15 16:43 ` maht
2008-02-15 17:35 ` ron minnich
2008-02-15 18:14 ` Iruata Souza
2008-02-15 18:37 ` maht
2008-02-15 17:39 ` Eris Discordia
2008-02-15 19:05 ` maht
2008-02-15 20:11 ` Eris Discordia
2008-02-15 20:18 ` Pietro Gagliardi
2008-02-15 20:49 ` maht
2008-02-16 23:32 ` Eris Discordia
2008-02-15 23:37 ` [9fans] Non-stack-based calling conventions Lyndon Nerenberg
2008-02-15 23:39 ` Pietro Gagliardi
2008-02-15 23:47 ` Paweł Lasek
2008-02-16 0:23 ` Brantley Coile
2008-02-16 23:32 ` Eris Discordia
2008-02-16 23:41 ` Pietro Gagliardi
2008-02-16 23:49 ` Brantley Coile
2008-02-17 0:04 ` Brantley Coile
2008-02-17 13:30 ` Eris Discordia
2008-02-17 15:04 ` erik quanstrom
2008-02-17 21:43 ` Uriel
2008-02-17 23:58 ` erik quanstrom
2008-02-18 1:54 ` Bruce Ellis
2008-02-18 3:43 ` erik quanstrom
2008-02-18 4:31 ` Bruce Ellis
2008-02-18 4:40 ` Pietro Gagliardi
2008-02-18 6:22 ` Robert William Fuller
2008-02-18 7:23 ` Bruce Ellis
2008-02-18 8:38 ` Anant Narayanan
2008-02-22 10:02 ` Douglas A. Gwyn
2008-02-22 19:35 ` Anant Narayanan
2008-02-18 8:30 ` Anant Narayanan
2008-02-18 8:44 ` Bruce Ellis
2008-02-18 18:50 ` Federico G. Benavento
2008-02-18 21:53 ` Lorenzo Fernando Bivens de la Fuente
2008-02-18 22:55 ` y i y u s
2008-02-18 23:46 ` Uriel
2008-02-18 22:14 ` Pietro Gagliardi
2008-02-18 22:16 ` Pietro Gagliardi
2008-02-18 22:32 ` Federico G. Benavento
2008-02-20 11:39 ` maht
2008-02-20 17:19 ` Bruce Ellis
2008-02-22 10:02 ` Douglas A. Gwyn [this message]
2008-02-22 10:02 ` Douglas A. Gwyn
2008-02-18 22:13 ` LiteStar numnums
2008-02-18 4:44 ` Pietro Gagliardi
2008-02-18 4:46 ` Pietro Gagliardi
2008-02-18 5:03 ` Uriel
2008-02-17 16:08 ` Anthony Sorace
2008-02-17 22:03 ` Charles Forsyth
2008-02-22 10:01 ` Douglas A. Gwyn
2008-02-22 14:07 ` Iruata Souza
2008-02-22 10:01 ` Douglas A. Gwyn
2008-02-22 10:01 ` Douglas A. Gwyn
2008-02-16 8:29 ` Lluís Batlle
2008-02-17 23:09 ` Chad Dougherty
2008-02-18 21:50 ` Pietro Gagliardi
2008-02-22 10:02 ` Douglas A. Gwyn
2008-02-26 21:30 ` Paweł Lasek
2008-02-26 22:00 ` maht
2008-02-26 22:32 ` Brantley Coile
2008-02-26 23:15 ` Uriel
2008-02-26 22:33 ` Brantley Coile
2008-02-26 22:46 ` Bruce Ellis
2008-02-27 4:26 ` lucio
2008-02-27 6:52 ` ron minnich
2008-02-27 17:57 ` lucio
2008-02-28 9:33 ` Bill Gunshannon
2008-02-28 9:58 ` Charles Forsyth
2008-02-28 14:15 ` Bill Gunshannon
2008-02-14 17:14 ` [9fans] Google search of the day Eris Discordia
2008-02-14 17:28 ` Fco. J. Ballesteros
2008-02-14 20:14 ` Eris Discordia
2008-02-14 20:30 ` Patrick Kristiansen
2008-02-14 20:38 ` Eris Discordia
2008-02-14 22:09 ` Pietro Gagliardi
2008-02-15 9:00 ` Eris Discordia
2008-02-14 17:51 ` Iruata Souza
2008-02-15 9:31 ` sqweek
2008-02-18 9:48 ` Douglas A. Gwyn
2008-02-18 9:57 ` Gorka Guardiola
2008-02-19 9:17 ` sqweek
2008-02-19 0:28 [9fans] Non-stack-based calling conventions Andrew Simmons
2008-02-19 0:39 ` Brantley Coile
2008-02-19 0:43 ` Andrew Simmons
2008-02-19 0:52 ` Uriel
2008-02-19 1:06 ` Pietro Gagliardi
2008-02-19 1:33 ` Brantley Coile
2008-02-19 3:18 ` Michaelian Ennis
2008-02-19 3:29 ` Michaelian Ennis
2008-02-19 3:35 ` Pietro Gagliardi
2008-02-19 5:18 ` Skip Tavakkolian
2008-02-19 5:33 ` Skip Tavakkolian
2008-02-19 4:11 ` Bruce Ellis
2008-02-20 14:59 ` maht
2008-02-20 15:28 ` Uriel
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=47BDEB14.B9DCA12D@null.net \
--to=dagwyn@null.net \
--cc=9fans@cse.psu.edu \
/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).