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

fetch-and-add

An atomic operation that adds to a memory value and hands back what it was before: lock xadd on x86-64, ldadd on ARM64.

Fetch-and-add atomically replaces *p with *p + v and returns the old value (x86-64 lock xadd; ARM64 LSE ldadd; RISC-V amoadd; C++ std::atomic::fetch_add).

Examples

  • lock xadd [rdi], eax adds eax to memory and leaves the old memory value in eax.

Read the full section →