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 LLVM Intermediate Representation (IR) and the raw binary bytes your CPU executes lies the backend pipeline—the most platform-specific, meticulously engineered phase of the compiler. In our previous deep dive into LLVM IR, we explored how the compiler represents your logic using an infinite number of virtual registers and generic instructions.…

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.