Caller/Callee Saved Registers

The registers RAX, RCX, RDX, R8, R9, R10, R11 are considered volatile and must be considered destroyed on function calls (unless otherwise safety-provable by analysis such as whole program optimization).

The registers RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15 are considered nonvolatile and must be saved and restored by a function that uses them.

See Also

Reference

Calling Convention

Change History

Date

History

Reason

January 2010

Added RSP as a nonvolatile register.

Customer feedback.