|
|
1.1 ! root 1: # ! 2: # 02relset.s ! 3: # ! 4: # RELATIONALS ON SETS ! 5: # ! 6: _RELT: ! 7: cvtbl (r10)+,r5 #r5 has jump opcode ! 8: cvtwl (r10)+,r1 #r1 has comparison length (bytes) ! 9: movl r1,r4 #r4 has stack length ! 10: blbc r4,l0211 ! 11: incl r4 ! 12: l0211: ! 13: addl3 sp,r4,r3 #r3 has addr of lower operand ! 14: addl2 r3,r4 #r4 points to cleared stack ! 15: ashl $1,r5,r5 #maintain compatability ! 16: jsb *settab(r5) #calc condition, return boolean in r0 ! 17: movl r4,sp #reset stack ! 18: cmpl r5,$20 #check for branch ! 19: bgtr l0212 ! 20: movw r0,-(sp) #put boolean on stack ! 21: jmp (r8) ! 22: l0212: ! 23: tstl r0 ! 24: beql l0213 ! 25: addl2 $2,r10 #continue on true ! 26: jmp (r8) ! 27: l0213: ! 28: cvtwl (r10),r0 #skip on false ! 29: addl2 r0,r10 ! 30: jmp (r8) ! 31: ! 32: .align 1 ! 33: settab: #condition code branch table ! 34: .long seteq #generate boolean answer ! 35: .long setne ! 36: .long setlt ! 37: .long setgt ! 38: .long setle ! 39: .long setge ! 40: .long seteq #branch on condition false ! 41: .long setne ! 42: .long setlt ! 43: .long setgt ! 44: .long setle ! 45: .long setge ! 46: ! 47: setlt: ! 48: moval 4(sp),r2 #skip over return address ! 49: ashl $-1,r1,r1 ! 50: l0214: ! 51: bicw3 (r2),(r3),r0 ! 52: bneq false ! 53: bicw2 (r3)+,(r2)+ ! 54: bneq l0216 #need only check <= for remainder of set ! 55: sobgtr r1,l0214 ! 56: false: ! 57: clrl r0 ! 58: rsb ! 59: setle: ! 60: moval 4(sp),r2 ! 61: ashl $-1,r1,r1 ! 62: l0215: ! 63: bicw2 (r2)+,(r3)+ ! 64: bneq false ! 65: l0216: ! 66: sobgtr r1,l0215 ! 67: true: ! 68: movl $1,r0 ! 69: rsb ! 70: seteq: ! 71: cmpc3 r1,(r3),4(sp) ! 72: beql true ! 73: clrl r0 ! 74: rsb ! 75: setne: ! 76: cmpc3 r1,(r3),4(sp) ! 77: bneq true ! 78: clrl r0 ! 79: rsb ! 80: setgt: ! 81: moval 4(sp),r2 ! 82: ashl $-1,r1,r1 ! 83: l0217: ! 84: bicw3 (r3),(r2),r0 ! 85: bneq false ! 86: bicw2 (r2)+,(r3)+ ! 87: bneq l0219 #need only check >= for remainder of set ! 88: sobgtr r1,l0217 ! 89: clrl r0 ! 90: rsb ! 91: setge: ! 92: moval 4(sp),r2 ! 93: ashl $-1,r1,r1 ! 94: l0218: ! 95: bicw2 (r3)+,(r2)+ ! 96: bneq false ! 97: l0219: ! 98: sobgtr r1,l0218 ! 99: movl $1,r0 ! 100: rsb
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.