Share via


Guidelines for Implementing the Application Binary Interface (Windows Embedded CE 6.0)

1/5/2010

All required floating point C run-time exports use the same ARM C calling conventions as the Microsoft C/C++ compilers. For more information about these conventions, see ARM Calling Sequence Specification.

If you want to implement the Application Binary Interface correctly, you must ensure that the following conditions are met.

  • When manually writing an assembly implementation, make sure to create appropriate .pdata information. This is because missing or incorrect .pdata might cause unexpected results in exception handling and debugging. For information about creating PDATA structures, see PDATA Structures.
  • Windows Embedded CE is little-endian. This means that when a 64-bit value breaks into two 32-bit registers, the first register contains the least-significant 32 bits and the second register contains the most-significant 32 bits.
  • Some permanent registers, also known as callee save registers, must be saved by callee functions. For more information about these specific registers, see ARM Registers.
  • For information about parameter passing in relation to the FPCRT API, see Passing Parameters.
  • Arguments pass left to right into the registers R0-R3.
    • R0 returns single-word integer and integer-equivalent values.
    • R0 returns single-precision floating-point values.
    • R0 and R1 return double-word integer values.
    • R0 and R1 return double-precision floating-point values.

See Also

Concepts

Replacement Floating Point C Run-Time Library Creation Overview
ARM Epilog