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 * %sccs.include.redist.c% 9 * 10 * @(#)Kcmpd.s 7.1 (Berkeley) 12/06/90 11 */ 12 13#include "../tahoe/SYS.h" 14 15/* 16 * cmpd(hi1, lo1, hi2, lo2) 17 * register hi1, hi2; 18 * register unsigned lo1, lo2; 19 *{ 20 * if(hi1 < 0) { 21 * hi1 ^= 0x80000000; 22 * if(lo1) { 23 * lo1 = -lo1; 24 * hi1 = ~hi1; 25 * } else 26 * hi1 = -hi1; 27 * } 28 * if(hi2 < 0) { 29 * hi2 ^= 0x80000000; 30 * if(lo2) { 31 * lo2 = -lo2; 32 * hi2 = ~hi2; 33 * } else 34 * hi2 = -hi2; 35 * } 36 * if(hi1 != hi2) 37 * return(hi1>hi2 ? 1 : -1); 38 * if(lo1 != lo2) 39 * return(lo1>lo2 ? 1 : -1); 40 * return(0); 41 *} 42 */ 43 .text 44ENTRY(Kcmpd, 0) 45 movl 8(fp),r3 46 movl 12(fp),r4 47 movl 16(fp),r2 48 movl 4(fp),r5 49 jgeq 1f 50 xorl2 $0x80000000,r5 51 tstl r3 52 jeql 2f 53 mnegl r3,r3 54 mcoml r5,r5 55 jbr 1f 562: 57 mnegl r5,r5 581: 59 tstl r4 60 jgeq 1f 61 xorl2 $0x80000000,r4 62 tstl r2 63 jeql 2f 64 mnegl r2,r2 65 mcoml r4,r4 66 jbr 1f 672: 68 mnegl r4,r4 691: 70 cmpl r5,r4 71 jeql 1f 72 jleq 2f 73 movl $1,r0 74 ret 752: 76 mnegl $1,r0 77 ret 781: 79 cmpl r3,r2 80 jeql 1f 81 jlequ 2f 82 movl $1,r0 83 ret 842: 85 mnegl $1,r0 86 ret 871: 88 clrl r0 89 ret 90