Prologue:
PROC [name: Rope.
ROPE, label: Label, args:
INT];
associates the name with the label, defines the label and makes it global
Instructions that use labels
iDFC: PROC [dest: Label];
iJB: PROC [dest: Label];
iJEQj: PROC [AlphaZ: Lit8, dest: Label];
iJNEj: PROC [AlphaZ: Lit8, dest: Label];
iLFC: PROC [dest: Label];
iRJGTj: PROC [a: ShortRegSpec, b: RegSpec, dest: Label];
iRJGEj: PROC [a: ShortRegSpec, b: RegSpec, dest: Label];
iRJEQj: PROC [a: ShortRegSpec, b: RegSpec, dest: Label];
iRJNEj: PROC [a: ShortRegSpec, b: RegSpec, dest: Label];
iRJLEj: PROC [a: ShortRegSpec, b: RegSpec, dest: Label];
iRJLTj: PROC [a: ShortRegSpec, b: RegSpec, dest: Label];
Specifiers
constants
Constant0: ConstSpec = const0;
Short0: ShortRegSpec = const0;
Constant1: ConstSpec = const1;
Short1: ShortRegSpec = const1;
ConstantMinus1: ConstSpec = constN1;
NIL
NILValue: INT = 0;
NILByte: Lit8 = 0;
ShortNIL: ShortRegSpec = const0;
ConstantNIL: ConstSpec = const0;
Booleans (BOOL: TYPE = {FALSE, TRUE};)
FALSEValue: INT = 0;
FALSEByte: Lit8 = 0;
ShortFALSE: ShortRegSpec = const0;
ConstantFALSE: ConstSpec = const0;
TRUEValue: INT = 1;
TRUEByte: Lit8 = 1;
ShortTRUE: ShortRegSpec = const1;
ConstantTRUE: ConstSpec = const1;
Short register specifiers
ShorttopSrc: ShortRegSpec = topSrc;
ShortpopSrc: ShortRegSpec = popSrc;