Re: Caller/Callee saved Registers

law@fast.cs.utah.edu (Jeff Law)
Sat, 26 Mar 1994 01:01:13 GMT

          From comp.compilers

Related articles
[13 earlier articles]
Re: Caller/Callee saved Registers paulb@travis.csd.harris.com (1994-03-24)
Re: Caller/Callee saved Registers hbaker@netcom.com (1994-03-24)
Re: Caller/Callee saved Registers bart@cs.uoregon.edu (1994-03-25)
Re: Caller/Callee saved Registers hbaker@netcom.com (1994-03-25)
Re: Caller/Callee saved Registers pardo@cs.washington.edu (1994-03-25)
Re: Caller/Callee saved Registers zsh@cs.princeton.edu (1994-03-25)
Re: Caller/Callee saved Registers law@fast.cs.utah.edu (1994-03-26)
Re: Caller/Callee saved Registers hbaker@netcom.com (1994-03-26)
Re: Caller/Callee saved Registers hbaker@netcom.com (1994-03-26)
Re: Caller/Callee saved Registers hbaker@netcom.com (1994-03-26)
Re: Caller/Callee saved Registers anton@mips.complang.tuwien.ac.at (1994-03-28)
Re: Caller/Callee saved Registers zsh@cs.princeton.edu (1994-03-27)
Re: Caller/Callee saved Registers pardo@cs.washington.edu (1994-03-28)
[10 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: law@fast.cs.utah.edu (Jeff Law)
Keywords: registers
Organization: University of Utah CS Dept
References: 94-03-054 94-03-106
Date: Sat, 26 Mar 1994 01:01:13 GMT

>which is passed as an argument (or stored into a data structure). I've
>been told that the HP Snake C compiler apparently makes a little 'stub'
>procedure for this case.


[moderator notes]
>all pointers aren't the same size, so compiler writers finesse it by
>making a procedure pointer actually point to a little stub that loads up
>the data pointer and jumps to the code. That's the second entry point.


All quite true for the PA. But there are other cases there procedures
may have multiple entry points on the PA.


    1) Argument relocation stubs. These are used to make sure caller
    and callee agree what registers hold arguments/return values. You'll
    have to read the PA calling conventions closely to realize these
    get used a great deal more than one would think.


    2) Long-call stubs. The PA's instruction to perform function calls
    only ask a +-256kb range (egad)!. When the instruction can't reach
    the target, the linker makes an alternate entry for the target
    (hopefully within reach of the caller :)




Jeff
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.