Tag
calling-convention
- Oct 13, 2026 Variadic Calls and the Default Argument Promotions What a va_list actually points at, why float and char arguments are widened before a variadic call, and how the absence of type information turns a wrong format into undefined behaviour. systems programming
- Sep 13, 2026 Calling Conventions on an Operand Stack How arguments, return values, receivers, and frame transitions are encoded in a stack machine, and why the receiver occupies slot zero of a method frame. language runtimes
- Aug 24, 2026 Register Windows and Why Explicit Operand Registers Won How register window architectures eliminate spill code on call, what the window management traps cost, and why load-store ISAs settled on flat register files with fixed fields. computer architecture
- Jul 9, 2026 Return-to-libc and the Argument Staging Problem Reusing an existing function needs its arguments placed where the calling convention expects them, and the stack arithmetic that makes this possible also limits which functions a chain can call. security
- Jun 2, 2026 System Call ABIs and the Register Argument Convention How arguments and return values cross the privilege boundary, why there are at most six of them, and why two ABIs on one machine can disagree about the layout of a struct. operating systems
- Feb 14, 2026 The C Calling Convention as an Interoperability Contract How arguments, return values, and stack alignment are encoded at a call site, and why extern C is a narrower promise than most callers assume. language runtimes
- Sep 24, 2025 How an Interpreter Lays Out a Stack Frame The header, locals, operand stack, and spill area of an interpreter frame, and why the frame is allocated as one block with a fixed maximum size. language runtimes
- Dec 18, 2024 Function Call ABI: Register Assignment on x86-64 How the System V AMD64 ABI classifies arguments into eightbyte chunks, why some structures travel in registers and others on the stack, and what the callee must preserve. systems programming
- Apr 27, 2024 Stack Frame Layout and Why a Linear Overflow Reaches the Return Address How the System V x86-64 frame places locals, the saved frame pointer, and the return address, and why writing past a buffer lands on control data. security
- Dec 24, 2023 Marshalling Across the Language Boundary Every call between shared code and platform code crosses a runtime boundary with a serialisation step, a scheduler hop, and a lifetime problem. The cost is dominated by crossings, not by bytes. mobile computing
- Jul 28, 2022 Floating-Point ABI Variants and the Linker Errors They Cause Soft, softfp, and hard float on 32-bit ARM decide where arguments travel rather than what arithmetic runs, and only the static linker notices when a build mixes them. systems programming