Share via


SH-4 Stack Frame Layout (Windows CE 5.0)

Send Feedback

The SH-4 stack frame layout uses four designated areas to hold register areas used by functions and space for variables.

  • The Register Save Area (RSA) holds the preserved values of any permanent registers used by the function. It also contains the function's return address.
  • The Locals and Temporaries area represents the stack space allocated for local variables and compiler-generated temporaries.
  • An alloca() locals area is dynamically allocated during function execution by the use of the alloca() intrinsic function. Compiler-generated code may also dynamically allocate space to manage the construction of outgoing arguments.
  • The Outgoing Arguments area must be large enough to hold all the arguments passed when calling another function, including all arguments passed in registers. This area may be dynamically allocated or extended prior to a call if the rules for alloca() are observed.

The following illustration shows the stack frame layout.

ms925520.s4stack(en-us,MSDN.10).gif

SH-4 Frame and Stack Pointers

The following list gives more information about stack and frame pointers:

  • The stack pointer and frame pointer addresses are aligned on 4-byte boundaries.
  • If a routine has alloca() locals, or dynamically allocates stack frame space for any other reason, a separate frame pointer register accesses incoming arguments and locals. A leaf routine may use any free integer register as the frame pointer. A non-leaf routine must use a permanent register.
  • By convention, a routine that establishes a separate frame pointer should use R14. However, a routine may establish another frame pointer to more efficiently access data in large stack frames. If a routine establishes no frame pointer, R15 must remain unchanged between the end of prolog and the beginning of the epilog.

See Also

SH-4 Registers | Sh-4 Prolog and Epilog

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.