DIRECTORY DragOpsCross USING [Word], HandCoding USING [const0, const1, constN1, ConstSpec, Lit8, RegSpec, ShortRegSpec], HandCodingPseudos USING [Label], Rope USING [ROPE]; HandCodingComforts: CEDAR DEFINITIONS = { OPEN HandCoding, HandCodingPseudos; Proc: TYPE = PROC [] RETURNS []; Prologue: PROC [name: Rope.ROPE, label: Label, args: INT]; 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]; iWRI: PROC [BetaR: RegSpec, AlphaZ: Lit8, BetaL: RegSpec]; LoadConstant: PROC [value: INT _ 0]; Constant0: ConstSpec = const0; Short0: ShortRegSpec = const0; Constant1: ConstSpec = const1; Short1: ShortRegSpec = const1; ConstantMinus1: ConstSpec = constN1; NILValue: INT = 0; NILByte: Lit8 = 0; ShortNIL: ShortRegSpec = const0; ConstantNIL: ConstSpec = const0; FALSEValue: INT = 0; FALSEByte: Lit8 = 0; ShortFALSE: ShortRegSpec = const0; ConstantFALSE: ConstSpec = const0; TRUEValue: INT = 1; TRUEByte: Lit8 = 1; ShortTRUE: ShortRegSpec = const1; ConstantTRUE: ConstSpec = const1; ShorttopSrc: ShortRegSpec = topSrc; ShortpopSrc: ShortRegSpec = popSrc; DataLabel: TYPE = DragOpsCross.Word; SizeOfLongPointer: INT = 1; SizeOfINT: INT = 1; }. `HandCodingComforts.mesa Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. Peter Kessler, February 20, 1986 3:33:16 pm PST Russ Atkinson (RRA) September 10, 1986 11:11:40 pm PDT all the code generating procedures are of this type. associates the name with the label, defines the label and makes it global Instructions that use labels Miscellaneous other instructions ``Macro''s pushes an arbitrary constant onto the stack, using LC's where possible. Specifiers constants NIL Booleans (BOOL: TYPE = {FALSE, TRUE};) Short register specifiers Other stuff Sizes are in addressing units. Κ˜codešœ™Kšœ Οmœ7™BK™/K™6K˜šΟk ˜ Kšœ žœ˜Kšœ žœC˜SKšœžœ ˜ Kšœžœžœ˜—K™—šΟnœžœž œ˜)Kšžœ˜#K˜šΟbœžœžœžœ˜ K™4K™—šŸœžœ žœžœ˜:K™I—head2™Kšœžœ˜Kšœžœ˜Kšœžœ˜(Kšœžœ˜(Kšœžœ˜Kšœžœ,˜8Kšœžœ,˜8Kšœžœ,˜8Kšœžœ,˜8Kšœžœ,˜8Kšœžœ,˜8—™ Kšœžœ0˜:—™ šŸ œžœ žœ˜$K™G——™ head3™ KšŸ œ˜KšŸœ˜KšŸ œ˜KšŸœ˜KšŸœ˜$—šž™KšŸœžœ˜KšŸœ ˜KšŸœ˜ KšŸ œ˜ —š œ žœžœžœžœ™&KšŸ œžœ˜KšŸ œ ˜KšŸ œ˜"KšŸ œ˜"KšŸ œžœ˜KšŸœ ˜KšŸ œ˜!KšŸ œ˜!—™KšŸ œ˜#KšŸ œ˜#——™ Kšœ žœ˜$™KšŸœžœ˜KšŸ œžœ˜———K˜—…—4 $