|
|
1.1 root 1: /*
2: * @(#)udiv.s 7.1 (Berkeley) 5/21/88
3: */
4:
5: #include "../tahoe/SYS.h"
6:
7: /*
8: * result = udiv(dividend, divisor)
9: *
10: * unsigned long division
11: */
12: .text
13: ASENTRY(udiv, R2|R3)
14: bitl $0x80000000,8(fp) # if (divisor & 0x80000000) {
15: jeql 2f
16: cmpl 8(fp),4(fp) # if (divisor > dividend)
17: jlequ 1f
18: clrl r0 # return (0);
19: ret
20: 1: # else
21: movl $1,r0 # return (1);
22: ret # }
23: 2:
24: clrl r0 # return (dividend / divisor);
25: movl 4(fp),r1
26: ediv 8(fp),r0,r2,r3
27: movl r2,r0
28: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.