Skip to main content

save_fpu_context

Macro save_fpu_context 

Source
macro_rules! save_fpu_context {
    () => { ... };
}
Expand description

This macro expands to code for saving FPU context on entry to an exception handler. It pushes a multiple of eight bytes to preserve AAPCS alignment. It may damage R0-R3.

It should match restore_fpu_context!

On entry to this block, we assume that we are in exception context.

This version saves FPU state, assuming 16 DP registers (a ‘D16’ or ‘D16SP’ FPU configuration). Note that SP-only FPUs still have DP registers

  • each DP register holds two SP values.

EABI specifies D8-D15 as callee-save, and so we don’t preserve them because any C function we call to handle the exception will preserve/restore them itself as required.