1: / fp2 -- floating point simulation 2: 3: i.ldx: 4: mov (r3)+,(r2)+ 5: mov (r3)+,(r2)+ 6: bit $m.ext,fpsr 7: beq 1f 8: mov (r3)+,(r2)+ 9: mov (r3)+,(r2)+ 10: rts pc 11: 1: 12: clr (r2)+ 13: clr (r2)+ 14: rts pc 15: 16: i.stx: 17: mov (r2)+,(r3)+ 18: mov (r2)+,(r3)+ 19: bit $m.ext,fpsr 20: beq 1f 21: mov (r2)+,(r3)+ 22: mov (r2)+,(r3)+ 23: 1: 24: rts pc 25: 26: i.clrx: 27: clr (r3)+ 28: clr (r3)+ 29: bit $m.ext,fpsr 30: beq 1f 31: clr (r3)+ 32: clr (r3)+ 33: 1: 34: rts pc 35: 36: i.negx: 37: tst (r3) 38: beq 1f 39: add $100000,(r3) 40: 1: 41: rts pc 42: 43: i.absx: 44: bic $!77777,(r3) 45: rts pc 46: 47: i.tstx: 48: rts pc 49: 50: i.cmpx: 51: mov $areg,r5 52: tst (r2) 53: bge 1f 54: tst (r3) 55: bge 1f 56: cmp (r2),(r3) 57: bgt 4f 58: blt 3f 59: 1: 60: cmp (r2)+,(r3)+ 61: bgt 3f 62: blt 4f 63: cmp (r2)+,(r3)+ 64: bne 1f 65: bit $m.ext,fpsr 66: beq 2f 67: cmp (r2)+,(r3)+ 68: bne 1f 69: cmp (r2)+,(r3)+ 70: beq 2f 71: 1: 72: bhi 3f 73: 4: 74: mov $1,(r5) 75: rts pc 76: 3: 77: mov $-1,(r5) 78: rts pc 79: 2: 80: clr (r5) 81: rts pc 82: 83: i.ldcyx: 84: mov (r3)+,(r2)+ 85: mov (r3)+,(r2)+ 86: bit $m.ext,fpsr 87: bne 1f 88: mov (r3)+,(r2)+ 89: mov (r3)+,(r2)+ 90: rts pc 91: 1: 92: clr (r2)+ 93: clr (r2)+ 94: rts pc 95: 96: i.stcxy: 97: mov (r2)+,(r3)+ 98: mov (r2)+,(r3)+ 99: bit $m.ext,fpsr 100: bne 1f 101: clr (r3)+ 102: clr (r3)+ 103: 1: 104: rts pc 105: 106: i.ldcjx: 107: mov $asign,r0 108: mov $1,(r0)+ 109: mov (r3)+,(r0)+ 110: bit $m.lngi,fpsr 111: beq 1f 112: mov (r3)+,(r0)+ 113: clr (r0)+ 114: clr (r0)+ 115: mov $32.-8,(r0)+ 116: jmp saret 117: 1: 118: clr (r0)+ 119: clr (r0)+ 120: clr (r0)+ 121: mov $16.-8,(r0) 122: jmp saret 123: 124: i.stcxj: 125: mov r3,r5 126: mov $asign,r0 127: jsr pc,seta 128: mov $areg,r0 129: mov (r0)+,r1 130: mov (r0)+,r2 131: mov (r0)+,r3 132: mov aexp,r0 133: 1: 134: cmp r0,$48.-8 135: bge 1f 136: clc 137: ror r1 138: ror r2 139: ror r3 140: inc r0 141: br 1b 142: 1: 143: bgt xoflo 144: tst r1 145: bne xoflo 146: 1: 147: bit $m.lngi,fpsr 148: beq 1f 149: tst asign 150: bge 2f 151: neg r3 152: adc r2 153: bcs 2f 154: neg r2 155: 2: 156: mov r2,(r5) 157: mov r3,2(r5) 158: rts pc 159: 1: 160: tst r2 161: bne xoflo 162: tst asign 163: bge 2f 164: neg r3 165: 2: 166: mov r3,(r5) 167: rts pc 168: 169: xoflo: 170: bis $1,fpsr / set fixed overflow (carry) 171: jmp ret 172: 173: i.ldexp: 174: mov $asign,r0 175: jsr pc,seta 176: mov (r3),aexp 177: jsr pc,reta 178: jmp sret 179: 180: i.stexp: 181: mov $asign,r0 182: jsr pc,seta 183: mov aexp,(r3) 184: mov r3,r5 185: jmp sret 186: 187: i.ldfps: 188: mov (r3),fpsr 189: jmp ret 190: 191: i.stfps: 192: mov fpsr,(r3) 193: jmp ret