Start development on 386BSD 0.0
[unix-history] / .ref-BSD-4_3_Net_2 / usr / src / sys / tahoe / math / Kcmpd.s
CommitLineData
7c27088c
KB
1/*-
2 * Copyright (c) 1985 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Computer Consoles Inc.
7 *
c0567266
KB
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by the University of
19 * California, Berkeley and its contributors.
20 * 4. Neither the name of the University nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
af359dea
C
35 *
36 * @(#)Kcmpd.s 7.1 (Berkeley) 12/6/90
7c27088c 37 */
6f4b515e 38
9d1834ba 39#include "../tahoe/SYS.h"
6f4b515e 40
2b252132
SL
41/*
42 * cmpd(hi1, lo1, hi2, lo2)
43 * register hi1, hi2;
44 * register unsigned lo1, lo2;
45 *{
46 * if(hi1 < 0) {
47 * hi1 ^= 0x80000000;
48 * if(lo1) {
49 * lo1 = -lo1;
50 * hi1 = ~hi1;
51 * } else
52 * hi1 = -hi1;
53 * }
54 * if(hi2 < 0) {
55 * hi2 ^= 0x80000000;
56 * if(lo2) {
57 * lo2 = -lo2;
58 * hi2 = ~hi2;
59 * } else
60 * hi2 = -hi2;
61 * }
62 * if(hi1 != hi2)
63 * return(hi1>hi2 ? 1 : -1);
64 * if(lo1 != lo2)
65 * return(lo1>lo2 ? 1 : -1);
66 * return(0);
67 *}
68 */
69 .text
70ENTRY(Kcmpd, 0)
71 movl 8(fp),r3
72 movl 12(fp),r4
73 movl 16(fp),r2
74 movl 4(fp),r5
75 jgeq 1f
76 xorl2 $0x80000000,r5
77 tstl r3
78 jeql 2f
79 mnegl r3,r3
80 mcoml r5,r5
81 jbr 1f
822:
83 mnegl r5,r5
841:
85 tstl r4
86 jgeq 1f
87 xorl2 $0x80000000,r4
88 tstl r2
89 jeql 2f
90 mnegl r2,r2
91 mcoml r4,r4
92 jbr 1f
932:
94 mnegl r4,r4
951:
96 cmpl r5,r4
97 jeql 1f
98 jleq 2f
99 movl $1,r0
100 ret
1012:
102 mnegl $1,r0
103 ret
1041:
105 cmpl r3,r2
106 jeql 1f
107 jlequ 2f
108 movl $1,r0
109 ret
1102:
111 mnegl $1,r0
112 ret
1131:
114 clrl r0
115 ret