|
|
@@ -377,31 +377,6 @@ PROCEDURE FwdAddrOper (id: INTEGER; VAR q: QVal);
|
|
|
FwdMangle(id, q)
|
|
|
END FwdAddrOper;
|
|
|
|
|
|
-PROCEDURE FwdPatch (site, id: INTEGER; name: ARRAY OF CHAR;
|
|
|
- oper: CHAR; global: BOOLEAN);
|
|
|
-(* Records the resolved designator for placeholder id. The class
|
|
|
- letter (`oper`) re-classes the load whose operand is the
|
|
|
- placeholder; the symbol replaces the placeholder everywhere. *)
|
|
|
- VAR k: INTEGER; nm: QVal;
|
|
|
- BEGIN
|
|
|
- k := id - 1;
|
|
|
- IF (k < 0) OR (k > VAL(INTEGER, HIGH(fwdSite))) THEN RETURN END;
|
|
|
- IF global THEN SymRef(name, nm); Cpy(fwdSite[k], nm)
|
|
|
- ELSE Cpy(fwdSite[k], name)
|
|
|
- END;
|
|
|
- fwdOper[k][0] := oper; fwdOper[k][1] := CHR(0);
|
|
|
- fwdGlob[k] := global
|
|
|
- END FwdPatch;
|
|
|
-
|
|
|
-PROCEDURE FwdElemPatch (id: INTEGER; oper: CHAR);
|
|
|
- VAR k: INTEGER;
|
|
|
- BEGIN
|
|
|
- k := id - 1;
|
|
|
- IF (k >= 0) AND (k <= VAL(INTEGER, HIGH(fwdSite))) THEN
|
|
|
- fwdOper[k][0] := oper; fwdOper[k][1] := CHR(0)
|
|
|
- END
|
|
|
- END FwdElemPatch;
|
|
|
-
|
|
|
PROCEDURE FixLoadClass (ph: ARRAY OF CHAR; cls: CHAR);
|
|
|
(* Re-class "<tmp> =<x> load<x> <ph>" -> "<tmp> =<cls> load<cls> <ph>".
|
|
|
The default emit for an unresolved alias is `l` (pointer-like). *)
|
|
|
@@ -926,14 +901,6 @@ PROCEDURE BeginBody;
|
|
|
END
|
|
|
END BeginBody;
|
|
|
|
|
|
-PROCEDURE CloseModule;
|
|
|
- BEGIN
|
|
|
- IF NOT opened THEN RETURN END;
|
|
|
- WL("# no code: unit lowering waits for step 4");
|
|
|
- FileIO.Close(out);
|
|
|
- opened := FALSE
|
|
|
- END CloseModule;
|
|
|
-
|
|
|
PROCEDURE EndModule (name: ARRAY OF CHAR);
|
|
|
VAR i : CARDINAL;
|
|
|
fname : ARRAY [0 .. 127] OF CHAR;
|
|
|
@@ -3794,12 +3761,6 @@ PROCEDURE CmpL (op: INTEGER; l, r: ARRAY OF CHAR; VAR q: QVal);
|
|
|
Op3(mn, q, l, r, FALSE)
|
|
|
END CmpL;
|
|
|
|
|
|
-PROCEDURE Remark (s: ARRAY OF CHAR);
|
|
|
- BEGIN
|
|
|
- Revive;
|
|
|
- W("# "); WL(s)
|
|
|
- END Remark;
|
|
|
-
|
|
|
(* ---------------- heap (step 3.6: extern malloc/free) ---------------- *)
|
|
|
(* Only the object skeleton is initialized (array counts); elements
|
|
|
and members stay garbage per Wirth, except nested objects which
|