|
|
@@ -111,6 +111,7 @@ PROCEDURE ParseFuncCall(idx: CARDINAL): ADDRESS; FORWARD;
|
|
|
PROCEDURE Proc43(code: BOOLEAN); FORWARD;
|
|
|
PROCEDURE Proc44(p1: WalkPtr); FORWARD;
|
|
|
PROCEDURE Proc50; FORWARD;
|
|
|
+PROCEDURE Proc49; FORWARD;
|
|
|
PROCEDURE Proc18; FORWARD;
|
|
|
PROCEDURE Proc19; FORWARD;
|
|
|
PROCEDURE ExpandStdProc45(std: CARDINAL); FORWARD; (* FIXME: 0-arg call site *)
|
|
|
@@ -185,9 +186,9 @@ END IsPointer;
|
|
|
PROCEDURE TypeKindOf(): CARDINAL;
|
|
|
BEGIN
|
|
|
CASE curDesc^.typ^.w4 OF
|
|
|
- 98: RETURN (CARDINAL(curDesc^.typ^.w3) DIV 2) + 1;
|
|
|
- | 97: RETURN 2;
|
|
|
- | 94: RETURN 4;
|
|
|
+ 8: RETURN (CARDINAL(curDesc^.typ^.w3) DIV 2) + 1;
|
|
|
+ | 7: RETURN 2;
|
|
|
+ | 4: RETURN 4;
|
|
|
ELSE RETURN ORD(RecordPtr(curDesc^.typ) = Compiler.IntType);
|
|
|
END;
|
|
|
END TypeKindOf;
|
|
|
@@ -372,12 +373,12 @@ BEGIN
|
|
|
Scanner.GetSym;
|
|
|
ELSE
|
|
|
CASE Scanner.identKd OF
|
|
|
- 91: curDesc^.mode := 0;
|
|
|
+ 1: curDesc^.mode := 0;
|
|
|
curDesc^.value := ADDRESS(CARDINAL(Scanner.curNode^.word5)); (* FIXME-DWORD *)
|
|
|
curDesc^.extra := CARDINAL(Scanner.curNode^.high);
|
|
|
PushOperand(curDesc);
|
|
|
Scanner.GetSym;
|
|
|
- | 93: Scanner.GetSym;
|
|
|
+ | 3: Scanner.GetSym;
|
|
|
Scanner.TestSet(BITSET{3,5});
|
|
|
IF Scanner.AcceptSy(45) THEN
|
|
|
MatchOpClass(BITSET{4}, 45);
|
|
|
@@ -393,7 +394,7 @@ BEGIN
|
|
|
curDesc^.mode := 2;
|
|
|
Scanner.ExpectSy(5);
|
|
|
END;
|
|
|
- | 94: ParseDesignatorTail;
|
|
|
+ | 4: ParseDesignatorTail;
|
|
|
IF Scanner.curSym = 43 THEN
|
|
|
Scanner.GetSym;
|
|
|
MatchOpClass(BITSET{9}, 43);
|
|
|
@@ -402,10 +403,10 @@ BEGIN
|
|
|
ELSE
|
|
|
PushOperand(curDesc);
|
|
|
END;
|
|
|
- | 95: CentralError(CARDINAL(NodePtr(t2)) <> 0, 60);
|
|
|
+ | 5: CentralError(CARDINAL(NodePtr(t2)) <> 0, 60);
|
|
|
Proc18;
|
|
|
- | 90: Errors.ReportErrorWithText(0, Scanner.tokBuf);
|
|
|
- | 92: Errors.ReportError(22);
|
|
|
+ | 0: Errors.ReportErrorWithText(0, Scanner.tokBuf);
|
|
|
+ | 2: Errors.ReportError(22);
|
|
|
END;
|
|
|
CheckAndStore(curDesc);
|
|
|
END;
|
|
|
@@ -979,18 +980,18 @@ BEGIN
|
|
|
CodeGen.EmitSystemCall(20); PushOperand(curDesc); (*FIXME-ARG*) (*{0781-0786}*)
|
|
|
IF flag THEN BoolCondHelper ELSE ParseDesignatorTail END; (*{09e0}*)
|
|
|
NormalizeOperand(curDesc); (*FIXME-ARG*) op := 2; m := 7; k1 := mod; Proc6; (*{09e9} *)
|
|
|
- CASE curDesc^.typ^.w4 OF (*{09f0} callswitch; labels TBD by audit *)
|
|
|
- 90, 91:
|
|
|
- | 92: bad := RecordPtr(curDesc^.typ) # Compiler.CharType; m := 1; (*{07a1-07a5}*)
|
|
|
- | 93..96: m := m+3; ParseTypeCast(6); (*{07a6-07af}*)
|
|
|
- | 97: m := 5; ParseTypeCast(11); (*{07b2-07b5}*)
|
|
|
- | 98: IF RecordPtr(curDesc^.typ) = Compiler.LongrealType THEN (*{07b8-07bc} LONGREAL *)
|
|
|
+ CASE curDesc^.typ^.w4 OF (*{09f0} callswitch; TRUE labels = printed-90 *)
|
|
|
+ | 0, 1:
|
|
|
+ | 2: bad := RecordPtr(curDesc^.typ) # Compiler.CharType; m := 1; (*{07a1-07a5}*)
|
|
|
+ | 3..6: m := m+3; ParseTypeCast(6); (*{07a6-07af}*)
|
|
|
+ | 7: m := 5; ParseTypeCast(11); (*{07b2-07b5}*)
|
|
|
+ | 8: IF RecordPtr(curDesc^.typ) = Compiler.LongrealType THEN (*{07b8-07bc} LONGREAL *)
|
|
|
ParseTypeCast(22); ParseTypeCast(65523);
|
|
|
mod := Scanner.EnterMod("DOUBLES", 6); (*{07c8-07d5}*)
|
|
|
aux := mod; m := 14; k1 := 1; (*{07d6-07dc}*)
|
|
|
ELSE ParseTypeCast(13); ParseTypeCast(65531); m := 6; (*{07df-07e6}*)
|
|
|
END;
|
|
|
- | 101: IF ~ IsPointer(RecordPtr(curDesc^.typ)) THEN bad := TRUE END; (*{07ea-07ef}*)
|
|
|
+ | 11: IF ~ IsPointer(RecordPtr(curDesc^.typ)) THEN bad := TRUE END; (*{07ea-07ef}*)
|
|
|
EmitAddress(curDesc); (*FIXME-ARG*) op := 3; m := 2; (*{07f0-07f6}*)
|
|
|
ELSE bad := TRUE; (*{0817}*)
|
|
|
END;
|