Skip to content

Lexicon Entry

Caller-Saved Register

A register that may be overwritten by any function call. The caller must save it before calling if it needs the value afterward. Also called volatile registers. On System V x86-64: RAX, RCX, RDX, RSI, RDI, R8–R11.

Related Knowledge & Cross-References

Guide

Register Allocation in Compilers: How Variables Fit into CPU Registers

Discover how compilers solve register allocation — mapping thousands of virtual registers to 16 (x86-64) or 31 (ARM64) physical ones. See graph coloring, spilling, and rematerialization with real Godbolt examples.

Guide

Compiler Code Generation: How LLVM Turns IR into x86-64 and ARM64 Assembly

Between the hardware-agnostic world of Intermediate Representation and the raw binary bytes your CPU executes lies the backend pipeline. Learn how the compiler turns abstract logic into platform-specific machine code.

Guide

x86-64 & ARM64 Calling Conventions Demystified

Learn x86-64 and ARM64 calling conventions across Linux, macOS, and Windows. Master parameter passing, stack frames, and register preservation with hands-on assembly examples.

Guide

Assembly Hello World: A Cross-Platform Syscall Deep Dive

Master assembly syscalls across Linux & macOS for x86-64 and ARM64 architectures. This comprehensive assembly syscall tutorial provides working code examples for write and exit syscalls.