|
|
1.1 root 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: *
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.
35: *
36: * @(#)Kcmpd.s 7.1 (Berkeley) 12/6/90
37: */
38:
39: #include "../tahoe/SYS.h"
40:
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
70: ENTRY(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
82: 2:
83: mnegl r5,r5
84: 1:
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
93: 2:
94: mnegl r4,r4
95: 1:
96: cmpl r5,r4
97: jeql 1f
98: jleq 2f
99: movl $1,r0
100: ret
101: 2:
102: mnegl $1,r0
103: ret
104: 1:
105: cmpl r3,r2
106: jeql 1f
107: jlequ 2f
108: movl $1,r0
109: ret
110: 2:
111: mnegl $1,r0
112: ret
113: 1:
114: clrl r0
115: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.