side effects of the compiler-generated calls

Tobias Schlüter Tobias.Schlueter@physik.uni-muenchen.de
Wed Jul 18 13:10:00 GMT 2007


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



More information about the Fortran mailing list