2 <DEFINE CONFORM (R1 R2 T1 T2
3 "AUX" (X <3 .T1>) (Y <3 .T2>) (AR1 <TYPE? <DATVAL .R1> AC>) M1
4 M2 (AR2 <TYPE? <DATVAL .R2> AC>) AC (VAL <>))
5 #DECL ((T1 T2) TRANS (X Y) <UVECTOR [7 FIX]> (R1 R2) DATUM (AC) AC
7 <SET AC <COND (.AR1 <DATVAL .R1>) (ELSE <DATVAL .R2>)>>
8 <COND (<N==? <7 .X> <7 .Y>>
9 <COND (<0? <7 .X>> <HWSH .R2 .R1 <6 .X>>)
10 (ELSE <HWSH .R1 .R2 <6 .Y>>)>)
12 <COND (<0? <6 .X>> <HWH .R2 .R1>) (ELSE <HWH .R1 .R2>)>)>
13 <COND (<N==? <1 .X> <1 .Y>>
14 <AND <NOT <0? <1 .Y>>> <SET VAL T>>
15 <MUNG-AC .AC <COND (.AR1 .R1)(ELSE .R2)>>
16 <EMIT <INSTRUCTION `MOVNS <ADDRSYM .AC>>>)
17 (<NOT <0? <1 .X>>> <SET VAL T>)>
18 <COND (<OR <NOT <0? <4 .X>>> <NOT <0? <4 .Y>>>>
19 <SET M1 <M* <4 .X> <4 .Y> <5 .X> <5 .Y>>>
20 <SET M2 <M* <4 .Y> <4 .X> <5 .Y> <5 .X>>>
21 <COND (<AND <G=? .M1 .M2> <0? <MOD .M1 .M2>>>
24 (<AND <G? .M2 .M1> <0? <MOD .M2 .M1>>>
29 <MUNG-AC <DATVAL .R2> .R2>
30 <IMCHK '(`IMUL `IMULI )
32 <REFERENCE:ADR .M1>>)>
35 <MUNG-AC <DATVAL .R1> .R1>
36 <IMCHK '(`IMUL `IMULI )
38 <REFERENCE:ADR .M2>>)>)>
39 <COND (<AND <OR <NOT <0? <2 .X>>> <NOT <0? <2 .Y>>>>
40 <NOT <0? <SET M1 <- <3 .X> <3 .Y>>>>>>
41 <COND (<TYPE? <DATVAL .R2> AC>
42 <MUNG-AC <DATVAL .R2> .R2>
43 <IMCHK <COND (<L? .M1 0> <SET M1 <- .M1>> '(`SUB
45 (ELSE '(`ADD `ADDI ))>
50 <MUNG-AC <DATVAL .R1> .R1>
51 <IMCHK <COND (<L? .M1 0> <SET M1 <- .M1>> '(`ADD
53 (ELSE '(`SUB `SUBI ))>
55 <REFERENCE:ADR .M1>>)>)>
60 <* <COND (<OR <==? .A 1> <==? .A 2>> .C) (ELSE 1)>
61 <COND (<OR <==? .B 3> <==? .B 4>> .D) (ELSE 1)>>>
63 <DEFINE HWSH (R1 R2 HW)
64 #DECL ((R1 R2) DATUM (HW) FIX)
66 <COND (<TYPE? <DATVAL .R1> AC>
67 <MUNG-AC <DATVAL .R1> .R1>
68 <EMIT <INSTRUCTION `HLRZS <ADDRSYM <DATVAL .R1>>>>)
70 <MUNG-AC <DATVAL .R2> .R2>
71 <EMIT <INSTRUCTION `MOVSS <ADDRSYM <DATVAL .R2>>>>)>)
73 <COND (<TYPE? <DATVAL .R1> AC>
74 <MUNG-AC <DATVAL .R1> .R1>
75 <EMIT <INSTRUCTION `HLRES <ADDRSYM <DATVAL .R1>>>>)
77 <MUNG-AC <DATVAL .R2> .R2>
78 <EMIT <INSTRUCTION `MOVSS <ADDRSYM <DATVAL .R2>>>>)>)>>
82 <COND (<TYPE? <DATVAL .R1> AC>
83 <MUNG-AC <DATVAL .R1> .R1>
84 <EMIT <INSTRUCTION `HRRES <ADDRSYM <DATVAL .R1>>>>)
86 <MUNG-AC <DATVAL .R2> .R2>
87 <EMIT <INSTRUCTION `ANDI <ACSYM <DATVAL .R2>> 262143>>)>>