216 lines
3 KiB
ArmAsm
216 lines
3 KiB
ArmAsm
|
.sect .text ; .sect .rom ; .sect .data ; .sect .bss ; .sect .text
|
||
|
|
||
|
! test for Motorola MC68881 floating point processor instructions
|
||
|
! compare result of disassembled output with source.
|
||
|
|
||
|
.define _m_a_i_n
|
||
|
_m_a_i_n:
|
||
|
blablabla:
|
||
|
! dyadic instructions
|
||
|
fadd.l 12(a6),fp0
|
||
|
fadd fp0,fp1
|
||
|
|
||
|
fcmp.l 12(a6),fp0
|
||
|
fcmp fp0,fp1
|
||
|
|
||
|
fdiv.l 12(a6),fp0
|
||
|
fdiv fp0,fp1
|
||
|
|
||
|
fmod.l 12(a6),fp0
|
||
|
fmod fp0,fp1
|
||
|
|
||
|
fmul.l 12(a6),fp0
|
||
|
fmul fp0,fp1
|
||
|
|
||
|
frem.l 12(a6),fp0
|
||
|
frem fp0,fp1
|
||
|
|
||
|
fscale.l 12(a6),fp0
|
||
|
fscale fp0,fp1
|
||
|
|
||
|
fsgldiv.l 12(a6),fp0
|
||
|
fsgldiv fp0,fp1
|
||
|
|
||
|
fsglmul.l 12(a6),fp0
|
||
|
fsglmul fp0,fp1
|
||
|
|
||
|
fsub.l 12(a6),fp0
|
||
|
fsub fp0,fp1
|
||
|
|
||
|
!monadic instructions
|
||
|
fabs.p 12(a6),fp1
|
||
|
fabs.x fp1,fp2
|
||
|
fabs fp1
|
||
|
|
||
|
facos.p 12(a6),fp1
|
||
|
facos.x fp1,fp2
|
||
|
facos fp1
|
||
|
|
||
|
fasin.p 12(a6),fp1
|
||
|
fasin.x fp1,fp2
|
||
|
fasin fp1
|
||
|
|
||
|
fatan.p 12(a6),fp1
|
||
|
fatan.x fp1,fp2
|
||
|
fatan fp1
|
||
|
|
||
|
fatanh.p 12(a6),fp1
|
||
|
fatanh.x fp1,fp2
|
||
|
fatanh fp1
|
||
|
|
||
|
fcos.p 12(a6),fp1
|
||
|
fcos.x fp1,fp2
|
||
|
fcos fp1
|
||
|
|
||
|
fcosh.p 12(a6),fp1
|
||
|
fcosh.x fp1,fp2
|
||
|
fcosh fp1
|
||
|
|
||
|
fetox.p 12(a6),fp1
|
||
|
fetox.x fp1,fp2
|
||
|
fetox fp1
|
||
|
|
||
|
fetoxm1.p 12(a6),fp1
|
||
|
fetoxm1.x fp1,fp2
|
||
|
fetoxm1 fp1
|
||
|
|
||
|
fgetexp.p 12(a6),fp1
|
||
|
fgetexp.x fp1,fp2
|
||
|
fgetexp fp1
|
||
|
|
||
|
fgetman.p 12(a6),fp1
|
||
|
fgetman.x fp1,fp2
|
||
|
fgetman fp1
|
||
|
|
||
|
fint.p 12(a6),fp1
|
||
|
fint.x fp1,fp2
|
||
|
fint fp1
|
||
|
|
||
|
fintrz.p 12(a6),fp1
|
||
|
fintrz.x fp1,fp2
|
||
|
fintrz fp1
|
||
|
|
||
|
flogn.p 12(a6),fp1
|
||
|
flogn.x fp1,fp2
|
||
|
flogn fp1
|
||
|
|
||
|
flognp1.p 12(a6),fp1
|
||
|
flognp1.x fp1,fp2
|
||
|
flognp1 fp1
|
||
|
|
||
|
flog10.p 12(a6),fp1
|
||
|
flog10.x fp1,fp2
|
||
|
flog10 fp1
|
||
|
|
||
|
flog2.p 12(a6),fp1
|
||
|
flog2.x fp1,fp2
|
||
|
flog2 fp1
|
||
|
|
||
|
fneg.p 12(a6),fp1
|
||
|
fneg.x fp1,fp2
|
||
|
fneg fp1
|
||
|
|
||
|
fsin.p 12(a6),fp1
|
||
|
fsin.x fp1,fp2
|
||
|
fsin fp1
|
||
|
|
||
|
fsinh.p 12(a6),fp1
|
||
|
fsinh.x fp1,fp2
|
||
|
fsinh fp1
|
||
|
|
||
|
fsqrt.p 12(a6),fp1
|
||
|
fsqrt.x fp1,fp2
|
||
|
fsqrt fp1
|
||
|
|
||
|
ftan.p 12(a6),fp1
|
||
|
ftan.x fp1,fp2
|
||
|
ftan fp1
|
||
|
|
||
|
ftanh.p 12(a6),fp1
|
||
|
ftanh.x fp1,fp2
|
||
|
ftanh fp1
|
||
|
|
||
|
ftentox.p 12(a6),fp1
|
||
|
ftentox.x fp1,fp2
|
||
|
ftentox fp1
|
||
|
|
||
|
ftwotox.p 12(a6),fp1
|
||
|
ftwotox.x fp1,fp2
|
||
|
ftwotox fp1
|
||
|
|
||
|
!sincos
|
||
|
fsincos.s 12(a6),fp0:fp1
|
||
|
fsincos.x fp2,fp0:fp1
|
||
|
|
||
|
!some moves
|
||
|
fmove.l 12(a6),fp0
|
||
|
fmove.l fp1,12(a6)
|
||
|
fmove.p fp0,12(a6){d0}
|
||
|
fmove.p fp0,12(a6){#4}
|
||
|
fmove.l 12(a6),fpcr
|
||
|
!fmove.l a0,fpcr ! error
|
||
|
fmove.l a0,fpiar
|
||
|
fmovecr #1,fp1
|
||
|
!fmovem.x d1,(a0)+ ! error
|
||
|
fmovem.x d1,-(a0)
|
||
|
fmovem.x fp0-fp3/fp5,-(a0)
|
||
|
!fmovem.x -(a0),fp0-fp3/fp5 ! error
|
||
|
fmovem.x (a0)+,fp0-fp3/fp5
|
||
|
|
||
|
!some branches
|
||
|
fbeq blablabla
|
||
|
fbne blablabla
|
||
|
fbgt blablabla
|
||
|
fbngt blablabla
|
||
|
fbge blablabla
|
||
|
fbnge blablabla
|
||
|
fblt blablabla
|
||
|
fbnlt blablabla
|
||
|
fble blablabla
|
||
|
fbnle blablabla
|
||
|
fbgl blablabla
|
||
|
fbngl blablabla
|
||
|
fbgle blablabla
|
||
|
fbngle blablabla
|
||
|
fbogt blablabla
|
||
|
fbule blablabla
|
||
|
fboge blablabla
|
||
|
fbult blablabla
|
||
|
fbolt blablabla
|
||
|
fbuge blablabla
|
||
|
fbole blablabla
|
||
|
fbugt blablabla
|
||
|
fbogl blablabla
|
||
|
fbueq blablabla
|
||
|
fbor blablabla
|
||
|
fbun blablabla
|
||
|
fbf blablabla
|
||
|
fbt blablabla
|
||
|
fbsf blablabla
|
||
|
fbst blablabla
|
||
|
fbseq blablabla
|
||
|
fbsne blablabla
|
||
|
|
||
|
fdbgl d4,blablabla
|
||
|
|
||
|
!nop
|
||
|
fnop
|
||
|
|
||
|
!fscc
|
||
|
fsult d4
|
||
|
|
||
|
!ftst
|
||
|
ftst.p 12(a6)
|
||
|
ftst fp0
|
||
|
|
||
|
!save/restore
|
||
|
fsave 12(a6)
|
||
|
! fsave (a5)+ ! error
|
||
|
frestore 12(a6)
|
||
|
! frestore -(a5) ! error
|
||
|
|
||
|
!trap
|
||
|
ftrapeq
|
||
|
ftrapeq.l #4
|
||
|
ftrapeq.w #4
|