Nios II Classic Processor Reference Guide

ID 683620
Date 10/28/2016
Document Table of Contents

7.5.1. Arguments

The first 16 bytes to a function are passed in registers r4 through r7. The arguments are passed as if a structure containing the types of the arguments were constructed, and the first 16 bytes of the structure are located in r4 through r7.

A simple example:

int function (int a, int b);

The equivalent structure representing the arguments is:

struct { int a; int b; };

The first 16 bytes of the struct are assigned to r4 through r7. Therefore r4 is assigned the value of a and r5 the value of b.

The first 16 bytes to a function taking variable arguments are passed the same way as a function not taking variable arguments. The called function must clean up the stack as necessary to support the variable arguments.

Refer to Stack Frame for a Function with Variable Arguments