We present staged allocation, a technique for specifying calling conventions by composing tiny allocators called stages. A specification written using staged allocation has a precise, formal semantics, and it can be executed directly inside a compiler. Specifications of nine standard C calling conventions range in size from 15 to 30 lines each. An implementation of staged allocation takes about 250 lines of ML or 650 lines of C++. Each specification can be used not only to help a compiler implement the calling convention but also to generate a test suite. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors--Retargetable compilers General Terms Algorithms, Design, Standardization, Languages Keywords Calling conventions