<<>> <> <> <> <> DIRECTORY C2CDefs USING [Code, Mode], C2CMain USING [CodeCont], IntCodeDefs USING [Node]; C2CAddressingOps: CEDAR DEFINITIONS = BEGIN Code: TYPE = C2CDefs.Code; Mode: TYPE = C2CDefs.Mode; CodeCont: TYPE = C2CMain.CodeCont; Node: TYPE = IntCodeDefs.Node; LoadArithNode: PROC [node: Node] RETURNS [cc: CodeCont]; <<--loads node [assuming node is used in an arithmetic op {restricts size}]>> <<--does the right thing with subnodes >> ModizeArithCode: PROC [incc: CodeCont, mode: Mode, bits: INT ¬ 0] RETURNS [cc: CodeCont]; <<--assumes in-cc is result of arithmetic operations; >> <<--converts it to required mode>> <<--bits: supposed size of incc; NOT size of template>> CodeToAssUnits: PROC [ec: Code, mode: Mode] RETURNS [sc: Code]; <<--ec expression code to be assigned to container stored with mode>> <<--mode must have AssUnits addressing mode>> <<--ec must have a size which allows simple assignment>> END.