Pristine Ack-5.5
[Ack-5.5.git] / mach / mantra / int / mloop7
1 .sect .text
2 .sect .rom
3 .sect .data
4 .sect .bss
5 .sect .text
6 !------------------------------------------------------------------------------
7 !               UNSIGNED ARITHMETIC
8 !-----------------------------------------------------------------------------
9
10 adu_z:          mov     (sp)+,d0 ;      bra     0f
11 adu_l:          adroff          ;       move.w  (a5),d0
12 0:              checksize
13 2:              move.w  (sp)+,d1 ;      add.w   d1,(sp)
14                 jmp     (a4)
15 4:              move.l  (sp)+,d1;       add.l   d1,(sp)
16                 jmp     (a4)
17
18 sbu_z:          mov     (sp)+,d0 ;      bra     0f
19 sbu_l:          adroff          ;       move.w  (a5),d0
20 0:              checksize
21 2:              move.w  (sp)+,d1 ;      sub.w   d1,(sp)
22                 jmp     (a4)
23 4:              move.l  (sp)+,d1 ;      sub.l   d1,(sp)
24                 jmp     (a4)
25
26 !------------------------------------------------------------------------------
27
28 mlu_z:          mov     (sp)+,d0 ;      bra     0f
29 mlu_l:          adroff          ;       move.w  (a5),d0
30 0:              checksize
31 2:              move.w  (sp)+,d0 ;      mulu    (sp),d0
32                 move.w  d0,(sp) ;       jmp     (a4)
33 4:              move.l  (sp)+,d0 ;      move.l  (sp),d1
34                 bsr     mlu4    ;       move.l  d0,(sp)
35                 jmp     (a4)
36
37 !----------------------------------------------------------------------------
38
39 dvu_z:          mov     (sp)+,d0 ;      bra     0f
40 dvu_l:          adroff          ;       move.w  (a5),d0
41 0:              checksize
42 2:              move.w  (sp)+,d1 ;      beq     3f
43                 move.w  (sp),d0 ;       divu    d1,d0
44                 move.w  d0,(sp) ;       jmp     (a4)
45 3:              bsr     e_idivz ;       move.w  #-1,(sp)
46                 jmp     (a4)
47 4:              move.l  (sp)+,d0 ;      move.l  (sp),d1
48                 bsr     dvu4    ;       move.l  d1,(sp)
49                 jmp     (a4)
50
51 !----------------------------------------------------------------------------
52
53 rmu_z:          mov     (sp)+,d0 ;      bra     0f
54 rmu_l:          adroff          ;       move.w  (a5),d0
55 0:              checksize
56 2:              move.w  (sp)+,d1 ;      beq     3f
57                 move.w  (sp),d0 ;       divu    d1,d0
58                 swap    d0      ;       move.w  d0,(sp)
59                 jmp     (a4)
60 3:              bsr     e_idivz ;       clr.w   (sp)
61                 jmp     (a4)
62 4:              move.l  (sp)+,d0 ;      move.l  (sp),d1
63                 bsr     dvu4    ;       move.l  d3,(sp)
64                 jmp     (a4)
65
66 !------------------------------------------------------------------------.
67
68 slu_z:          mov     (sp)+,d0 ;      bra     0f
69 slu_l:          adroff          ;       move.w  (a5),d0
70 0:              checksize
71 2:              move.w  (sp)+,d0 
72                 bmi     7f
73 3:              move.w  (sp),d1
74                 lsl.w   d0,d1   ;       move.w  d1,(sp)
75                 jmp     (a4)
76 4:              mov     (sp)+,d0 
77                 bmi     9f
78 5:              move.l  (sp),d1
79                 lsl.l   d0,d1   ;       move.l  d1,(sp)
80                 jmp     (a4)
81
82 7:              neg.w   d0      ;       bra     3f
83 9:              nega    d0      ;       bra     5f
84 7:              neg.w   d0      ;       bra     3b
85 9:              nega    d0      ;       bra     5b
86
87 sru_z:          mov     (sp)+,d0 ;      bra     0f
88 sru_l:          adroff          ;       move.w  (a5),d0
89 0:              checksize
90 2:              move.w  (sp)+,d0 
91                 bmi     7b
92 3:              move.w  (sp),d1
93                 lsr.w   d0,d1   ;       move.w  d1,(sp)
94                 jmp     (a4)
95 4:              mov     (sp)+,d0 
96                 bmi     9b
97 5:              move.l  (sp),d1
98                 lsr.l   d0,d1   ;       move.l  d1,(sp)
99                 jmp     (a4)
100
101 !------------------------------------------------------------------------------
102 !       DUMMY FLOATING POINT ROUTINES
103 !------------------------------------------------------------------------------
104 adf_l:
105                 adroff          ;       move.w  (a5),d0
106 1:
107 #ifdef FLTRAP
108                 bra     flnim
109 #else
110                 checkfsize
111 4:
112                 jsr     .adf4
113                 add.l   #4,sp
114                 jmp     (a4)
115 8:
116                 jsr     .adf8
117                 add.l   #8,sp
118                 jmp     (a4)
119 #endif
120 adf_z:
121                 mov     (sp)+,d0 ;      bra     1b
122 adf_s0:
123                 move.l  #0,d0   ;       move.b  (a3)+,d0
124                 bra     1b
125
126 sbf_l:
127                 adroff          ;       move.w  (a5),d0
128 1:
129 #ifdef FLTRAP
130                 bra     flnim
131 #else
132                 checkfsize
133 4:
134                 jsr     .sbf4
135                 add.l   #4,sp
136                 jmp     (a4)
137 8:
138                 jsr     .sbf8
139                 add.l   #8,sp
140                 jmp     (a4)
141 #endif
142 sbf_z:
143                 mov     (sp)+,d0 ;      bra     1b
144 sbf_s0:
145                 move.l  #0,d0   ;       move.b  (a3)+,d0
146                 bra     1b
147
148 mlf_l:
149                 adroff          ;       move.w  (a5),d0
150 1:
151 #ifdef FLTRAP
152                 bra     flnim
153 #else
154                 checkfsize
155 4:
156                 jsr     .mlf4
157                 add.l   #4,sp
158                 jmp     (a4)
159 8:
160                 jsr     .mlf8
161                 add.l   #8,sp
162                 jmp     (a4)
163 #endif
164 mlf_z:
165                 mov     (sp)+,d0 ;      bra     1b
166 mlf_s0:
167                 move.l  #0,d0   ;       move.b  (a3)+,d0
168                 bra     1b
169
170 dvf_l:
171                 adroff          ;       move.w  (a5),d0
172 1:
173 #ifdef FLTRAP
174                 bra     flnim
175 #else
176                 checkfsize
177 4:
178                 jsr     .dvf4
179                 add.l   #4,sp
180                 jmp     (a4)
181 8:
182                 jsr     .dvf8
183                 add.l   #8,sp
184                 jmp     (a4)
185 #endif
186 dvf_z:
187                 mov     (sp)+,d0 ;      bra     1b
188 dvf_s0:
189                 move.l  #0,d0   ;       move.b  (a3)+,d0
190                 bra     1b
191
192 ngf_l:          adroff          ;       move.w  (a5),d0
193 1:
194 #ifdef FLTRAP
195                 bra     flnim
196 #else
197                 checkfsize
198 4:
199                 jsr     .ngf4
200                 jmp     (a4)
201 8:
202                 jsr     .ngf8
203                 jmp     (a4)
204 #endif
205 ngf_z:
206                 mov     (sp)+,d0 ;      bra     1b
207
208 fif_l:          adroff          ;       move.w  (a5),d0
209 1:
210 #ifdef FLTRAP
211                 bra     flnim
212 #else
213                 checkfsize
214 4:
215                 move.l  sp,-(sp)
216                 jsr     .fif4
217                 add.l   #4,sp
218                 jmp     (a4)
219 8:
220                 move.l  sp,-(sp)
221                 jsr     .fif8
222                 add.l   #4,sp
223                 jmp     (a4)
224 #endif
225 fif_z:
226                 mov     (sp)+,d0 ;      bra     1b
227
228 fef_l:          adroff          ;       move.w  (a5),d0
229 1:
230 #ifdef FLTRAP
231                 bra     flnim
232 #else
233                 checkfsize
234 4:
235                 move.l  sp,-(sp)
236                 sub.l   #4,(sp)
237                 jsr     .fef4
238 #ifndef lword
239                 add.l   #2,sp
240 #endif          
241                 jmp     (a4)
242 8:
243                 move.l  sp,-(sp)
244                 sub.l   #4,(sp)
245                 jsr     .fef8
246 #ifndef lword
247                 add.l   #2,sp
248 #endif          
249                 jmp     (a4)
250 #endif
251 fef_z:          mov     (sp)+,d0 ;      bra     1b