home *** CD-ROM | disk | FTP | other *** search
- / fp2 -- floating point simulation
-
- i.ldx:
- mov (r3)+,(r2)+
- mov (r3)+,(r2)+
- bit $m.ext,fpsr
- beq 1f
- mov (r3)+,(r2)+
- mov (r3)+,(r2)+
- rts pc
- 1:
- clr (r2)+
- clr (r2)+
- rts pc
-
- i.stx:
- mov (r2)+,(r3)+
- mov (r2)+,(r3)+
- bit $m.ext,fpsr
- beq 1f
- mov (r2)+,(r3)+
- mov (r2)+,(r3)+
- 1:
- jmp ret / does not set cc's
-
- i.clrx:
- clr (r3)+
- clr (r3)+
- bit $m.ext,fpsr
- beq 1f
- clr (r3)+
- clr (r3)+
- 1:
- rts pc
-
- i.negx:
- tst (r3)
- beq 1f
- add $100000,(r3)
- 1:
- rts pc
-
- i.absx:
- bic $!77777,(r3)
- rts pc
-
- i.tstx:
- rts pc
-
- i.cmpx:
- mov $areg,r5
- tst (r2)
- bge 1f
- tst (r3)
- bge 1f
- cmp (r2),(r3)
- bgt 4f
- blt 3f
- 1:
- cmp (r2)+,(r3)+
- bgt 3f
- blt 4f
- cmp (r2)+,(r3)+
- bne 1f
- bit $m.ext,fpsr
- beq 2f
- cmp (r2)+,(r3)+
- bne 1f
- cmp (r2)+,(r3)+
- beq 2f
- 1:
- bhi 3f
- 4:
- movb $1,1(r5)
- rts pc
- 3:
- mov $-1,(r5)
- rts pc
- 2:
- clr (r5)
- rts pc
-
- i.ldcyx:
- mov (r3)+,(r2)+
- mov (r3)+,(r2)+
- bit $m.ext,fpsr
- bne 1f
- mov (r3)+,(r2)+
- mov (r3)+,(r2)+
- rts pc
- 1:
- clr (r2)+
- clr (r2)+
- rts pc
-
- i.stcxy:
- mov (r2)+,(r3)+
- mov (r2)+,(r3)+
- bit $m.ext,fpsr
- bne 1f
- clr (r3)+
- clr (r3)+
- 1:
- rts pc
-
- i.ldcjx:
- mov $asign,r0
- mov $1,(r0)+
- mov (r3)+,(r0)+
- bit $m.lngi,fpsr
- beq 1f
- mov (r3)+,(r0)+
- clr (r0)+
- clr (r0)+
- mov $32.-8,(r0)+
- jmp saret
- 1:
- clr (r0)+
- clr (r0)+
- clr (r0)+
- mov $16.-8,(r0)
- jmp saret
-
- i.stcxj:
- mov r3,r5
- mov $asign,r0
- jsr pc,seta
- clr r4
- mov $areg,r0
- mov (r0)+,r1
- mov (r0)+,r2
- mov (r0)+,r3
- mov aexp,r0
- 1:
- cmp r0,$48.-8
- bge 1f
- clc
- ror r1
- ror r2
- ror r3
- inc r0
- br 1b
- 1:
- bgt 7f
- tst r1
- beq 1f
- 7:
- bis $1,r4 / C-bit
- 1:
- bit $m.lngi,fpsr
- beq 1f
- tst asign
- bge 2f
- neg r3
- adc r2
- bcs 2f
- neg r2
- bis $10,r4 / N-bit
- 2:
- mov r2,(r5)
- mov r3,2(r5)
- bis r2,r3
- br 8f
- 1:
- tst r2
- beq 1f
- bis $1,r4 / C-bit
- 1:
- tst asign
- bge 2f
- neg r3
- bis $10,r4 / N-bit
- 2:
- mov r3,(r5)
- 8:
- bne 1f
- bis $4,r4 / Z-bit
- 1:
- bic $17,sps
- bic $17,fpsr
- bis r4,sps
- bis r4,fpsr
- jmp ret
-
- xoflo:
- bis $1,fpsr / set fixed overflow (carry)
- jmp ret
-
- i.ldexp:
- mov $asign,r0
- jsr pc,seta
- mov (r3),aexp
- jsr pc,reta
- jmp sret
-
- i.stexp:
- mov $asign,r0
- jsr pc,seta
- mov aexp,(r3)
- mov r3,r5
- bic $17,sps
- tst (r3)
- bmi 1f
- bne 2f
- bis $4,sps / Z-bit
- br 2f
- 1:
- bis $10,sps / N-bit
- 2:
- jmp sret
-
- i.ldfps:
- mov (r3),fpsr
- jmp ret
-
- i.stfps:
- mov fpsr,(r3)
- jmp ret
-
-