Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / vaxc / double-mac.mud
1 <DEFMAC DFLOAT-MAC (OPER "ARGS" ARGS "AUX" (NARGS <LENGTH .ARGS>) RES)
2   <COND (<OR <==? .OPER ADD>
3              <==? .OPER MUL>
4              <==? .OPER SUB>
5              <==? .OPER DIV>>
6          <COND (<OR <L? .NARGS 2>
7                     <G? .NARGS 3>>
8                 <ERROR WRONG-NUMBER-OF-ARGS!-ERRORS DOUBLE .OPER>)
9                (T
10                 <COND (<==? .NARGS 2>
11                        <SET RES <2 .ARGS>>)
12                       (T
13                        <SET RES <3 .ARGS>>)>
14                 <FORM CALL DOUBLE .OPER <1 .ARGS> <2 .ARGS> .RES>)>)
15         (<OR <==? .OPER G?>
16              <==? .OPER =?>
17              <==? .OPER L?>>
18          <COND (<N==? .NARGS 2>
19                 <ERROR WRONG-NUMBER-OF-ARGS!-ERRORS DOUBLE .OPER>)
20                (T
21                 <FORM CALL DOUBLE .OPER <1 .ARGS> <2 .ARGS>>)>)
22         (<==? .OPER DOUBLE-TO-SINGLE>
23          <COND (<N==? .NARGS 1>
24                 <ERROR WRONG-NUMBER-OF-ARGS!-ERRORS DOUBLE .OPER>)
25                (T
26                 <FORM CALL DOUBLE DOUBLE-TO-SINGLE <1 .ARGS>>)>)
27         (<==? .OPER SINGLE-TO-DOUBLE>
28          <COND (<OR <L? .NARGS 1>
29                     <G? .NARGS 2>>
30                 <ERROR WRONG-NUMBER-OF-ARGS!-ERRORS DOUBLE .OPER>)
31                (T
32                 <COND (<==? .NARGS 2>
33                        <FORM CALL DOUBLE SINGLE-TO-DOUBLE <1 .ARGS>
34                              <2 .ARGS>>)
35                       (T
36                        <FORM CALL DOUBLE SINGLE-TO-DOUBLE <1 .ARGS>
37                              <FORM IUVECTOR 2>>)>)>)>>\r