redo include files for kernel reorg
[unix-history] / usr / src / sys / tahoe / math / Kcmpd.s
CommitLineData
a6730a00 1/* Kcmpd.s 1.4 90/12/04 */
6f4b515e 2
9d1834ba 3#include "../tahoe/SYS.h"
6f4b515e 4
2b252132
SL
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
34ENTRY(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
462:
47 mnegl r5,r5
481:
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
572:
58 mnegl r4,r4
591:
60 cmpl r5,r4
61 jeql 1f
62 jleq 2f
63 movl $1,r0
64 ret
652:
66 mnegl $1,r0
67 ret
681:
69 cmpl r3,r2
70 jeql 1f
71 jlequ 2f
72 movl $1,r0
73 ret
742:
75 mnegl $1,r0
76 ret
771:
78 clrl r0
79 ret