Skip to content

Terminology

These terms are specific to the C binding. ELF and address-space terms keep the meanings defined by the Bedrock ELF ABI and the architecture manual.

object pointer

A stable 64-bit pre-segment coordinate that designates an object or one-past an object according to the C abstract machine.

function pointer

A stable 64-bit pre-segment coordinate naming a C entry point.

caller-saved register

A register whose live incoming value the caller preserves across a call.

callee-saved register

A register whose incoming value must be preserved by the called function if the function uses it.

sret buffer

Caller-allocated storage used to receive a return value that is too large or unsuitable for the normal return registers.

addressable by-value argument

A by-value aggregate argument that is passed through caller-owned stack storage because the callee may need an address for the object.

scalable value

A target vector or predicate value whose complete object size is determined by the implementation-selected VLEN. Source-language spellings belong to the applicable compiler extension; this calling convention defines their binary interface.