C2CDRunTime.mesa
Copyright Ó 1989, 1991 by Xerox Corporation. All rights reserved.
Christian Jacobi, March 15, 1989 11:32:14 am PST
Christian Jacobi, November 21, 1989 11:06:08 am PST
DIRECTORY
IntCodeDefs USING [ArithClassKind],
C2CDefs;
C2CDRunTime: CEDAR DEFINITIONS =
BEGIN
Code: TYPE = C2CDefs.Code;
ArithClassKind: TYPE = IntCodeDefs.ArithClassKind;
Types of this procedures are different from the actual procedures generated.
E.g. the return parameter here is the generated code, and not what the actual
procedure would return.
Arithmetic
64 bit precision Floating point
If macro implementation; arguments may not be evaluated twice unless specified
All pointers are pointers to a record with two word fields
No double word alignment guaranteed.
First type is target; second type is source
DFloatInt: PROC [resAddr, i: Code] RETURNS [Code];
DFloatCard: PROC [resAddr, c: Code] RETURNS [Code];
DFloatReal: PROC [resAddr, f: Code] RETURNS [Code];
DFloatDIntI: PROC [resAddr, iAddr: Code] RETURNS [Code];
DFloatDCardI: PROC [resAddr, cAddr: Code] RETURNS [Code];
DIntInt: PROC [resAddr, i: Code] RETURNS [Code];
DIntCard: PROC [resAddr, c: Code] RETURNS [Code];
DIntDCardI: PROC [resAddr, cAddr: Code] RETURNS [Code];
DCardInt: PROC [resAddr, c: Code] RETURNS [Code];
DCardCard: PROC [resAddr, c: Code] RETURNS [Code];
DCardDIntI: PROC [resAddr, iAddr: Code] RETURNS [Code];
IntDIntI: PROC [dAddr: Code] RETURNS [Code];
IntDCardI: PROC [dAddr: Code] RETURNS [Code];
CardDIntI: PROC [dAddr: Code] RETURNS [Code];
CardDCardI: PROC [dAddr: Code] RETURNS [Code];
FloatDIntI: PROC [dAddr: Code] RETURNS [Code];
FloatDCardI: PROC [dAddr: Code] RETURNS [Code];
FloatDRealI: PROC [dAddr: Code] RETURNS [Code];
DNegI: PROC [kind: ArithClassKind, resAddr, dAddr: Code] RETURNS [Code];
DAddI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DSubI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DMulI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DDivI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DModI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DGtI: PROC [kind: ArithClassKind, aAddr, bAddr: Code] RETURNS [Code];
DGeI: PROC [kind: ArithClassKind, aAddr, bAddr: Code] RETURNS [Code];
DEqI: PROC [kind: ArithClassKind, aAddr, bAddr: Code] RETURNS [Code];
DAbsI: PROC [kind: ArithClassKind, resAddr, dAddr: Code] RETURNS [Code];
DMinI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DMaxI: PROC [kind: ArithClassKind, resAddr, aAddr, bAddr: Code] RETURNS [Code];
DPwrI: PROC [kind: ArithClassKind, resAddr, baseAddr, expAddr: Code] RETURNS [Code];
END.