Nios® II Processor Reference Guide

ID 683836
Date 8/28/2023
Public
Document Table of Contents

7.4.4.1. Prologue Variations

The following variations can occur in a prologue:
  • If the function’s frame size is greater than 32,767 bytes, extra temporary registers are used in the calculation of the new stack pointer as well as for the offsets of where to store callee-saved registers. The extra registers are needed because of the maximum size of immediate values allowed by the Nios® II processor.
  • If the frame pointer is not in use, the final instruction, recalculating the frame pointer, is not generated.
  • If variable arguments are used, extra instructions store the argument registers on the stack.
  • If the compiler designates the function as a leaf function, the return address is not saved.
  • If optimizations are on, especially instruction scheduling, the order of the instructions might change and become interlaced with instructions located after the prologue.