|
|
1.1 ! root 1: /* Kcmpd.s 1.3 86/01/05 */ ! 2: ! 3: #include "../tahoe/SYS.h" ! 4: ! 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 ! 34: ENTRY(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 ! 46: 2: ! 47: mnegl r5,r5 ! 48: 1: ! 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 ! 57: 2: ! 58: mnegl r4,r4 ! 59: 1: ! 60: cmpl r5,r4 ! 61: jeql 1f ! 62: jleq 2f ! 63: movl $1,r0 ! 64: ret ! 65: 2: ! 66: mnegl $1,r0 ! 67: ret ! 68: 1: ! 69: cmpl r3,r2 ! 70: jeql 1f ! 71: jlequ 2f ! 72: movl $1,r0 ! 73: ret ! 74: 2: ! 75: mnegl $1,r0 ! 76: ret ! 77: 1: ! 78: clrl r0 ! 79: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.