| delorie.com/archives/browse.cgi | search |
| Message-ID: | <32B0C833.3D0E@gbrmpa.gov.au> |
| Date: | Fri, 13 Dec 1996 11:06:29 +0800 |
| From: | Leath Muller <leathm AT gbrmpa DOT gov DOT au> |
| Reply-To: | leathm AT gbrmpa DOT gov DOT au |
| Organization: | Great Barrier Reef Marine Park Authority |
| MIME-Version: | 1.0 |
| To: | Benjamin D Chambers <chambersb AT juno DOT com> |
| CC: | beppu AT rigel DOT oac DOT uci DOT edu, djgpp AT delorie DOT com |
| Subject: | Re: [asm] what registers to preserve |
| References: | <58a7kc$1pa AT news DOT service DOT uci DOT edu> <58jcu5$l6b AT leporello DOT cs DOT unibo DOT it> |
| <58m368$12a AT news DOT service DOT uci DOT edu> <19961213 DOT 161851 DOT 5007 DOT 1 DOT chambersb AT juno DOT com> |
> > Damn. I didn't want to see that. When I dump the assembler output
> > of a function written in C, it doesn't look as if it preserves every
> > register it uses.
> Is that with or without optimization?
> GCC sometimes tries to avoid pushes and pops by 'remembering' what's in
> which registers, and leaving them alone if the contents are needed later.
Hmmm...I wrap my functions in a C subroutine, and generally don't have
to push or pop everything at all... everything is taken care of for
me...
ie: the whole routine is
void foo()
{
asm volatile ("
...
");
}
Leathal.
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |