A Formal Specification for Procedure Calling Conventions

Authors:Bailey, Mark, Department of Computer ScienceUniversity of Virginia Davidson, Jack, Department of Computer ScienceUniversity of Virginia

Procedure calling conventions are used to provide uniform procedure-call interfaces. Applications, such as compilers and debuggers, which generate, or process procedures at the machine-language level require an accurate description of the calling convention in use. Until now, the portion of such an application that concerns itself with the procedure call interface was implemented in an ad-hoc manner. The resulting code is complicated with details, difficult to maintain, and often incorrect. In this paper, we present a model and language, called CCL, for specifying procedure calling conventions. The language can be used to automatically generate the calling-convention specific portions of applications. It also serves as accurate documentation for a given calling convention. CCL provides a concise and natural method of specifying calling conventions that are easy to read and modify. By using a convention specification to automatically generate code, one can enhance the retargetablility of applications that make use of procedure calling conventions. Additionally, different calling conventions can easily be implemented, thereby simplifying experimentation with different call conventions to increase the efficiency of the procedure call.

All rights reserved (no additional license for public reuse)
Source Citation:

Bailey, Mark, and Jack Davidson. "A Formal Specification for Procedure Calling Conventions." University of Virginia Dept. of Computer Science Tech Report (1993).

University of Virginia, Department of Computer Science
Published Date: