This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: side effects of the compiler-generated calls
- From: Tobias Schlüter <Tobias dot Schlueter at physik dot uni-muenchen dot de>
- To: Tobias Schlüter <Tobias dot Schlueter at physik dot uni-muenchen dot de>
- Cc: David Livshin <david dot livshin at dalsoft dot com>, fortran at gcc dot gnu dot org
- Date: Wed, 18 Jul 2007 15:10:21 +0200
- Subject: Re: side effects of the compiler-generated calls
- References: <469E092D.6040300@dalsoft.com> <469E109E.9090204@physik.uni-muenchen.de>
Tobias Schlüter wrote:
David Livshin wrote:
gfortran generated code uses calls to routines with the names that
begin with “_gfortran_”, e.g. “_gfortran_set_std”,
“_gfortran_st_write” etc. What are the side effects of these routines?
What registers are used/affected by them? And most importantly, do
they affect the value of the stack pointer ( %esp )?
They are normal function calls in the C sense, so arguments are pushed
on the stack by the caller, and the caller pops them off the stack after
the callee has returned, so it's a bit of a matter of definition to say
if the call affects %esp or not, but the _callee_ will return it unchanged.
But maybe that's not your question, could you give more detail on what
you're trying to achieve?
Forgot to say this: the point of these calls are for a large part their
side-effects: be it writing to some file (_gfortran_st_write), be it
initializing the library to use some conventions (_gfortran_set_std).
Again, more details would be helpful.
Cheers,
- Tobi