1*45761Sbostic/*- 2*45761Sbostic * Copyright (c) 1985 The Regents of the University of California. 3*45761Sbostic * All rights reserved. 4*45761Sbostic * 5*45761Sbostic * This code is derived from software contributed to Berkeley by 6*45761Sbostic * Computer Consoles Inc. 7*45761Sbostic * 8*45761Sbostic * %sccs.include.redist.c% 9*45761Sbostic * 10*45761Sbostic * @(#)Kcmpd.s 7.1 (Berkeley) 12/06/90 11*45761Sbostic */ 1224135Ssam 1325693Ssam#include "../tahoe/SYS.h" 1424135Ssam 1525664Ssam/* 1625664Ssam * cmpd(hi1, lo1, hi2, lo2) 1725664Ssam * register hi1, hi2; 1825664Ssam * register unsigned lo1, lo2; 1925664Ssam *{ 2025664Ssam * if(hi1 < 0) { 2125664Ssam * hi1 ^= 0x80000000; 2225664Ssam * if(lo1) { 2325664Ssam * lo1 = -lo1; 2425664Ssam * hi1 = ~hi1; 2525664Ssam * } else 2625664Ssam * hi1 = -hi1; 2725664Ssam * } 2825664Ssam * if(hi2 < 0) { 2925664Ssam * hi2 ^= 0x80000000; 3025664Ssam * if(lo2) { 3125664Ssam * lo2 = -lo2; 3225664Ssam * hi2 = ~hi2; 3325664Ssam * } else 3425664Ssam * hi2 = -hi2; 3525664Ssam * } 3625664Ssam * if(hi1 != hi2) 3725664Ssam * return(hi1>hi2 ? 1 : -1); 3825664Ssam * if(lo1 != lo2) 3925664Ssam * return(lo1>lo2 ? 1 : -1); 4025664Ssam * return(0); 4125664Ssam *} 4225664Ssam */ 4325664Ssam .text 4425664SsamENTRY(Kcmpd, 0) 4525664Ssam movl 8(fp),r3 4625664Ssam movl 12(fp),r4 4725664Ssam movl 16(fp),r2 4825664Ssam movl 4(fp),r5 4925664Ssam jgeq 1f 5025664Ssam xorl2 $0x80000000,r5 5125664Ssam tstl r3 5225664Ssam jeql 2f 5325664Ssam mnegl r3,r3 5425664Ssam mcoml r5,r5 5525664Ssam jbr 1f 5625664Ssam2: 5725664Ssam mnegl r5,r5 5825664Ssam1: 5925664Ssam tstl r4 6025664Ssam jgeq 1f 6125664Ssam xorl2 $0x80000000,r4 6225664Ssam tstl r2 6325664Ssam jeql 2f 6425664Ssam mnegl r2,r2 6525664Ssam mcoml r4,r4 6625664Ssam jbr 1f 6725664Ssam2: 6825664Ssam mnegl r4,r4 6925664Ssam1: 7025664Ssam cmpl r5,r4 7125664Ssam jeql 1f 7225664Ssam jleq 2f 7325664Ssam movl $1,r0 7425664Ssam ret 7525664Ssam2: 7625664Ssam mnegl $1,r0 7725664Ssam ret 7825664Ssam1: 7925664Ssam cmpl r3,r2 8025664Ssam jeql 1f 8125664Ssam jlequ 2f 8225664Ssam movl $1,r0 8325664Ssam ret 8425664Ssam2: 8525664Ssam mnegl $1,r0 8625664Ssam ret 8725664Ssam1: 8825664Ssam clrl r0 8925664Ssam ret 90