BSD 2 development
[unix-history] / src / pascal / fpterp / fp2.s
CommitLineData
bb56dd76
BJ
1/ fp2 -- floating point simulation
2
3i.ldx:
4 mov (r3)+,(r2)+
5 mov (r3)+,(r2)+
6 bit $m.ext,fpsr
7 beq 1f
8 mov (r3)+,(r2)+
9 mov (r3)+,(r2)+
10 rts pc
111:
12 clr (r2)+
13 clr (r2)+
14 rts pc
15
16i.stx:
17 mov (r2)+,(r3)+
18 mov (r2)+,(r3)+
19 bit $m.ext,fpsr
20 beq 1f
21 mov (r2)+,(r3)+
22 mov (r2)+,(r3)+
231:
24 rts pc
25
26i.clrx:
27 clr (r3)+
28 clr (r3)+
29 bit $m.ext,fpsr
30 beq 1f
31 clr (r3)+
32 clr (r3)+
331:
34 rts pc
35
36i.negx:
37 tst (r3)
38 beq 1f
39 add $100000,(r3)
401:
41 rts pc
42
43i.absx:
44 bic $!77777,(r3)
45 rts pc
46
47i.tstx:
48 rts pc
49
50i.cmpx:
51 mov $areg,r5
52 tst (r2)
53 bge 1f
54 tst (r3)
55 bge 1f
56 cmp (r2),(r3)
57 bgt 4f
58 blt 3f
591:
60 cmp (r2)+,(r3)+
61 bgt 3f
62 blt 4f
63 cmp (r2)+,(r3)+
64 bne 1f
65 bit $m.ext,fpsr
66 beq 2f
67 cmp (r2)+,(r3)+
68 bne 1f
69 cmp (r2)+,(r3)+
70 beq 2f
711:
72 bhi 3f
734:
74 mov $1,(r5)
75 rts pc
763:
77 mov $-1,(r5)
78 rts pc
792:
80 clr (r5)
81 rts pc
82
83i.ldcyx:
84 mov (r3)+,(r2)+
85 mov (r3)+,(r2)+
86 bit $m.ext,fpsr
87 bne 1f
88 mov (r3)+,(r2)+
89 mov (r3)+,(r2)+
90 rts pc
911:
92 clr (r2)+
93 clr (r2)+
94 rts pc
95
96i.stcxy:
97 mov (r2)+,(r3)+
98 mov (r2)+,(r3)+
99 bit $m.ext,fpsr
100 bne 1f
101 clr (r3)+
102 clr (r3)+
1031:
104 rts pc
105
106i.ldcjx:
107 mov $asign,r0
108 mov $1,(r0)+
109 mov (r3)+,(r0)+
110 bit $m.lngi,fpsr
111 beq 1f
112 mov (r3)+,(r0)+
113 clr (r0)+
114 clr (r0)+
115 mov $32.-8,(r0)+
116 jmp saret
1171:
118 clr (r0)+
119 clr (r0)+
120 clr (r0)+
121 mov $16.-8,(r0)
122 jmp saret
123
124i.stcxj:
125 mov r3,r5
126 mov $asign,r0
127 jsr pc,seta
128 mov $areg,r0
129 mov (r0)+,r1
130 mov (r0)+,r2
131 mov (r0)+,r3
132 mov aexp,r0
1331:
134 cmp r0,$48.-8
135 bge 1f
136 clc
137 ror r1
138 ror r2
139 ror r3
140 inc r0
141 br 1b
1421:
143 bgt xoflo
144 tst r1
145 bne xoflo
1461:
147 bit $m.lngi,fpsr
148 beq 1f
149 tst asign
150 bge 2f
151 neg r3
152 adc r2
153 bcs 2f
154 neg r2
1552:
156 mov r2,(r5)
157 mov r3,2(r5)
158 rts pc
1591:
160 tst r2
161 bne xoflo
162 tst asign
163 bge 2f
164 neg r3
1652:
166 mov r3,(r5)
167 rts pc
168
169xoflo:
170 bis $1,fpsr / set fixed overflow (carry)
171 jmp ret
172
173i.ldexp:
174 mov $asign,r0
175 jsr pc,seta
176 mov (r3),aexp
177 jsr pc,reta
178 jmp sret
179
180i.stexp:
181 mov $asign,r0
182 jsr pc,seta
183 mov aexp,(r3)
184 mov r3,r5
185 jmp sret
186
187i.ldfps:
188 mov (r3),fpsr
189 jmp ret
190
191i.stfps:
192 mov fpsr,(r3)
193 jmp ret
194