Construction of Systems Software Using Specifications of
Procedure Calling Conventions

Mark W. Bailey
Jack W. Davidson
Abstract

Applications, such as compilers and debuggers, which generate, or process procedures at the machine-language abstraction level require knowledge of the procedure calling convention. Currently, applications that process procedures implement conventions in an ad-hoc manner. The resulting code is complicated with details, difficult to maintain, and often plagued with errors. In this paper, we describe the only known formal model and specification language for procedure calling conventions. The model and language, in combination, facilitate the accurate specification of conventions that can be shown to be both consistent and complete. Further, we show how the convention specifications can be used to automatically generate that part of the code generator responsible for generating procedure calls. Finally, we discuss a new compiler testing technique that uses the specifications to further close the gap between actual compiler implementations and correct compilers. The technique, which uses a target-sensitive test suite generator, has exposed and diagnosed faults in several C compilers.

Maintained by Mark Bailey (bailey@virginia.edu)
Last modified: Sat Jan 11 11:41:04 1997