P5L.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Sweet, April 10, 1980 4:16 PM
Satterthwaite, June 4, 1982 2:55 pm
Maxwell, August 11, 1983 8:59 am
Russ Atkinson (RRA) March 6, 1985 11:06:20 pm PST
DIRECTORY
Basics USING [bitsPerWord],
CodeDefs USING [BoVarIndex, Lexeme, MoveDirection, VarComponent, VarIndex, VarTag],
Symbols USING [ContextLevel, ISEIndex, RecordSEIndex, ISENull];
P5L: DEFINITIONS = BEGIN OPEN Symbols, CodeDefs;
from VarUtils
AdjustComponent: PROC [var: POINTER TO VarComponent,
rSei: RecordSEIndex, fSei: ISEIndex, tBits: CARDINAL];
AllLoaded: PROC [r: VarIndex, junkOk: BOOLFALSE] RETURNS [BOOL];
ComponentForLex: PROC [l: Lexeme, allowFields: BOOLFALSE] RETURNS [VarComponent];
ComponentForSE: PROC [sei: ISEIndex] RETURNS [var: VarComponent];
CopyLex: PROC [l: Lexeme] RETURNS [Lexeme];
CopyToTemp: PROC [r: VarIndex, tsei: ISEIndex ← ISENull]
RETURNS [var: VarComponent, sei: ISEIndex];
CopyVarItem: PROC [r: VarIndex] RETURNS [rr: VarIndex];
EasilyLoadable: PROC [var: VarComponent, dir: MoveDirection] RETURNS [evar: VarComponent];
EasyToLoad: PROC [var: VarComponent, dir: MoveDirection] RETURNS [BOOL];
FieldOfComponent: PROC [var: POINTER TO VarComponent, wd, bd, wSize, bSize: CARDINAL ← 0];
FieldOfComponentOnly: PROC [var: POINTER TO VarComponent, wd, bd, wSize, bSize: CARDINAL ← 0];
FieldOfVar: PROC [r: VarIndex, wd, bd, wSize, bSize: CARDINAL ← 0];
FieldOfVarOnly: PROC [r: VarIndex, wd, bd, wSize, bSize: CARDINAL ← 0];
GenVarItem: PROC [tag: VarTag] RETURNS [r: VarIndex];
InCode: PROC [r: VarIndex] RETURNS [BOOL];
IsCopyKnown: PROC [var: VarComponent] RETURNS [known: BOOL, cvar: VarComponent];
LongVarAddress: PROC [r: VarIndex] RETURNS [BOOL];
ModComponent: PROC [var: POINTER TO VarComponent, wd, bd: CARDINAL ← 0];
NormalLex: PROC [nwords: CARDINAL, long, code: BOOLFALSE] RETURNS [Lexeme];
NormalizeExp: PROC [r: VarIndex, tempsei: ISEIndex ← ISENull, codeOk: BOOLFALSE]
RETURNS [nwords: CARDINAL, long: BOOL, tsei: ISEIndex];
OVarItem: PROC [var: VarComponent] RETURNS [r: VarIndex];
ReleaseLex: PROC [lex: Lexeme];
ReleaseVarItem: PROC [r: VarIndex];
ReusableCopies: PROC [r: VarIndex, dir: MoveDirection, stackOk: BOOL, stackFree: BOOLFALSE]
RETURNS [first, next: VarIndex];
StackSpareAddr: PROC [r: VarIndex] RETURNS [BOOL];
StackSpareLoad: PROC [r: VarIndex] RETURNS [BOOL];
TOSAddrLex: PROC [size: CARDINAL, long: BOOLFALSE] RETURNS [Lexeme[bdo]];
TOSCodeAddrLex: PROC [size: CARDINAL] RETURNS [Lexeme[bdo]];
TOSComponent: PROC [size: CARDINAL ← 1] RETURNS [VarComponent];
TOSLex: PROC [size: CARDINAL ← 1] RETURNS [Lexeme];
VarAddressEasy: PROC [r: VarIndex] RETURNS [BOOL];
VarAlignment: PROC [r: VarIndex, dir: MoveDirection]
RETURNS [bd, bSize: [0..Basics.bitsPerWord), wSize: CARDINAL];
VarFinal: PROC;
VarForLex: PROC [l: Lexeme] RETURNS [r: VarIndex];
VarStackWords: PROC [r: VarIndex] RETURNS [nW: CARDINAL];
from VarBasics
AddrComponent: PROC [var: VarComponent] RETURNS [avar: VarComponent];
AddrForVar: PROC [r: VarIndex, codeOk: BOOLFALSE] RETURNS [avar: VarComponent];
BaseComponent: PROC [lvl: ContextLevel] RETURNS [VarComponent];
GenAdd: PROC [delta: UNSPECIFIED, long: BOOLFALSE];
GenAnd: PROC [delta: UNSPECIFIED];
GenRFC: PROC [wd: CARDINAL, bd: [0..16), len: [1..16]];
GenShift: PROC [delta: UNSPECIFIED];
LoadAddress: PROC [r: VarIndex, codeOk: BOOLFALSE] RETURNS [long: BOOL];
LoadBoth: PROC [atC1, atC2: POINTER TO VarComponent, abelian: BOOL];
LoadSum: PROC [atB, atD: POINTER TO VarComponent] RETURNS [bpSize: [1..2]];
MakeBo: PROC [r: VarIndex] RETURNS [bor: BoVarIndex];
MakeComponent: PROC [r: VarIndex, allowFields: BOOLFALSE]
RETURNS [var: VarComponent];
VarVarAssign: PROC [to, from: VarIndex, isexp: BOOL] RETURNS [l: Lexeme];
Words: PROC [w, b: CARDINAL] RETURNS [CARDINAL];
from VarMove
LoadComponent: PROC [var: VarComponent];
LoadVar: PROC [r: VarIndex];
StoreComponent: PROC [var: VarComponent];
StoreVar: PROC [r: VarIndex];
END.