|
|
1.1 ! root 1: # ! 2: # Copyright (c) 1979 Regents of the University of California ! 3: # ! 4: # char sccsid[] = "@(#)03rel.s 4.1 10/10/80"; ! 5: # ! 6: # RELATIONAL OPERATORS ! 7: # ! 8: _REL2: ! 9: cvtbl (r10)+,r0 ! 10: movw (sp)+,r1 ! 11: cmpw (sp)+,r1 ! 12: jmp *reltab(r0) ! 13: _REL42: ! 14: cvtbl (r10)+,r0 ! 15: movl (sp)+,r1 ! 16: cvtwl (sp)+,r2 ! 17: cmpl r2,r1 ! 18: jmp *reltab(r0) ! 19: _REL24: ! 20: cvtbl (r10)+,r0 ! 21: cvtwl (sp)+,r1 ! 22: cmpl (sp)+,r1 ! 23: jmp *reltab(r0) ! 24: _REL4: ! 25: cvtbl (r10)+,r0 ! 26: movl (sp)+,r1 ! 27: cmpl (sp)+,r1 ! 28: jmp *reltab(r0) ! 29: _REL28: ! 30: cvtbl (r10)+,r0 ! 31: cvtwd (sp)+,r1 ! 32: cmpd (sp)+,r1 ! 33: jmp *reltab(r0) ! 34: _REL48: ! 35: cvtbl (r10)+,r0 ! 36: cvtld (sp)+,r1 ! 37: cmpd (sp)+,r1 ! 38: jmp *reltab(r0) ! 39: _REL82: ! 40: cvtbl (r10)+,r0 ! 41: movd (sp)+,r1 ! 42: cvtwd (sp)+,r3 ! 43: cmpd r3,r1 ! 44: jmp *reltab(r0) ! 45: _REL84: ! 46: cvtbl (r10)+,r0 ! 47: movd (sp)+,r1 ! 48: cvtld (sp)+,r3 ! 49: cmpd r3,r1 ! 50: jmp *reltab(r0) ! 51: _REL8: ! 52: cvtbl (r10)+,r0 ! 53: movd (sp)+,r1 ! 54: cmpd (sp)+,r1 ! 55: jmp *reltab(r0) ! 56: _RELG: ! 57: cvtbl (r10)+,r5 #r5 has jump opcode ! 58: movzwl (r10)+,r1 #r1 has comparison length ! 59: movl r1,r4 #r4 has stack length ! 60: blbc r4,l0201 ! 61: incl r4 ! 62: l0201: ! 63: addl3 sp,r4,r3 #r3 has addr of bottom operand ! 64: addl2 r3,r4 #r4 points to cleared stack ! 65: cmpc3 r1,(r3),(sp) #do comparison ! 66: movpsl r2 #save condition codes ! 67: movl r4,sp #update stack ! 68: bicpsw $15 #restore condition codes ! 69: bispsw r2 ! 70: jmp *reltab(r5) ! 71: ! 72: .align 1 ! 73: reltab: ! 74: .long releq ! 75: .long relne ! 76: .long rellt ! 77: .long relgt ! 78: .long relle ! 79: .long relge ! 80: .long ifeq ! 81: .long ifne ! 82: .long iflt ! 83: .long ifgt ! 84: .long ifle ! 85: .long ifge ! 86: ! 87: releq: ! 88: beql True ! 89: clrw -(sp) ! 90: jmp (r8) ! 91: relne: ! 92: bneq True ! 93: clrw -(sp) ! 94: jmp (r8) ! 95: rellt: ! 96: blss True ! 97: clrw -(sp) ! 98: jmp (r8) ! 99: relgt: ! 100: bgtr True ! 101: clrw -(sp) ! 102: jmp (r8) ! 103: relle: ! 104: bleq True ! 105: clrw -(sp) ! 106: jmp (r8) ! 107: relge: ! 108: bgeq True ! 109: clrw -(sp) ! 110: jmp (r8) ! 111: True: ! 112: movw $1,-(sp) ! 113: jmp (r8) ! 114: ifeq: ! 115: bneq iftra ! 116: addl2 $2,r10 ! 117: jmp (r8) ! 118: ifne: ! 119: beql iftra ! 120: addl2 $2,r10 ! 121: jmp (r8) ! 122: iflt: ! 123: bgeq iftra ! 124: addl2 $2,r10 ! 125: jmp (r8) ! 126: ifgt: ! 127: bleq iftra ! 128: addl2 $2,r10 ! 129: jmp (r8) ! 130: ifle: ! 131: bgtr iftra ! 132: addl2 $2,r10 ! 133: jmp (r8) ! 134: ifge: ! 135: blss iftra ! 136: addl2 $2,r10 ! 137: jmp (r8) ! 138: iftra: ! 139: cvtwl (r10),r0 ! 140: addl2 r0,r10 ! 141: jmp (r8)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.