ARM Return Values

The following list shows the standard registers that a called function uses to return values:

  • R0 for single-word integer and integer-equivalent values.
  • R0 for single-precision floating-point return values.
  • R0 and R1 for 64-bit integer return values.
  • R0 and R1 for double-precision floating-point values.
  • For structure return values, the calling function allocates re-entrant memory on the stack in the local argument area. It passes a pointer to that memory as the first argument in R0. This stored value may be associated with a variable allocated in the calling function stack frame. Before returning, the called function copies the return value to the memory locations indicated by the first argument.

See Also

ARM Calling Sequence Specification | What's New for the ARM Compiler | ARM Registers | ARM Stack Frame Layout | ARM Parameter Passing | ARM Prolog and Epilog | ARM pdata Structures | ARM Assembler Macros

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.