The following factors greatly reduce the overhead expense involved in a PA-RISC
procedure call:
Allocation of the stack frame and saving of one callee-saves
register can be accomplished in a total of one cycle. (The same is
also true for the deallocation of the frame and restoration of one
register.)
Even when not optimizing, the delay slot (i.e. the instruction
slot following a Branch instruction) is used for operations such as
loading register values and passing parameters.
Most of the steps involved in a call are optional if they are
unnecessary in a particular situation. (For example, saving and
restoring RP, saving and restoring callee-saves registers,
allocating stack storage space, etc.)