testfp.s 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. .sect .text ; .sect .rom ; .sect .data ; .sect .bss ; .sect .text
  2. ! test for Motorola MC68881 floating point processor instructions
  3. ! compare result of disassembled output with source.
  4. .define _m_a_i_n
  5. _m_a_i_n:
  6. blablabla:
  7. ! dyadic instructions
  8. fadd.l 12(a6),fp0
  9. fadd fp0,fp1
  10. fcmp.l 12(a6),fp0
  11. fcmp fp0,fp1
  12. fdiv.l 12(a6),fp0
  13. fdiv fp0,fp1
  14. fmod.l 12(a6),fp0
  15. fmod fp0,fp1
  16. fmul.l 12(a6),fp0
  17. fmul fp0,fp1
  18. frem.l 12(a6),fp0
  19. frem fp0,fp1
  20. fscale.l 12(a6),fp0
  21. fscale fp0,fp1
  22. fsgldiv.l 12(a6),fp0
  23. fsgldiv fp0,fp1
  24. fsglmul.l 12(a6),fp0
  25. fsglmul fp0,fp1
  26. fsub.l 12(a6),fp0
  27. fsub fp0,fp1
  28. !monadic instructions
  29. fabs.p 12(a6),fp1
  30. fabs.x fp1,fp2
  31. fabs fp1
  32. facos.p 12(a6),fp1
  33. facos.x fp1,fp2
  34. facos fp1
  35. fasin.p 12(a6),fp1
  36. fasin.x fp1,fp2
  37. fasin fp1
  38. fatan.p 12(a6),fp1
  39. fatan.x fp1,fp2
  40. fatan fp1
  41. fatanh.p 12(a6),fp1
  42. fatanh.x fp1,fp2
  43. fatanh fp1
  44. fcos.p 12(a6),fp1
  45. fcos.x fp1,fp2
  46. fcos fp1
  47. fcosh.p 12(a6),fp1
  48. fcosh.x fp1,fp2
  49. fcosh fp1
  50. fetox.p 12(a6),fp1
  51. fetox.x fp1,fp2
  52. fetox fp1
  53. fetoxm1.p 12(a6),fp1
  54. fetoxm1.x fp1,fp2
  55. fetoxm1 fp1
  56. fgetexp.p 12(a6),fp1
  57. fgetexp.x fp1,fp2
  58. fgetexp fp1
  59. fgetman.p 12(a6),fp1
  60. fgetman.x fp1,fp2
  61. fgetman fp1
  62. fint.p 12(a6),fp1
  63. fint.x fp1,fp2
  64. fint fp1
  65. fintrz.p 12(a6),fp1
  66. fintrz.x fp1,fp2
  67. fintrz fp1
  68. flogn.p 12(a6),fp1
  69. flogn.x fp1,fp2
  70. flogn fp1
  71. flognp1.p 12(a6),fp1
  72. flognp1.x fp1,fp2
  73. flognp1 fp1
  74. flog10.p 12(a6),fp1
  75. flog10.x fp1,fp2
  76. flog10 fp1
  77. flog2.p 12(a6),fp1
  78. flog2.x fp1,fp2
  79. flog2 fp1
  80. fneg.p 12(a6),fp1
  81. fneg.x fp1,fp2
  82. fneg fp1
  83. fsin.p 12(a6),fp1
  84. fsin.x fp1,fp2
  85. fsin fp1
  86. fsinh.p 12(a6),fp1
  87. fsinh.x fp1,fp2
  88. fsinh fp1
  89. fsqrt.p 12(a6),fp1
  90. fsqrt.x fp1,fp2
  91. fsqrt fp1
  92. ftan.p 12(a6),fp1
  93. ftan.x fp1,fp2
  94. ftan fp1
  95. ftanh.p 12(a6),fp1
  96. ftanh.x fp1,fp2
  97. ftanh fp1
  98. ftentox.p 12(a6),fp1
  99. ftentox.x fp1,fp2
  100. ftentox fp1
  101. ftwotox.p 12(a6),fp1
  102. ftwotox.x fp1,fp2
  103. ftwotox fp1
  104. !sincos
  105. fsincos.s 12(a6),fp0:fp1
  106. fsincos.x fp2,fp0:fp1
  107. !some moves
  108. fmove.l 12(a6),fp0
  109. fmove.l fp1,12(a6)
  110. fmove.p fp0,12(a6){d0}
  111. fmove.p fp0,12(a6){#4}
  112. fmove.l 12(a6),fpcr
  113. !fmove.l a0,fpcr ! error
  114. fmove.l a0,fpiar
  115. fmovecr #1,fp1
  116. !fmovem.x d1,(a0)+ ! error
  117. fmovem.x d1,-(a0)
  118. fmovem.x fp0-fp3/fp5,-(a0)
  119. !fmovem.x -(a0),fp0-fp3/fp5 ! error
  120. fmovem.x (a0)+,fp0-fp3/fp5
  121. !some branches
  122. fbeq blablabla
  123. fbne blablabla
  124. fbgt blablabla
  125. fbngt blablabla
  126. fbge blablabla
  127. fbnge blablabla
  128. fblt blablabla
  129. fbnlt blablabla
  130. fble blablabla
  131. fbnle blablabla
  132. fbgl blablabla
  133. fbngl blablabla
  134. fbgle blablabla
  135. fbngle blablabla
  136. fbogt blablabla
  137. fbule blablabla
  138. fboge blablabla
  139. fbult blablabla
  140. fbolt blablabla
  141. fbuge blablabla
  142. fbole blablabla
  143. fbugt blablabla
  144. fbogl blablabla
  145. fbueq blablabla
  146. fbor blablabla
  147. fbun blablabla
  148. fbf blablabla
  149. fbt blablabla
  150. fbsf blablabla
  151. fbst blablabla
  152. fbseq blablabla
  153. fbsne blablabla
  154. fdbgl d4,blablabla
  155. !nop
  156. fnop
  157. !fscc
  158. fsult d4
  159. !ftst
  160. ftst.p 12(a6)
  161. ftst fp0
  162. !save/restore
  163. fsave 12(a6)
  164. ! fsave (a5)+ ! error
  165. frestore 12(a6)
  166. ! frestore -(a5) ! error
  167. !trap
  168. ftrapeq
  169. ftrapeq.l #4
  170. ftrapeq.w #4