8.2. Function Calling Sequence

LSB-conforming applications shall use the procedure linkage and function calling sequence as defined in Chapter 8.4 of the Itanium™ Software Conventions and Runtime Guide.

8.2.1. Registers

The CPU general and other registers are as defined in the Itanium™ Architecture Software Developer's Manual Volume 1 Section 3.1.

8.2.2. Floating Point Registers

The floating point registers are as defined in the Itanium™ Architecture Software Developer's Manual Volume 1 Section 3.1.

8.2.3. Stack Frame

The stackframe layout is as described in the Itanium™ Software Conventions and Runtime Guide Chapter 8.4.

8.2.4. Arguments

8.2.4.1. Introduction

The procedure parameter passing mechanism is as described in the Itanium™ Software Conventions and Runtime Guide Chapter 8.5. The following subsections provide additional information.

8.2.5. Return Values

8.2.5.1. Introduction

Values are returned from functions as described in Itanium™ Software Conventions and Runtime Guide Chapter 8.6, and as further described here.

8.2.5.2. Void

Functions that return no value (void functions) are not required to put any particular value in any general register.

8.2.5.5. Struct and Union

See Itanium™ Software Conventions and Runtime Guide Chapter 8.6 (aggregate return values). Depending on the size (including any padding), aggregate data types may be passed in one or more general registers, or in memory.