Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

callee-saved

A register that must hold the same value after a call as before; a function that wants to use it must save it first and put it back before returning.

Callee-saved (non-volatile, call-preserved) registers are preserved across calls by the called function; on x86-64 Linux and macOS rbx, rbp, r12-r15, rsp; 64-bit Windows adds rdi and rsi; on ARM64 x19-x28, x29, sp; on RISC-V s0-s11, sp.

Examples

  • On x86-64 System V, a function that uses rbx must restore it before returning. ARM64's callee-saved registers are x19 to x28.

Read the full section →