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