|
|
@@ -119,8 +119,17 @@ BEGIN
|
|
|
END;
|
|
|
END;
|
|
|
END PushOperand;
|
|
|
+(* proc3 @01c3 — ~PopOperand: emit pending-op form of descriptor. *)
|
|
|
PROCEDURE PopOperand(d: HeadPtr);
|
|
|
-BEGIN HALT; END PopOperand;
|
|
|
+BEGIN
|
|
|
+ IF d^.typ^.w4 > 9 THEN
|
|
|
+ LoadIndirect(d^);
|
|
|
+ CodeGen.EmitStandardOp(17);
|
|
|
+ ELSE
|
|
|
+ CodeGen.SetPendingOp((CARDINAL(d^.typ^.w3) DIV 2) - ORD(RecordPtr(d^.typ) = Compiler.LongrealType) + 4,
|
|
|
+ d^.kind, CARDINAL(d^.value), d^.extra);
|
|
|
+ END;
|
|
|
+END PopOperand;
|
|
|
(* proc25 @000c — option-12 guard. *)
|
|
|
PROCEDURE GetRangeBase(v: ADDRESS);
|
|
|
BEGIN
|