### A good answer might be:

Yes.

# Calling Convention

The diagram shows the subroutine `sub` being called from three different points in the main routine. Each time the subroutine is called it returns to the appropriate return address.

A calling convention is an agreement about how subroutines are called and how control is returned to the caller. Mostly (as we will later see) this is an agreement about how software will work. In processors (like MIPS) that support subroutines, the convention says how those support features are used.

Different languages and different operating systems for the same processor usually have different calling conventions. A "C" program compiled for Linux on a MIPS processor will not work correctly with Irix on a MIPS processor. This is largely because the calling conventions are different. These chapters discuss several calling conventions that show what calling conventions are about, but are not the calling convention of any particular operating system.

There is more to a calling convention than how to pass control, as the next question shows:

### QUESTION 7:

What registers is the subroutine `sub` free to change?