Hubbry Logo
search button
Sign in
Call site
Call site
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
Call site
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the Call site Wikipedia article. Here, you can discuss, collect, and organize anything related to Call site. The purpose of the hub is to connect people, foste...
Add your contribution
Call site

In programming, a call site of a function or subroutine is the location (line of code) where the function is called (or may be called, through dynamic dispatch). A call site is where zero or more arguments are passed to the function, and zero or more return values are received.[1][2]

Example

[edit]
 // this is a function ''definition''
 function sqr(x)
 {
   return x * x;
 }
 function foo() {
   // these are two call sites of function sqr in this function
   a = sqr(b);
   c = sqr(b);
 }

Assembler example

[edit]

IBM/360 or Z/Architecture

 * (usually) external call.... R13 usually points to a save area for general purpose registers beforehand
 *                         and R1 points to a list of addresses of parameters (if any)
         LA    R1,=A(B)         point to (address of) variable 'B'
         L     R15,=A(SQR)      Load pointer (address constant) to separately compiled/assembled subroutine
         BALR  R14,R15          Go to subroutine, which returns - usually at zero displacement on R14
 * internal call            (usually much smaller overhead and possibly 'known' parameters)
         BAL   R14,SQR          Go to program label and return

In some occasions, return is an efficient method of indicating success or failure. return may be accomplished by returning at +0 or +4,+8, +12, etc. requiring code, for example a small branch table, at the return point - to go directly to process the case (as in HLL Switch statement).

         BAL   R14,SQR          Go to program label and return (using offset on R14 as return address)
         B     OK               (RET+0) - O.K
 *                              (RET+4) - Failure

Conventionally however, a return code is set in R15 (0=OK, 4= failure, or similar ..) but requiring a separate instruction to test R15 or use directly as a branch index.

See also

[edit]

References

[edit]
  1. ^ "General | Subroutine". Codecademy. Retrieved 2024-09-12.
  2. ^ "Chapter 7 - Subroutines". www.neurobs.com. Retrieved 2024-09-12.