Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20c / double.mud
1 <OP-20 DFAD *110*>
2 <OP-20 DFSB *111*>
3 <OP-20 DFMP *112*>
4 <OP-20 DFDV *113*>
5
6 <DEFINE DOUBLE!-MIMOC (L "AUX" (OP <1 .L>) (A1 <2 .L>) (A2 <3 .L>)
7                                (VV <4 .L>) (VAL <6 .L>) AC INS
8                                (RFALSE <GENLBL "DBL">))
9         #DECL ((L) LIST (OP) <OR <FORM ATOM ATOM> ATOM>)
10         <COND (<TYPE? .OP FORM> <SET OP <2 .OP>>)>
11         <UPDATE-ACS>
12         <COND (<SET AC <IN-AC? .A1 VALUE>>
13                <OCEMIT DMOVE O1* (.AC)>)
14               (ELSE
15                <OCEMIT DMOVE O1* @ !<OBJ-VAL .A1>>)>
16         <SET INS <COND (<==? .OP +> DFAD)
17                        (<==? .OP -> DFSB)
18                        (<==? .OP *> DFMP)
19                        (ELSE DFDV)>>
20         <COND (<SET AC <IN-AC? .A2 VALUE>> <OCEMIT .INS O1* (.AC)>)
21               (ELSE <OCEMIT .INS O1* @ !<OBJ-VAL .A2>>)>
22         <OCEMIT JFCL A1* <XJUMP .RFALSE>>
23         <COND (<AND <==? .A2 .VV> .AC>
24                <OCEMIT DMOVEM O1* (.AC)>)
25               (ELSE <OCEMIT DMOVEM O1* @ !<OBJ-VAL .VV>>)>
26         <OCEMIT MOVSI A1* <TYPE-CODE FIX>>
27         <OCEMIT CAIA O* O*>
28         <LABEL .RFALSE>
29         <OCEMIT MOVSI A1* <TYPE-CODE FALSE>>
30         <OCEMIT MOVEI A2* 0>
31         <PUSHJ-VAL .VAL>>