|
|
1.1 root 1: /* Kcmpd.s 1.3 86/01/05 */
2:
3: #include "../tahoe/SYS.h"
4:
5: /*
6: * cmpd(hi1, lo1, hi2, lo2)
7: * register hi1, hi2;
8: * register unsigned lo1, lo2;
9: *{
10: * if(hi1 < 0) {
11: * hi1 ^= 0x80000000;
12: * if(lo1) {
13: * lo1 = -lo1;
14: * hi1 = ~hi1;
15: * } else
16: * hi1 = -hi1;
17: * }
18: * if(hi2 < 0) {
19: * hi2 ^= 0x80000000;
20: * if(lo2) {
21: * lo2 = -lo2;
22: * hi2 = ~hi2;
23: * } else
24: * hi2 = -hi2;
25: * }
26: * if(hi1 != hi2)
27: * return(hi1>hi2 ? 1 : -1);
28: * if(lo1 != lo2)
29: * return(lo1>lo2 ? 1 : -1);
30: * return(0);
31: *}
32: */
33: .text
34: ENTRY(Kcmpd, 0)
35: movl 8(fp),r3
36: movl 12(fp),r4
37: movl 16(fp),r2
38: movl 4(fp),r5
39: jgeq 1f
40: xorl2 $0x80000000,r5
41: tstl r3
42: jeql 2f
43: mnegl r3,r3
44: mcoml r5,r5
45: jbr 1f
46: 2:
47: mnegl r5,r5
48: 1:
49: tstl r4
50: jgeq 1f
51: xorl2 $0x80000000,r4
52: tstl r2
53: jeql 2f
54: mnegl r2,r2
55: mcoml r4,r4
56: jbr 1f
57: 2:
58: mnegl r4,r4
59: 1:
60: cmpl r5,r4
61: jeql 1f
62: jleq 2f
63: movl $1,r0
64: ret
65: 2:
66: mnegl $1,r0
67: ret
68: 1:
69: cmpl r3,r2
70: jeql 1f
71: jlequ 2f
72: movl $1,r0
73: ret
74: 2:
75: mnegl $1,r0
76: ret
77: 1:
78: clrl r0
79: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.