insn_ARITH_R.awl 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670
  1. // Precalculate constants
  2. // MD 0 = PI
  3. // MD 4 = -PI
  4. // MD 8 = PI/2
  5. // MD 12 = -PI/2
  6. // MD 16 = PI/4
  7. // MD 20 = -PI/4
  8. L __CNST_PI
  9. T MD 0
  10. NEGR
  11. T MD 4
  12. L __CNST_PI
  13. L 2.0
  14. /R
  15. T MD 8
  16. NEGR
  17. T MD 12
  18. L __CNST_PI
  19. L 4.0
  20. /R
  21. T MD 16
  22. NEGR
  23. T MD 20
  24. L -0.0
  25. __ASSERT== __ACCU 1, DW#16#80000000
  26. // Run tests
  27. __STWRST
  28. L 1.0
  29. L 1.0
  30. +R
  31. __ASSERT== __ACCU 1, 2.0
  32. __ASSERT== __ACCU 1, DW#16#40000000
  33. __ASSERT== __STW A1, 1
  34. __ASSERT== __STW A0, 0
  35. __ASSERT== __STW OV, 0
  36. __ASSERT== __STW OS, 0
  37. __STWRST
  38. L 1.0
  39. L -1.0
  40. +R
  41. __ASSERT== __ACCU 1, 0.0
  42. __ASSERT== __ACCU 1, 0
  43. __ASSERT== __STW A1, 0
  44. __ASSERT== __STW A0, 0
  45. __ASSERT== __STW OV, 0
  46. __ASSERT== __STW OS, 0
  47. __STWRST
  48. L -1.0
  49. L -1.0
  50. +R
  51. __ASSERT== __ACCU 1, -2.0
  52. __ASSERT== __ACCU 1, DW#16#C0000000
  53. __ASSERT== __STW A1, 0
  54. __ASSERT== __STW A0, 1
  55. __ASSERT== __STW OV, 0
  56. __ASSERT== __STW OS, 0
  57. __STWRST
  58. L __CNST_PINF
  59. L 1.0
  60. +R
  61. __ASSERT== __ACCU 1, __CNST_PINF
  62. __ASSERT== __STW A1, 1
  63. __ASSERT== __STW A0, 0
  64. __ASSERT== __STW OV, 1
  65. __ASSERT== __STW OS, 1
  66. __STWRST
  67. L 1.0
  68. L __CNST_PINF
  69. +R
  70. __ASSERT== __ACCU 1, __CNST_PINF
  71. __ASSERT== __STW A1, 1
  72. __ASSERT== __STW A0, 0
  73. __ASSERT== __STW OV, 1
  74. __ASSERT== __STW OS, 1
  75. __STWRST
  76. L __CNST_PINF
  77. L -1.0
  78. +R
  79. __ASSERT== __ACCU 1, __CNST_PINF
  80. __ASSERT== __STW A1, 1
  81. __ASSERT== __STW A0, 0
  82. __ASSERT== __STW OV, 1
  83. __ASSERT== __STW OS, 1
  84. __STWRST
  85. L -1.0
  86. L __CNST_PINF
  87. +R
  88. __ASSERT== __ACCU 1, __CNST_PINF
  89. __ASSERT== __STW A1, 1
  90. __ASSERT== __STW A0, 0
  91. __ASSERT== __STW OV, 1
  92. __ASSERT== __STW OS, 1
  93. __STWRST
  94. L __CNST_NINF
  95. L 1.0
  96. +R
  97. __ASSERT== __ACCU 1, __CNST_NINF
  98. __ASSERT== __STW A1, 0
  99. __ASSERT== __STW A0, 1
  100. __ASSERT== __STW OV, 1
  101. __ASSERT== __STW OS, 1
  102. __STWRST
  103. L 1.0
  104. L __CNST_NINF
  105. +R
  106. __ASSERT== __ACCU 1, __CNST_NINF
  107. __ASSERT== __STW A1, 0
  108. __ASSERT== __STW A0, 1
  109. __ASSERT== __STW OV, 1
  110. __ASSERT== __STW OS, 1
  111. __STWRST
  112. L __CNST_NINF
  113. L -1.0
  114. +R
  115. __ASSERT== __ACCU 1, __CNST_NINF
  116. __ASSERT== __STW A1, 0
  117. __ASSERT== __STW A0, 1
  118. __ASSERT== __STW OV, 1
  119. __ASSERT== __STW OS, 1
  120. __STWRST
  121. L -1.0
  122. L __CNST_NINF
  123. +R
  124. __ASSERT== __ACCU 1, __CNST_NINF
  125. __ASSERT== __STW A1, 0
  126. __ASSERT== __STW A0, 1
  127. __ASSERT== __STW OV, 1
  128. __ASSERT== __STW OS, 1
  129. __STWRST
  130. L __CNST_PNAN
  131. L 1.0
  132. +R
  133. __ASSERT== __ACCU 1, __CNST_NNAN
  134. __ASSERT== __STW A1, 1
  135. __ASSERT== __STW A0, 1
  136. __ASSERT== __STW OV, 1
  137. __ASSERT== __STW OS, 1
  138. __STWRST
  139. L 1.0
  140. L __CNST_PNAN
  141. +R
  142. __ASSERT== __ACCU 1, __CNST_NNAN
  143. __ASSERT== __STW A1, 1
  144. __ASSERT== __STW A0, 1
  145. __ASSERT== __STW OV, 1
  146. __ASSERT== __STW OS, 1
  147. __STWRST
  148. L __CNST_PNAN
  149. L -1.0
  150. +R
  151. __ASSERT== __ACCU 1, __CNST_NNAN
  152. __ASSERT== __STW A1, 1
  153. __ASSERT== __STW A0, 1
  154. __ASSERT== __STW OV, 1
  155. __ASSERT== __STW OS, 1
  156. __STWRST
  157. L -1.0
  158. L __CNST_PNAN
  159. +R
  160. __ASSERT== __ACCU 1, __CNST_NNAN
  161. __ASSERT== __STW A1, 1
  162. __ASSERT== __STW A0, 1
  163. __ASSERT== __STW OV, 1
  164. __ASSERT== __STW OS, 1
  165. __STWRST
  166. L __CNST_NNAN
  167. L 1.0
  168. +R
  169. __ASSERT== __ACCU 1, __CNST_NNAN
  170. __ASSERT== __STW A1, 1
  171. __ASSERT== __STW A0, 1
  172. __ASSERT== __STW OV, 1
  173. __ASSERT== __STW OS, 1
  174. __STWRST
  175. L 1.0
  176. L __CNST_NNAN
  177. +R
  178. __ASSERT== __ACCU 1, __CNST_NNAN
  179. __ASSERT== __STW A1, 1
  180. __ASSERT== __STW A0, 1
  181. __ASSERT== __STW OV, 1
  182. __ASSERT== __STW OS, 1
  183. __STWRST
  184. L __CNST_NNAN
  185. L -1.0
  186. +R
  187. __ASSERT== __ACCU 1, __CNST_NNAN
  188. __ASSERT== __STW A1, 1
  189. __ASSERT== __STW A0, 1
  190. __ASSERT== __STW OV, 1
  191. __ASSERT== __STW OS, 1
  192. __STWRST
  193. L -1.0
  194. L __CNST_NNAN
  195. +R
  196. __ASSERT== __ACCU 1, __CNST_NNAN
  197. __ASSERT== __STW A1, 1
  198. __ASSERT== __STW A0, 1
  199. __ASSERT== __STW OV, 1
  200. __ASSERT== __STW OS, 1
  201. __STWRST
  202. L 1.0
  203. L 1.0
  204. -R
  205. __ASSERT== __ACCU 1, 0.0
  206. __ASSERT== __ACCU 1, DW#16#00000000
  207. __ASSERT== __STW A1, 0
  208. __ASSERT== __STW A0, 0
  209. __ASSERT== __STW OV, 0
  210. __ASSERT== __STW OS, 0
  211. __STWRST
  212. L 1.0
  213. L -1.0
  214. -R
  215. __ASSERT== __ACCU 1, 2.0
  216. __ASSERT== __ACCU 1, DW#16#40000000
  217. __ASSERT== __STW A1, 1
  218. __ASSERT== __STW A0, 0
  219. __ASSERT== __STW OV, 0
  220. __ASSERT== __STW OS, 0
  221. __STWRST
  222. L -1.0
  223. L -1.0
  224. -R
  225. __ASSERT== __ACCU 1, 0.0
  226. __ASSERT== __ACCU 1, DW#16#00000000
  227. __ASSERT== __STW A1, 0
  228. __ASSERT== __STW A0, 0
  229. __ASSERT== __STW OV, 0
  230. __ASSERT== __STW OS, 0
  231. __STWRST
  232. L __CNST_PINF
  233. L 1.0
  234. -R
  235. __ASSERT== __ACCU 1, __CNST_PINF
  236. __ASSERT== __STW A1, 1
  237. __ASSERT== __STW A0, 0
  238. __ASSERT== __STW OV, 1
  239. __ASSERT== __STW OS, 1
  240. __STWRST
  241. L 1.0
  242. L __CNST_PINF
  243. -R
  244. __ASSERT== __ACCU 1, __CNST_NINF
  245. __ASSERT== __STW A1, 0
  246. __ASSERT== __STW A0, 1
  247. __ASSERT== __STW OV, 1
  248. __ASSERT== __STW OS, 1
  249. __STWRST
  250. L __CNST_PINF
  251. L -1.0
  252. -R
  253. __ASSERT== __ACCU 1, __CNST_PINF
  254. __ASSERT== __STW A1, 1
  255. __ASSERT== __STW A0, 0
  256. __ASSERT== __STW OV, 1
  257. __ASSERT== __STW OS, 1
  258. __STWRST
  259. L -1.0
  260. L __CNST_PINF
  261. -R
  262. __ASSERT== __ACCU 1, __CNST_NINF
  263. __ASSERT== __STW A1, 0
  264. __ASSERT== __STW A0, 1
  265. __ASSERT== __STW OV, 1
  266. __ASSERT== __STW OS, 1
  267. __STWRST
  268. L __CNST_NINF
  269. L 1.0
  270. -R
  271. __ASSERT== __ACCU 1, __CNST_NINF
  272. __ASSERT== __STW A1, 0
  273. __ASSERT== __STW A0, 1
  274. __ASSERT== __STW OV, 1
  275. __ASSERT== __STW OS, 1
  276. __STWRST
  277. L 1.0
  278. L __CNST_NINF
  279. -R
  280. __ASSERT== __ACCU 1, __CNST_PINF
  281. __ASSERT== __STW A1, 1
  282. __ASSERT== __STW A0, 0
  283. __ASSERT== __STW OV, 1
  284. __ASSERT== __STW OS, 1
  285. __STWRST
  286. L __CNST_NINF
  287. L -1.0
  288. -R
  289. __ASSERT== __ACCU 1, __CNST_NINF
  290. __ASSERT== __STW A1, 0
  291. __ASSERT== __STW A0, 1
  292. __ASSERT== __STW OV, 1
  293. __ASSERT== __STW OS, 1
  294. __STWRST
  295. L -1.0
  296. L __CNST_NINF
  297. -R
  298. __ASSERT== __ACCU 1, __CNST_PINF
  299. __ASSERT== __STW A1, 1
  300. __ASSERT== __STW A0, 0
  301. __ASSERT== __STW OV, 1
  302. __ASSERT== __STW OS, 1
  303. __STWRST
  304. L __CNST_PNAN
  305. L 1.0
  306. -R
  307. __ASSERT== __ACCU 1, __CNST_NNAN
  308. __ASSERT== __STW A1, 1
  309. __ASSERT== __STW A0, 1
  310. __ASSERT== __STW OV, 1
  311. __ASSERT== __STW OS, 1
  312. __STWRST
  313. L 1.0
  314. L __CNST_PNAN
  315. -R
  316. __ASSERT== __ACCU 1, __CNST_NNAN
  317. __ASSERT== __STW A1, 1
  318. __ASSERT== __STW A0, 1
  319. __ASSERT== __STW OV, 1
  320. __ASSERT== __STW OS, 1
  321. __STWRST
  322. L __CNST_PNAN
  323. L -1.0
  324. -R
  325. __ASSERT== __ACCU 1, __CNST_NNAN
  326. __ASSERT== __STW A1, 1
  327. __ASSERT== __STW A0, 1
  328. __ASSERT== __STW OV, 1
  329. __ASSERT== __STW OS, 1
  330. __STWRST
  331. L -1.0
  332. L __CNST_PNAN
  333. -R
  334. __ASSERT== __ACCU 1, __CNST_NNAN
  335. __ASSERT== __STW A1, 1
  336. __ASSERT== __STW A0, 1
  337. __ASSERT== __STW OV, 1
  338. __ASSERT== __STW OS, 1
  339. __STWRST
  340. L __CNST_NNAN
  341. L 1.0
  342. -R
  343. __ASSERT== __ACCU 1, __CNST_NNAN
  344. __ASSERT== __STW A1, 1
  345. __ASSERT== __STW A0, 1
  346. __ASSERT== __STW OV, 1
  347. __ASSERT== __STW OS, 1
  348. __STWRST
  349. L 1.0
  350. L __CNST_NNAN
  351. -R
  352. __ASSERT== __ACCU 1, __CNST_NNAN
  353. __ASSERT== __STW A1, 1
  354. __ASSERT== __STW A0, 1
  355. __ASSERT== __STW OV, 1
  356. __ASSERT== __STW OS, 1
  357. __STWRST
  358. L __CNST_NNAN
  359. L -1.0
  360. -R
  361. __ASSERT== __ACCU 1, __CNST_NNAN
  362. __ASSERT== __STW A1, 1
  363. __ASSERT== __STW A0, 1
  364. __ASSERT== __STW OV, 1
  365. __ASSERT== __STW OS, 1
  366. __STWRST
  367. L -1.0
  368. L __CNST_NNAN
  369. -R
  370. __ASSERT== __ACCU 1, __CNST_NNAN
  371. __ASSERT== __STW A1, 1
  372. __ASSERT== __STW A0, 1
  373. __ASSERT== __STW OV, 1
  374. __ASSERT== __STW OS, 1
  375. __STWRST
  376. L 3.0
  377. L 2.0
  378. *R
  379. __ASSERT== __ACCU 1, 6.0
  380. __ASSERT== __ACCU 1, DW#16#40C00000
  381. __ASSERT== __STW A1, 1
  382. __ASSERT== __STW A0, 0
  383. __ASSERT== __STW OV, 0
  384. __ASSERT== __STW OS, 0
  385. __STWRST
  386. L 3.0
  387. L -2.0
  388. *R
  389. __ASSERT== __ACCU 1, -6.0
  390. __ASSERT== __ACCU 1, DW#16#C0C00000
  391. __ASSERT== __STW A1, 0
  392. __ASSERT== __STW A0, 1
  393. __ASSERT== __STW OV, 0
  394. __ASSERT== __STW OS, 0
  395. __STWRST
  396. L -3.0
  397. L -2.0
  398. *R
  399. __ASSERT== __ACCU 1, 6.0
  400. __ASSERT== __ACCU 1, DW#16#40C00000
  401. __ASSERT== __STW A1, 1
  402. __ASSERT== __STW A0, 0
  403. __ASSERT== __STW OV, 0
  404. __ASSERT== __STW OS, 0
  405. __STWRST
  406. L __CNST_PINF
  407. L 1.0
  408. *R
  409. __ASSERT== __ACCU 1, __CNST_PINF
  410. __ASSERT== __STW A1, 1
  411. __ASSERT== __STW A0, 0
  412. __ASSERT== __STW OV, 1
  413. __ASSERT== __STW OS, 1
  414. __STWRST
  415. L 1.0
  416. L __CNST_PINF
  417. *R
  418. __ASSERT== __ACCU 1, 1.0
  419. __ASSERT== __STW A1, 1
  420. __ASSERT== __STW A0, 0
  421. __ASSERT== __STW OV, 1
  422. __ASSERT== __STW OS, 1
  423. __STWRST
  424. L __CNST_PINF
  425. L -1.0
  426. *R
  427. __ASSERT== __ACCU 1, __CNST_NINF
  428. __ASSERT== __STW A1, 0
  429. __ASSERT== __STW A0, 1
  430. __ASSERT== __STW OV, 1
  431. __ASSERT== __STW OS, 1
  432. __STWRST
  433. L -1.0
  434. L __CNST_PINF
  435. *R
  436. __ASSERT== __ACCU 1, -1.0
  437. __ASSERT== __STW A1, 0
  438. __ASSERT== __STW A0, 1
  439. __ASSERT== __STW OV, 1
  440. __ASSERT== __STW OS, 1
  441. __STWRST
  442. L __CNST_NINF
  443. L 1.0
  444. *R
  445. __ASSERT== __ACCU 1, __CNST_NINF
  446. __ASSERT== __STW A1, 0
  447. __ASSERT== __STW A0, 1
  448. __ASSERT== __STW OV, 1
  449. __ASSERT== __STW OS, 1
  450. __STWRST
  451. L 1.0
  452. L __CNST_NINF
  453. *R
  454. __ASSERT== __ACCU 1, -1.0
  455. __ASSERT== __STW A1, 0
  456. __ASSERT== __STW A0, 1
  457. __ASSERT== __STW OV, 1
  458. __ASSERT== __STW OS, 1
  459. __STWRST
  460. L __CNST_NINF
  461. L -1.0
  462. *R
  463. __ASSERT== __ACCU 1, __CNST_PINF
  464. __ASSERT== __STW A1, 1
  465. __ASSERT== __STW A0, 0
  466. __ASSERT== __STW OV, 1
  467. __ASSERT== __STW OS, 1
  468. __STWRST
  469. L -1.0
  470. L __CNST_NINF
  471. *R
  472. __ASSERT== __ACCU 1, 1.0
  473. __ASSERT== __STW A1, 1
  474. __ASSERT== __STW A0, 0
  475. __ASSERT== __STW OV, 1
  476. __ASSERT== __STW OS, 1
  477. __STWRST
  478. L __CNST_PNAN
  479. L 1.0
  480. *R
  481. __ASSERT== __ACCU 1, __CNST_NNAN
  482. __ASSERT== __STW A1, 1
  483. __ASSERT== __STW A0, 1
  484. __ASSERT== __STW OV, 1
  485. __ASSERT== __STW OS, 1
  486. __STWRST
  487. L 1.0
  488. L __CNST_PNAN
  489. *R
  490. __ASSERT== __ACCU 1, __CNST_NNAN
  491. __ASSERT== __STW A1, 1
  492. __ASSERT== __STW A0, 1
  493. __ASSERT== __STW OV, 1
  494. __ASSERT== __STW OS, 1
  495. __STWRST
  496. L __CNST_PNAN
  497. L -1.0
  498. *R
  499. __ASSERT== __ACCU 1, __CNST_NNAN
  500. __ASSERT== __STW A1, 1
  501. __ASSERT== __STW A0, 1
  502. __ASSERT== __STW OV, 1
  503. __ASSERT== __STW OS, 1
  504. __STWRST
  505. L -1.0
  506. L __CNST_PNAN
  507. *R
  508. __ASSERT== __ACCU 1, __CNST_NNAN
  509. __ASSERT== __STW A1, 1
  510. __ASSERT== __STW A0, 1
  511. __ASSERT== __STW OV, 1
  512. __ASSERT== __STW OS, 1
  513. __STWRST
  514. L __CNST_NNAN
  515. L 1.0
  516. *R
  517. __ASSERT== __ACCU 1, __CNST_NNAN
  518. __ASSERT== __STW A1, 1
  519. __ASSERT== __STW A0, 1
  520. __ASSERT== __STW OV, 1
  521. __ASSERT== __STW OS, 1
  522. __STWRST
  523. L 1.0
  524. L __CNST_NNAN
  525. *R
  526. __ASSERT== __ACCU 1, __CNST_NNAN
  527. __ASSERT== __STW A1, 1
  528. __ASSERT== __STW A0, 1
  529. __ASSERT== __STW OV, 1
  530. __ASSERT== __STW OS, 1
  531. __STWRST
  532. L __CNST_NNAN
  533. L -1.0
  534. *R
  535. __ASSERT== __ACCU 1, __CNST_NNAN
  536. __ASSERT== __STW A1, 1
  537. __ASSERT== __STW A0, 1
  538. __ASSERT== __STW OV, 1
  539. __ASSERT== __STW OS, 1
  540. __STWRST
  541. L -1.0
  542. L __CNST_NNAN
  543. *R
  544. __ASSERT== __ACCU 1, __CNST_NNAN
  545. __ASSERT== __STW A1, 1
  546. __ASSERT== __STW A0, 1
  547. __ASSERT== __STW OV, 1
  548. __ASSERT== __STW OS, 1
  549. // Test: Inf * 0.0 = NaN
  550. __STWRST
  551. L __CNST_PINF
  552. L 0.0
  553. *R
  554. __ASSERT== __ACCU 1, __CNST_NNAN
  555. __ASSERT== __STW A1, 1
  556. __ASSERT== __STW A0, 1
  557. __ASSERT== __STW OV, 1
  558. __ASSERT== __STW OS, 1
  559. // Test: -Inf * 0.0 = NaN
  560. __STWRST
  561. L __CNST_NINF
  562. L 0.0
  563. *R
  564. __ASSERT== __ACCU 1, __CNST_NNAN
  565. __ASSERT== __STW A1, 1
  566. __ASSERT== __STW A0, 1
  567. __ASSERT== __STW OV, 1
  568. __ASSERT== __STW OS, 1
  569. // Test: 0.0 * Inf = NaN
  570. __STWRST
  571. L 0.0
  572. L __CNST_PINF
  573. *R
  574. __ASSERT== __ACCU 1, __CNST_NNAN
  575. __ASSERT== __STW A1, 1
  576. __ASSERT== __STW A0, 1
  577. __ASSERT== __STW OV, 1
  578. __ASSERT== __STW OS, 1
  579. // Test: 0.0 * -Inf = NaN
  580. __STWRST
  581. L 0.0
  582. L __CNST_NINF
  583. *R
  584. __ASSERT== __ACCU 1, __CNST_NNAN
  585. __ASSERT== __STW A1, 1
  586. __ASSERT== __STW A0, 1
  587. __ASSERT== __STW OV, 1
  588. __ASSERT== __STW OS, 1
  589. // Test: Inf * -0.0 = NaN
  590. __STWRST
  591. L __CNST_PINF
  592. L -0.0
  593. *R
  594. __ASSERT== __ACCU 1, __CNST_NNAN
  595. __ASSERT== __STW A1, 1
  596. __ASSERT== __STW A0, 1
  597. __ASSERT== __STW OV, 1
  598. __ASSERT== __STW OS, 1
  599. // Test: -Inf * -0.0 = NaN
  600. __STWRST
  601. L __CNST_NINF
  602. L -0.0
  603. *R
  604. __ASSERT== __ACCU 1, __CNST_NNAN
  605. __ASSERT== __STW A1, 1
  606. __ASSERT== __STW A0, 1
  607. __ASSERT== __STW OV, 1
  608. __ASSERT== __STW OS, 1
  609. // Test: -0.0 * Inf = NaN
  610. __STWRST
  611. L -0.0
  612. L __CNST_PINF
  613. *R
  614. __ASSERT== __ACCU 1, __CNST_NNAN
  615. __ASSERT== __STW A1, 1
  616. __ASSERT== __STW A0, 1
  617. __ASSERT== __STW OV, 1
  618. __ASSERT== __STW OS, 1
  619. // Test: -0.0 * -Inf = NaN
  620. __STWRST
  621. L -0.0
  622. L __CNST_NINF
  623. *R
  624. __ASSERT== __ACCU 1, __CNST_NNAN
  625. __ASSERT== __STW A1, 1
  626. __ASSERT== __STW A0, 1
  627. __ASSERT== __STW OV, 1
  628. __ASSERT== __STW OS, 1
  629. __STWRST
  630. L 3.0
  631. L 2.0
  632. /R
  633. __ASSERT== __ACCU 1, 1.5
  634. __ASSERT== __ACCU 1, DW#16#3FC00000
  635. __ASSERT== __STW A1, 1
  636. __ASSERT== __STW A0, 0
  637. __ASSERT== __STW OV, 0
  638. __ASSERT== __STW OS, 0
  639. __STWRST
  640. L 3.0
  641. L -2.0
  642. /R
  643. __ASSERT== __ACCU 1, -1.5
  644. __ASSERT== __ACCU 1, DW#16#BFC00000
  645. __ASSERT== __STW A1, 0
  646. __ASSERT== __STW A0, 1
  647. __ASSERT== __STW OV, 0
  648. __ASSERT== __STW OS, 0
  649. __STWRST
  650. L -3.0
  651. L -2.0
  652. /R
  653. __ASSERT== __ACCU 1, 1.5
  654. __ASSERT== __ACCU 1, DW#16#3FC00000
  655. __ASSERT== __STW A1, 1
  656. __ASSERT== __STW A0, 0
  657. __ASSERT== __STW OV, 0
  658. __ASSERT== __STW OS, 0
  659. __STWRST
  660. L __CNST_PINF
  661. L 1.0
  662. /R
  663. __ASSERT== __ACCU 1, __CNST_PINF
  664. __ASSERT== __STW A1, 1
  665. __ASSERT== __STW A0, 0
  666. __ASSERT== __STW OV, 1
  667. __ASSERT== __STW OS, 1
  668. __STWRST
  669. L 1.0
  670. L __CNST_PINF
  671. /R
  672. __ASSERT== __ACCU 1, 0.0
  673. __ASSERT== __STW A1, 0
  674. __ASSERT== __STW A0, 0
  675. __ASSERT== __STW OV, 0
  676. __ASSERT== __STW OS, 0
  677. __STWRST
  678. L __CNST_PINF
  679. L -1.0
  680. /R
  681. __ASSERT== __ACCU 1, __CNST_NINF
  682. __ASSERT== __STW A1, 0
  683. __ASSERT== __STW A0, 1
  684. __ASSERT== __STW OV, 1
  685. __ASSERT== __STW OS, 1
  686. __STWRST
  687. L -1.0
  688. L __CNST_PINF
  689. /R
  690. __ASSERT== __ACCU 1, 0.0
  691. __ASSERT== __STW A1, 0
  692. __ASSERT== __STW A0, 0
  693. __ASSERT== __STW OV, 0
  694. __ASSERT== __STW OS, 0
  695. __STWRST
  696. L __CNST_NINF
  697. L 1.0
  698. /R
  699. __ASSERT== __ACCU 1, __CNST_NINF
  700. __ASSERT== __STW A1, 0
  701. __ASSERT== __STW A0, 1
  702. __ASSERT== __STW OV, 1
  703. __ASSERT== __STW OS, 1
  704. __STWRST
  705. L 1.0
  706. L __CNST_NINF
  707. /R
  708. __ASSERT== __ACCU 1, 0.0
  709. __ASSERT== __STW A1, 0
  710. __ASSERT== __STW A0, 0
  711. __ASSERT== __STW OV, 0
  712. __ASSERT== __STW OS, 0
  713. __STWRST
  714. L __CNST_NINF
  715. L -1.0
  716. /R
  717. __ASSERT== __ACCU 1, __CNST_PINF
  718. __ASSERT== __STW A1, 1
  719. __ASSERT== __STW A0, 0
  720. __ASSERT== __STW OV, 1
  721. __ASSERT== __STW OS, 1
  722. __STWRST
  723. L -1.0
  724. L __CNST_NINF
  725. /R
  726. __ASSERT== __ACCU 1, 0.0
  727. __ASSERT== __STW A1, 0
  728. __ASSERT== __STW A0, 0
  729. __ASSERT== __STW OV, 0
  730. __ASSERT== __STW OS, 0
  731. __STWRST
  732. L __CNST_PNAN
  733. L 1.0
  734. /R
  735. __ASSERT== __ACCU 1, __CNST_NNAN
  736. __ASSERT== __STW A1, 1
  737. __ASSERT== __STW A0, 1
  738. __ASSERT== __STW OV, 1
  739. __ASSERT== __STW OS, 1
  740. __STWRST
  741. L 1.0
  742. L __CNST_PNAN
  743. /R
  744. __ASSERT== __ACCU 1, __CNST_NNAN
  745. __ASSERT== __STW A1, 1
  746. __ASSERT== __STW A0, 1
  747. __ASSERT== __STW OV, 1
  748. __ASSERT== __STW OS, 1
  749. __STWRST
  750. L __CNST_PNAN
  751. L -1.0
  752. /R
  753. __ASSERT== __ACCU 1, __CNST_NNAN
  754. __ASSERT== __STW A1, 1
  755. __ASSERT== __STW A0, 1
  756. __ASSERT== __STW OV, 1
  757. __ASSERT== __STW OS, 1
  758. __STWRST
  759. L -1.0
  760. L __CNST_PNAN
  761. /R
  762. __ASSERT== __ACCU 1, __CNST_NNAN
  763. __ASSERT== __STW A1, 1
  764. __ASSERT== __STW A0, 1
  765. __ASSERT== __STW OV, 1
  766. __ASSERT== __STW OS, 1
  767. __STWRST
  768. L __CNST_NNAN
  769. L 1.0
  770. /R
  771. __ASSERT== __ACCU 1, __CNST_NNAN
  772. __ASSERT== __STW A1, 1
  773. __ASSERT== __STW A0, 1
  774. __ASSERT== __STW OV, 1
  775. __ASSERT== __STW OS, 1
  776. __STWRST
  777. L 1.0
  778. L __CNST_NNAN
  779. /R
  780. __ASSERT== __ACCU 1, __CNST_NNAN
  781. __ASSERT== __STW A1, 1
  782. __ASSERT== __STW A0, 1
  783. __ASSERT== __STW OV, 1
  784. __ASSERT== __STW OS, 1
  785. __STWRST
  786. L __CNST_NNAN
  787. L -1.0
  788. /R
  789. __ASSERT== __ACCU 1, __CNST_NNAN
  790. __ASSERT== __STW A1, 1
  791. __ASSERT== __STW A0, 1
  792. __ASSERT== __STW OV, 1
  793. __ASSERT== __STW OS, 1
  794. __STWRST
  795. L -1.0
  796. L __CNST_NNAN
  797. /R
  798. __ASSERT== __ACCU 1, __CNST_NNAN
  799. __ASSERT== __STW A1, 1
  800. __ASSERT== __STW A0, 1
  801. __ASSERT== __STW OV, 1
  802. __ASSERT== __STW OS, 1
  803. // Test: denormalized
  804. __STWRST
  805. L DW#16#00000001
  806. L 2.0
  807. /R
  808. __ASSERT== __ACCU 1, 0.0
  809. __ASSERT== __STW A1, 0
  810. __ASSERT== __STW A0, 0
  811. __ASSERT== __STW OV, 1
  812. __ASSERT== __STW OS, 1
  813. // Test: pos / 0.0 = +inf
  814. __STWRST
  815. L 1.5
  816. L 0.0
  817. /R
  818. __ASSERT== __ACCU 1, __CNST_PINF
  819. __ASSERT== __STW A1, 1
  820. __ASSERT== __STW A0, 0
  821. __ASSERT== __STW OV, 1
  822. __ASSERT== __STW OS, 1
  823. // Test: neg / 0.0 = -inf
  824. __STWRST
  825. L -1.5
  826. L 0.0
  827. /R
  828. __ASSERT== __ACCU 1, __CNST_NINF
  829. __ASSERT== __STW A1, 0
  830. __ASSERT== __STW A0, 1
  831. __ASSERT== __STW OV, 1
  832. __ASSERT== __STW OS, 1
  833. // Test: -(0.0)
  834. __STWRST
  835. L 0.0
  836. NEGR
  837. __ASSERT== __ACCU 1, -0.0
  838. __ASSERT== __STW A1, 0
  839. __ASSERT== __STW A0, 0
  840. __ASSERT== __STW OV, 0
  841. __ASSERT== __STW OS, 0
  842. // Test: -(-0.0)
  843. __STWRST
  844. L -0.0
  845. NEGR
  846. __ASSERT== __ACCU 1, 0.0
  847. __ASSERT== __STW A1, 0
  848. __ASSERT== __STW A0, 0
  849. __ASSERT== __STW OV, 0
  850. __ASSERT== __STW OS, 0
  851. // Test: -neg
  852. __STWRST
  853. L -1.5
  854. NEGR
  855. __ASSERT== __ACCU 1, 1.5
  856. __ASSERT== __STW A1, 0
  857. __ASSERT== __STW A0, 0
  858. __ASSERT== __STW OV, 0
  859. __ASSERT== __STW OS, 0
  860. // Test: -(pInf)
  861. __STWRST
  862. L __CNST_PINF
  863. NEGR
  864. __ASSERT== __ACCU 1, __CNST_NINF
  865. __ASSERT== __STW A1, 0
  866. __ASSERT== __STW A0, 0
  867. __ASSERT== __STW OV, 0
  868. __ASSERT== __STW OS, 0
  869. // Test: -(nInf)
  870. __STWRST
  871. L __CNST_NINF
  872. NEGR
  873. __ASSERT== __ACCU 1, __CNST_PINF
  874. __ASSERT== __STW A1, 0
  875. __ASSERT== __STW A0, 0
  876. __ASSERT== __STW OV, 0
  877. __ASSERT== __STW OS, 0
  878. // Test: -(pNaN)
  879. __STWRST
  880. L __CNST_PNAN
  881. NEGR
  882. __ASSERT== __ACCU 1, __CNST_NNAN
  883. __ASSERT== __STW A1, 0
  884. __ASSERT== __STW A0, 0
  885. __ASSERT== __STW OV, 0
  886. __ASSERT== __STW OS, 0
  887. // Test: -(nNaN)
  888. __STWRST
  889. L __CNST_NNAN
  890. NEGR
  891. __ASSERT== __ACCU 1, __CNST_PNAN
  892. __ASSERT== __STW A1, 0
  893. __ASSERT== __STW A0, 0
  894. __ASSERT== __STW OV, 0
  895. __ASSERT== __STW OS, 0
  896. // Test: abs(0.0)
  897. __STWRST
  898. L 0.0
  899. ABS
  900. __ASSERT== __ACCU 1, 0.0
  901. // Test: abs(-0.0)
  902. __STWRST
  903. L -0.0
  904. ABS
  905. __ASSERT== __ACCU 1, 0.0
  906. // Test: abs(pos)
  907. __STWRST
  908. L 1.5
  909. ABS
  910. __ASSERT== __ACCU 1, 1.5
  911. // Test: abs(neg)
  912. __STWRST
  913. L -1.5
  914. ABS
  915. __ASSERT== __ACCU 1, 1.5
  916. // Test: abs(pInf)
  917. __STWRST
  918. L __CNST_PINF
  919. ABS
  920. __ASSERT== __ACCU 1, __CNST_PINF
  921. // Test: abs(nInf)
  922. __STWRST
  923. L __CNST_NINF
  924. ABS
  925. __ASSERT== __ACCU 1, __CNST_PINF
  926. // Test: abs(pNaN)
  927. __STWRST
  928. L __CNST_PNAN
  929. ABS
  930. __ASSERT== __ACCU 1, __CNST_PNAN
  931. // Test: abs(nNaN)
  932. __STWRST
  933. L __CNST_NNAN
  934. ABS
  935. __ASSERT== __ACCU 1, __CNST_PNAN
  936. // Test: 0^2
  937. __STWRST
  938. L 0.0
  939. SQR
  940. __ASSERT== __ACCU 1, 0.0
  941. __ASSERT== __STW A1, 0
  942. __ASSERT== __STW A0, 0
  943. __ASSERT== __STW OV, 0
  944. __ASSERT== __STW OS, 0
  945. // Test: -0^2
  946. __STWRST
  947. L -0.0
  948. SQR
  949. __ASSERT== __ACCU 1, 0.0
  950. __ASSERT== __STW A1, 0
  951. __ASSERT== __STW A0, 0
  952. __ASSERT== __STW OV, 0
  953. __ASSERT== __STW OS, 0
  954. // Test: pos^2
  955. __STWRST
  956. L 1.5
  957. SQR
  958. __ASSERT== __ACCU 1, 2.25
  959. __ASSERT== __STW A1, 1
  960. __ASSERT== __STW A0, 0
  961. __ASSERT== __STW OV, 0
  962. __ASSERT== __STW OS, 0
  963. // Test: neg^2
  964. __STWRST
  965. L -1.5
  966. SQR
  967. __ASSERT== __ACCU 1, 2.25
  968. __ASSERT== __STW A1, 1
  969. __ASSERT== __STW A0, 0
  970. __ASSERT== __STW OV, 0
  971. __ASSERT== __STW OS, 0
  972. // Test: pInf^2
  973. __STWRST
  974. L __CNST_PINF
  975. SQR
  976. __ASSERT== __ACCU 1, __CNST_PINF
  977. __ASSERT== __STW A1, 1
  978. __ASSERT== __STW A0, 0
  979. __ASSERT== __STW OV, 1
  980. __ASSERT== __STW OS, 1
  981. // Test: nInf^2
  982. __STWRST
  983. L __CNST_NINF
  984. SQR
  985. __ASSERT== __ACCU 1, __CNST_NINF
  986. __ASSERT== __STW A1, 0
  987. __ASSERT== __STW A0, 1
  988. __ASSERT== __STW OV, 1
  989. __ASSERT== __STW OS, 1
  990. // Test: pNaN^2
  991. __STWRST
  992. L __CNST_PNAN
  993. SQR
  994. __ASSERT== __ACCU 1, __CNST_PNAN
  995. __ASSERT== __STW A1, 1
  996. __ASSERT== __STW A0, 1
  997. __ASSERT== __STW OV, 1
  998. __ASSERT== __STW OS, 1
  999. // Test: nNaN^2
  1000. __STWRST
  1001. L __CNST_NNAN
  1002. SQR
  1003. __ASSERT== __ACCU 1, __CNST_PNAN
  1004. __ASSERT== __STW A1, 1
  1005. __ASSERT== __STW A0, 1
  1006. __ASSERT== __STW OV, 1
  1007. __ASSERT== __STW OS, 1
  1008. // Test: sqrt(pos)
  1009. __STWRST
  1010. L 9.0
  1011. SQRT
  1012. __ASSERT== __ACCU 1, 3.0
  1013. __ASSERT== __STW A1, 1
  1014. __ASSERT== __STW A0, 0
  1015. __ASSERT== __STW OV, 0
  1016. __ASSERT== __STW OS, 0
  1017. // Test: sqrt(-0.0)
  1018. __STWRST
  1019. L -0.0
  1020. SQRT
  1021. __ASSERT== __ACCU 1, -0.0
  1022. __ASSERT== __STW A1, 0
  1023. __ASSERT== __STW A0, 0
  1024. __ASSERT== __STW OV, 0
  1025. __ASSERT== __STW OS, 0
  1026. // Test: sqrt(-0.5)
  1027. __STWRST
  1028. L -0.5
  1029. SQRT
  1030. __ASSERT== __ACCU 1, __CNST_PNAN
  1031. __ASSERT== __STW A1, 1
  1032. __ASSERT== __STW A0, 1
  1033. __ASSERT== __STW OV, 1
  1034. __ASSERT== __STW OS, 1
  1035. // Test: sqrt(-1.5)
  1036. __STWRST
  1037. L -1.5
  1038. SQRT
  1039. __ASSERT== __ACCU 1, __CNST_PNAN
  1040. __ASSERT== __STW A1, 1
  1041. __ASSERT== __STW A0, 1
  1042. __ASSERT== __STW OV, 1
  1043. __ASSERT== __STW OS, 1
  1044. // Test: sqrt(pInf)
  1045. __STWRST
  1046. L __CNST_PINF
  1047. SQRT
  1048. __ASSERT== __ACCU 1, __CNST_PINF
  1049. __ASSERT== __STW A1, 1
  1050. __ASSERT== __STW A0, 0
  1051. __ASSERT== __STW OV, 1
  1052. __ASSERT== __STW OS, 1
  1053. // Test: sqrt(nInf)
  1054. __STWRST
  1055. L __CNST_NINF
  1056. SQRT
  1057. __ASSERT== __ACCU 1, __CNST_NINF
  1058. __ASSERT== __STW A1, 0
  1059. __ASSERT== __STW A0, 1
  1060. __ASSERT== __STW OV, 1
  1061. __ASSERT== __STW OS, 1
  1062. // Test: sqrt(pNaN)
  1063. __STWRST
  1064. L __CNST_PNAN
  1065. SQRT
  1066. __ASSERT== __ACCU 1, __CNST_PNAN
  1067. __ASSERT== __STW A1, 1
  1068. __ASSERT== __STW A0, 1
  1069. __ASSERT== __STW OV, 1
  1070. __ASSERT== __STW OS, 1
  1071. // Test: sqrt(nNaN)
  1072. __STWRST
  1073. L __CNST_NNAN
  1074. SQRT
  1075. __ASSERT== __ACCU 1, __CNST_PNAN
  1076. __ASSERT== __STW A1, 1
  1077. __ASSERT== __STW A0, 1
  1078. __ASSERT== __STW OV, 1
  1079. __ASSERT== __STW OS, 1
  1080. // Test: exp(0.0)
  1081. __STWRST
  1082. L 0.0
  1083. EXP
  1084. __ASSERT== __ACCU 1, 1.0
  1085. __ASSERT== __STW A1, 1
  1086. __ASSERT== __STW A0, 0
  1087. __ASSERT== __STW OV, 0
  1088. __ASSERT== __STW OS, 0
  1089. // Test: exp(-0.0)
  1090. __STWRST
  1091. L -0.0
  1092. EXP
  1093. __ASSERT== __ACCU 1, 1.0
  1094. __ASSERT== __STW A1, 1
  1095. __ASSERT== __STW A0, 0
  1096. __ASSERT== __STW OV, 0
  1097. __ASSERT== __STW OS, 0
  1098. // Test: exp(1.5)
  1099. __STWRST
  1100. L 1.5
  1101. EXP
  1102. __ASSERT== __ACCU 1, DW#16#408F69FF
  1103. __ASSERT== __STW A1, 1
  1104. __ASSERT== __STW A0, 0
  1105. __ASSERT== __STW OV, 0
  1106. __ASSERT== __STW OS, 0
  1107. // Test: exp(-1.5)
  1108. __STWRST
  1109. L -1.5
  1110. EXP
  1111. __ASSERT== __ACCU 1, DW#16#3E647C3C
  1112. __ASSERT== __STW A1, 1
  1113. __ASSERT== __STW A0, 0
  1114. __ASSERT== __STW OV, 0
  1115. __ASSERT== __STW OS, 0
  1116. // Test: exp(max value)
  1117. __STWRST
  1118. L DW#16#42B00000
  1119. EXP
  1120. __ASSERT<> __ACCU 1, __CNST_PINF
  1121. __ASSERT== __STW A1, 1
  1122. __ASSERT== __STW A0, 0
  1123. __ASSERT== __STW OV, 0
  1124. __ASSERT== __STW OS, 0
  1125. // Test: exp(max value + epsilon)
  1126. __STWRST
  1127. L DW#16#42B00001
  1128. EXP
  1129. __ASSERT== __ACCU 1, __CNST_PINF
  1130. __ASSERT== __STW A1, 1
  1131. __ASSERT== __STW A0, 0
  1132. __ASSERT== __STW OV, 1
  1133. __ASSERT== __STW OS, 1
  1134. // Test: exp(pInf)
  1135. __STWRST
  1136. L __CNST_PINF
  1137. EXP
  1138. __ASSERT== __ACCU 1, __CNST_PINF
  1139. __ASSERT== __STW A1, 1
  1140. __ASSERT== __STW A0, 0
  1141. __ASSERT== __STW OV, 1
  1142. __ASSERT== __STW OS, 1
  1143. // Test: exp(nInf)
  1144. __STWRST
  1145. L __CNST_NINF
  1146. EXP
  1147. __ASSERT== __ACCU 1, __CNST_NINF
  1148. __ASSERT== __STW A1, 0
  1149. __ASSERT== __STW A0, 1
  1150. __ASSERT== __STW OV, 1
  1151. __ASSERT== __STW OS, 1
  1152. // Test: exp(pNaN)
  1153. __STWRST
  1154. L __CNST_PNAN
  1155. EXP
  1156. __ASSERT== __ACCU 1, __CNST_PNAN
  1157. __ASSERT== __STW A1, 1
  1158. __ASSERT== __STW A0, 1
  1159. __ASSERT== __STW OV, 1
  1160. __ASSERT== __STW OS, 1
  1161. // Test: exp(nNaN)
  1162. __STWRST
  1163. L __CNST_NNAN
  1164. EXP
  1165. __ASSERT== __ACCU 1, __CNST_PNAN
  1166. __ASSERT== __STW A1, 1
  1167. __ASSERT== __STW A0, 1
  1168. __ASSERT== __STW OV, 1
  1169. __ASSERT== __STW OS, 1
  1170. // Test: ln(0.0)
  1171. __STWRST
  1172. L 0.0
  1173. LN
  1174. __ASSERT== __ACCU 1, __CNST_PNAN
  1175. __ASSERT== __STW A1, 1
  1176. __ASSERT== __STW A0, 1
  1177. __ASSERT== __STW OV, 1
  1178. __ASSERT== __STW OS, 1
  1179. // Test: ln(-0.0)
  1180. __STWRST
  1181. L -0.0
  1182. LN
  1183. __ASSERT== __ACCU 1, __CNST_PNAN
  1184. __ASSERT== __STW A1, 1
  1185. __ASSERT== __STW A0, 1
  1186. __ASSERT== __STW OV, 1
  1187. __ASSERT== __STW OS, 1
  1188. // Test: ln(1.5)
  1189. __STWRST
  1190. L 1.5
  1191. LN
  1192. __ASSERT== __ACCU 1, DW#16#3ECF991F
  1193. __ASSERT== __STW A1, 1
  1194. __ASSERT== __STW A0, 0
  1195. __ASSERT== __STW OV, 0
  1196. __ASSERT== __STW OS, 0
  1197. // Test: ln(-1.5)
  1198. __STWRST
  1199. L -1.5
  1200. LN
  1201. __ASSERT== __ACCU 1, __CNST_PNAN
  1202. __ASSERT== __STW A1, 1
  1203. __ASSERT== __STW A0, 1
  1204. __ASSERT== __STW OV, 1
  1205. __ASSERT== __STW OS, 1
  1206. // Test: ln(pInf)
  1207. __STWRST
  1208. L __CNST_PINF
  1209. LN
  1210. __ASSERT== __ACCU 1, __CNST_PINF
  1211. __ASSERT== __STW A1, 1
  1212. __ASSERT== __STW A0, 0
  1213. __ASSERT== __STW OV, 1
  1214. __ASSERT== __STW OS, 1
  1215. // Test: ln(nInf)
  1216. __STWRST
  1217. L __CNST_NINF
  1218. LN
  1219. __ASSERT== __ACCU 1, __CNST_NINF
  1220. __ASSERT== __STW A1, 0
  1221. __ASSERT== __STW A0, 1
  1222. __ASSERT== __STW OV, 1
  1223. __ASSERT== __STW OS, 1
  1224. // Test: ln(pNaN)
  1225. __STWRST
  1226. L __CNST_PNAN
  1227. LN
  1228. __ASSERT== __ACCU 1, __CNST_PNAN
  1229. __ASSERT== __STW A1, 1
  1230. __ASSERT== __STW A0, 1
  1231. __ASSERT== __STW OV, 1
  1232. __ASSERT== __STW OS, 1
  1233. // Test: ln(nNaN)
  1234. __STWRST
  1235. L __CNST_NNAN
  1236. LN
  1237. __ASSERT== __ACCU 1, __CNST_PNAN
  1238. __ASSERT== __STW A1, 1
  1239. __ASSERT== __STW A0, 1
  1240. __ASSERT== __STW OV, 1
  1241. __ASSERT== __STW OS, 1
  1242. // Test: sin(0.0 deg)
  1243. __STWRST
  1244. L 0.0
  1245. SIN
  1246. __ASSERT== __ACCU 1, 0.0
  1247. __ASSERT== __STW A1, 0
  1248. __ASSERT== __STW A0, 0
  1249. __ASSERT== __STW OV, 0
  1250. __ASSERT== __STW OS, 0
  1251. // Test: sin(-0.0 deg)
  1252. __STWRST
  1253. L -0.0
  1254. SIN
  1255. __ASSERT== __ACCU 1, -0.0
  1256. __ASSERT== __STW A1, 0
  1257. __ASSERT== __STW A0, 0
  1258. __ASSERT== __STW OV, 0
  1259. __ASSERT== __STW OS, 0
  1260. // Test: sin(90.0 deg)
  1261. __STWRST
  1262. L MD 8 // PI/2
  1263. SIN
  1264. __ASSERT== __ACCU 1, 1.0
  1265. __ASSERT== __STW A1, 1
  1266. __ASSERT== __STW A0, 0
  1267. __ASSERT== __STW OV, 0
  1268. __ASSERT== __STW OS, 0
  1269. // Test: sin(180.0 deg)
  1270. __STWRST
  1271. L MD 0 // PI
  1272. SIN
  1273. __ASSERT== __ACCU 1, 0.0
  1274. __ASSERT== __STW A1, 0
  1275. __ASSERT== __STW A0, 0
  1276. __ASSERT== __STW OV, 0
  1277. __ASSERT== __STW OS, 0
  1278. // Test: sin(-90.0 deg)
  1279. __STWRST
  1280. L MD 12 // -PI/2
  1281. SIN
  1282. __ASSERT== __ACCU 1, -1.0
  1283. __ASSERT== __STW A1, 0
  1284. __ASSERT== __STW A0, 1
  1285. __ASSERT== __STW OV, 0
  1286. __ASSERT== __STW OS, 0
  1287. // Test: sin(-180.0 deg)
  1288. __STWRST
  1289. L MD 4 // -PI
  1290. SIN
  1291. __ASSERT== __ACCU 1, 0.0
  1292. __ASSERT== __STW A1, 0
  1293. __ASSERT== __STW A0, 0
  1294. __ASSERT== __STW OV, 0
  1295. __ASSERT== __STW OS, 0
  1296. // Test: sin(pInf)
  1297. __STWRST
  1298. L __CNST_PINF
  1299. SIN
  1300. __ASSERT== __ACCU 1, __CNST_PINF
  1301. __ASSERT== __STW A1, 1
  1302. __ASSERT== __STW A0, 0
  1303. __ASSERT== __STW OV, 1
  1304. __ASSERT== __STW OS, 1
  1305. // Test: sin(nInf)
  1306. __STWRST
  1307. L __CNST_NINF
  1308. SIN
  1309. __ASSERT== __ACCU 1, __CNST_NINF
  1310. __ASSERT== __STW A1, 0
  1311. __ASSERT== __STW A0, 1
  1312. __ASSERT== __STW OV, 1
  1313. __ASSERT== __STW OS, 1
  1314. // Test: sin(pNaN)
  1315. __STWRST
  1316. L __CNST_PNAN
  1317. SIN
  1318. __ASSERT== __ACCU 1, __CNST_PNAN
  1319. __ASSERT== __STW A1, 1
  1320. __ASSERT== __STW A0, 1
  1321. __ASSERT== __STW OV, 1
  1322. __ASSERT== __STW OS, 1
  1323. // Test: sin(nNaN)
  1324. __STWRST
  1325. L __CNST_NNAN
  1326. SIN
  1327. __ASSERT== __ACCU 1, __CNST_PNAN
  1328. __ASSERT== __STW A1, 1
  1329. __ASSERT== __STW A0, 1
  1330. __ASSERT== __STW OV, 1
  1331. __ASSERT== __STW OS, 1
  1332. // Test: cos(0.0 deg)
  1333. __STWRST
  1334. L 0.0
  1335. COS
  1336. __ASSERT== __ACCU 1, 1.0
  1337. __ASSERT== __STW A1, 1
  1338. __ASSERT== __STW A0, 0
  1339. __ASSERT== __STW OV, 0
  1340. __ASSERT== __STW OS, 0
  1341. // Test: cos(-0.0 deg)
  1342. __STWRST
  1343. L -0.0
  1344. COS
  1345. __ASSERT== __ACCU 1, 1.0
  1346. __ASSERT== __STW A1, 1
  1347. __ASSERT== __STW A0, 0
  1348. __ASSERT== __STW OV, 0
  1349. __ASSERT== __STW OS, 0
  1350. // Test: cos(90.0 deg)
  1351. __STWRST
  1352. L MD 8 // PI/2
  1353. COS
  1354. __ASSERT== __ACCU 1, 0.0
  1355. __ASSERT== __STW A1, 0
  1356. __ASSERT== __STW A0, 0
  1357. __ASSERT== __STW OV, 0
  1358. __ASSERT== __STW OS, 0
  1359. // Test: cos(180.0 deg)
  1360. __STWRST
  1361. L MD 0 // PI
  1362. COS
  1363. __ASSERT== __ACCU 1, -1.0
  1364. __ASSERT== __STW A1, 0
  1365. __ASSERT== __STW A0, 1
  1366. __ASSERT== __STW OV, 0
  1367. __ASSERT== __STW OS, 0
  1368. // Test: cos(-90.0 deg)
  1369. __STWRST
  1370. L MD 12 // -PI/2
  1371. COS
  1372. __ASSERT== __ACCU 1, 0.0
  1373. __ASSERT== __STW A1, 0
  1374. __ASSERT== __STW A0, 0
  1375. __ASSERT== __STW OV, 0
  1376. __ASSERT== __STW OS, 0
  1377. // Test: cos(-180.0 deg)
  1378. __STWRST
  1379. L MD 4 // -PI
  1380. COS
  1381. __ASSERT== __ACCU 1, -1.0
  1382. __ASSERT== __STW A1, 0
  1383. __ASSERT== __STW A0, 1
  1384. __ASSERT== __STW OV, 0
  1385. __ASSERT== __STW OS, 0
  1386. // Test: cos(pInf)
  1387. __STWRST
  1388. L __CNST_PINF
  1389. COS
  1390. __ASSERT== __ACCU 1, __CNST_PINF
  1391. __ASSERT== __STW A1, 1
  1392. __ASSERT== __STW A0, 0
  1393. __ASSERT== __STW OV, 1
  1394. __ASSERT== __STW OS, 1
  1395. // Test: cos(nInf)
  1396. __STWRST
  1397. L __CNST_NINF
  1398. COS
  1399. __ASSERT== __ACCU 1, __CNST_NINF
  1400. __ASSERT== __STW A1, 0
  1401. __ASSERT== __STW A0, 1
  1402. __ASSERT== __STW OV, 1
  1403. __ASSERT== __STW OS, 1
  1404. // Test: cos(pNaN)
  1405. __STWRST
  1406. L __CNST_PNAN
  1407. COS
  1408. __ASSERT== __ACCU 1, __CNST_PNAN
  1409. __ASSERT== __STW A1, 1
  1410. __ASSERT== __STW A0, 1
  1411. __ASSERT== __STW OV, 1
  1412. __ASSERT== __STW OS, 1
  1413. // Test: cos(nNaN)
  1414. __STWRST
  1415. L __CNST_NNAN
  1416. COS
  1417. __ASSERT== __ACCU 1, __CNST_PNAN
  1418. __ASSERT== __STW A1, 1
  1419. __ASSERT== __STW A0, 1
  1420. __ASSERT== __STW OV, 1
  1421. __ASSERT== __STW OS, 1
  1422. // Test: tan(0.0 deg)
  1423. __STWRST
  1424. L 0.0
  1425. TAN
  1426. __ASSERT== __ACCU 1, 0.0
  1427. __ASSERT== __STW A1, 0
  1428. __ASSERT== __STW A0, 0
  1429. __ASSERT== __STW OV, 0
  1430. __ASSERT== __STW OS, 0
  1431. // Test: tan(-0.0 deg)
  1432. __STWRST
  1433. L -0.0
  1434. TAN
  1435. __ASSERT== __ACCU 1, -0.0
  1436. __ASSERT== __STW A1, 0
  1437. __ASSERT== __STW A0, 0
  1438. __ASSERT== __STW OV, 0
  1439. __ASSERT== __STW OS, 0
  1440. // Test: tan(45.0 deg)
  1441. __STWRST
  1442. L MD 16 // PI/4
  1443. TAN
  1444. __ASSERT== __ACCU 1, 1.0
  1445. __ASSERT== __STW A1, 1
  1446. __ASSERT== __STW A0, 0
  1447. __ASSERT== __STW OV, 0
  1448. __ASSERT== __STW OS, 0
  1449. // Test: tan(90.0 deg)
  1450. __STWRST
  1451. L MD 8 // PI/2
  1452. TAN
  1453. __ASSERT== __ACCU 1, DW#16#7F800000
  1454. __ASSERT== __STW A1, 1
  1455. __ASSERT== __STW A0, 0
  1456. __ASSERT== __STW OV, 1
  1457. __ASSERT== __STW OS, 1
  1458. // Test: tan(180.0 deg)
  1459. __STWRST
  1460. L MD 0 // PI
  1461. TAN
  1462. __ASSERT== __ACCU 1, 0.0
  1463. __ASSERT== __STW A1, 0
  1464. __ASSERT== __STW A0, 0
  1465. __ASSERT== __STW OV, 0
  1466. __ASSERT== __STW OS, 0
  1467. // Test: tan(-45.0 deg)
  1468. __STWRST
  1469. L MD 20 // -PI/4
  1470. TAN
  1471. __ASSERT== __ACCU 1, -1.0
  1472. __ASSERT== __STW A1, 0
  1473. __ASSERT== __STW A0, 1
  1474. __ASSERT== __STW OV, 0
  1475. __ASSERT== __STW OS, 0
  1476. // Test: tan(-90.0 deg)
  1477. __STWRST
  1478. L MD 12 // -PI/2
  1479. TAN
  1480. __ASSERT== __ACCU 1, DW#16#FF800000
  1481. __ASSERT== __STW A1, 0
  1482. __ASSERT== __STW A0, 1
  1483. __ASSERT== __STW OV, 1
  1484. __ASSERT== __STW OS, 1
  1485. // Test: tan(-180.0 deg)
  1486. __STWRST
  1487. L MD 4 // -PI
  1488. TAN
  1489. __ASSERT== __ACCU 1, 0.0
  1490. __ASSERT== __STW A1, 0
  1491. __ASSERT== __STW A0, 0
  1492. __ASSERT== __STW OV, 0
  1493. __ASSERT== __STW OS, 0
  1494. // Test: tan(pInf)
  1495. __STWRST
  1496. L __CNST_PINF
  1497. TAN
  1498. __ASSERT== __ACCU 1, __CNST_PINF
  1499. __ASSERT== __STW A1, 1
  1500. __ASSERT== __STW A0, 0
  1501. __ASSERT== __STW OV, 1
  1502. __ASSERT== __STW OS, 1
  1503. // Test: tan(nInf)
  1504. __STWRST
  1505. L __CNST_NINF
  1506. TAN
  1507. __ASSERT== __ACCU 1, __CNST_NINF
  1508. __ASSERT== __STW A1, 0
  1509. __ASSERT== __STW A0, 1
  1510. __ASSERT== __STW OV, 1
  1511. __ASSERT== __STW OS, 1
  1512. // Test: tan(pNaN)
  1513. __STWRST
  1514. L __CNST_PNAN
  1515. TAN
  1516. __ASSERT== __ACCU 1, __CNST_PNAN
  1517. __ASSERT== __STW A1, 1
  1518. __ASSERT== __STW A0, 1
  1519. __ASSERT== __STW OV, 1
  1520. __ASSERT== __STW OS, 1
  1521. // Test: tan(nNaN)
  1522. __STWRST
  1523. L __CNST_NNAN
  1524. TAN
  1525. __ASSERT== __ACCU 1, __CNST_PNAN
  1526. __ASSERT== __STW A1, 1
  1527. __ASSERT== __STW A0, 1
  1528. __ASSERT== __STW OV, 1
  1529. __ASSERT== __STW OS, 1
  1530. // Test: asin(0.0)
  1531. __STWRST
  1532. L 0.0
  1533. ASIN
  1534. __ASSERT== __ACCU 1, 0.0
  1535. __ASSERT== __STW A1, 0
  1536. __ASSERT== __STW A0, 0
  1537. __ASSERT== __STW OV, 0
  1538. __ASSERT== __STW OS, 0
  1539. // Test: asin(-0.0)
  1540. __STWRST
  1541. L -0.0
  1542. ASIN
  1543. __ASSERT== __ACCU 1, -0.0
  1544. __ASSERT== __STW A1, 0
  1545. __ASSERT== __STW A0, 0
  1546. __ASSERT== __STW OV, 0
  1547. __ASSERT== __STW OS, 0
  1548. // Test: asin(1.0)
  1549. __STWRST
  1550. L 1.0
  1551. ASIN
  1552. __ASSERT== __ACCU 1, MD 8 // PI/2
  1553. __ASSERT== __STW A1, 1
  1554. __ASSERT== __STW A0, 0
  1555. __ASSERT== __STW OV, 0
  1556. __ASSERT== __STW OS, 0
  1557. // Test: asin(-1.0)
  1558. __STWRST
  1559. L -1.0
  1560. ASIN
  1561. __ASSERT== __ACCU 1, MD 12 // -PI/2
  1562. __ASSERT== __STW A1, 0
  1563. __ASSERT== __STW A0, 1
  1564. __ASSERT== __STW OV, 0
  1565. __ASSERT== __STW OS, 0
  1566. // Test: asin(1.1)
  1567. __STWRST
  1568. L 1.1
  1569. ASIN
  1570. __ASSERT== __ACCU 1, __CNST_PNAN
  1571. __ASSERT== __STW A1, 1
  1572. __ASSERT== __STW A0, 1
  1573. __ASSERT== __STW OV, 1
  1574. __ASSERT== __STW OS, 1
  1575. // Test: asin(-1.1)
  1576. __STWRST
  1577. L -1.1
  1578. ASIN
  1579. __ASSERT== __ACCU 1, __CNST_PNAN
  1580. __ASSERT== __STW A1, 1
  1581. __ASSERT== __STW A0, 1
  1582. __ASSERT== __STW OV, 1
  1583. __ASSERT== __STW OS, 1
  1584. // Test: asin(pInf)
  1585. __STWRST
  1586. L __CNST_PINF
  1587. ASIN
  1588. __ASSERT== __ACCU 1, __CNST_PINF
  1589. __ASSERT== __STW A1, 1
  1590. __ASSERT== __STW A0, 0
  1591. __ASSERT== __STW OV, 1
  1592. __ASSERT== __STW OS, 1
  1593. // Test: asin(nInf)
  1594. __STWRST
  1595. L __CNST_NINF
  1596. ASIN
  1597. __ASSERT== __ACCU 1, __CNST_NINF
  1598. __ASSERT== __STW A1, 0
  1599. __ASSERT== __STW A0, 1
  1600. __ASSERT== __STW OV, 1
  1601. __ASSERT== __STW OS, 1
  1602. // Test: asin(pNaN)
  1603. __STWRST
  1604. L __CNST_PNAN
  1605. ASIN
  1606. __ASSERT== __ACCU 1, __CNST_PNAN
  1607. __ASSERT== __STW A1, 1
  1608. __ASSERT== __STW A0, 1
  1609. __ASSERT== __STW OV, 1
  1610. __ASSERT== __STW OS, 1
  1611. // Test: asin(nNaN)
  1612. __STWRST
  1613. L __CNST_NNAN
  1614. ASIN
  1615. __ASSERT== __ACCU 1, __CNST_PNAN
  1616. __ASSERT== __STW A1, 1
  1617. __ASSERT== __STW A0, 1
  1618. __ASSERT== __STW OV, 1
  1619. __ASSERT== __STW OS, 1
  1620. // Test: acos(1.0)
  1621. __STWRST
  1622. L 1.0
  1623. ACOS
  1624. __ASSERT== __ACCU 1, 0.0
  1625. __ASSERT== __STW A1, 0
  1626. __ASSERT== __STW A0, 0
  1627. __ASSERT== __STW OV, 0
  1628. __ASSERT== __STW OS, 0
  1629. // Test: acos(0.0)
  1630. __STWRST
  1631. L 0.0
  1632. ACOS
  1633. __ASSERT== __ACCU 1, MD 8 // PI/2
  1634. __ASSERT== __STW A1, 1
  1635. __ASSERT== __STW A0, 0
  1636. __ASSERT== __STW OV, 0
  1637. __ASSERT== __STW OS, 0
  1638. // Test: acos(-1.0)
  1639. __STWRST
  1640. L -1.0
  1641. ACOS
  1642. __ASSERT== __ACCU 1, MD 0 // PI
  1643. __ASSERT== __STW A1, 1
  1644. __ASSERT== __STW A0, 0
  1645. __ASSERT== __STW OV, 0
  1646. __ASSERT== __STW OS, 0
  1647. // Test: acos(1.1)
  1648. __STWRST
  1649. L 1.1
  1650. ACOS
  1651. __ASSERT== __ACCU 1, __CNST_PNAN
  1652. __ASSERT== __STW A1, 1
  1653. __ASSERT== __STW A0, 1
  1654. __ASSERT== __STW OV, 1
  1655. __ASSERT== __STW OS, 1
  1656. // Test: acos(-1.1)
  1657. __STWRST
  1658. L -1.1
  1659. ACOS
  1660. __ASSERT== __ACCU 1, __CNST_PNAN
  1661. __ASSERT== __STW A1, 1
  1662. __ASSERT== __STW A0, 1
  1663. __ASSERT== __STW OV, 1
  1664. __ASSERT== __STW OS, 1
  1665. // Test: acos(pInf)
  1666. __STWRST
  1667. L __CNST_PINF
  1668. ACOS
  1669. __ASSERT== __ACCU 1, __CNST_PINF
  1670. __ASSERT== __STW A1, 1
  1671. __ASSERT== __STW A0, 0
  1672. __ASSERT== __STW OV, 1
  1673. __ASSERT== __STW OS, 1
  1674. // Test: acos(nInf)
  1675. __STWRST
  1676. L __CNST_NINF
  1677. ACOS
  1678. __ASSERT== __ACCU 1, __CNST_NINF
  1679. __ASSERT== __STW A1, 0
  1680. __ASSERT== __STW A0, 1
  1681. __ASSERT== __STW OV, 1
  1682. __ASSERT== __STW OS, 1
  1683. // Test: acos(pNaN)
  1684. __STWRST
  1685. L __CNST_PNAN
  1686. ACOS
  1687. __ASSERT== __ACCU 1, __CNST_PNAN
  1688. __ASSERT== __STW A1, 1
  1689. __ASSERT== __STW A0, 1
  1690. __ASSERT== __STW OV, 1
  1691. __ASSERT== __STW OS, 1
  1692. // Test: acos(nNaN)
  1693. __STWRST
  1694. L __CNST_NNAN
  1695. ACOS
  1696. __ASSERT== __ACCU 1, __CNST_PNAN
  1697. __ASSERT== __STW A1, 1
  1698. __ASSERT== __STW A0, 1
  1699. __ASSERT== __STW OV, 1
  1700. __ASSERT== __STW OS, 1
  1701. // Test: atan(0.0)
  1702. __STWRST
  1703. L 0.0
  1704. ATAN
  1705. __ASSERT== __ACCU 1, 0.0
  1706. __ASSERT== __STW A1, 0
  1707. __ASSERT== __STW A0, 0
  1708. __ASSERT== __STW OV, 0
  1709. __ASSERT== __STW OS, 0
  1710. // Test: atan(-0.0)
  1711. __STWRST
  1712. L -0.0
  1713. ATAN
  1714. __ASSERT== __ACCU 1, -0.0
  1715. __ASSERT== __STW A1, 0
  1716. __ASSERT== __STW A0, 0
  1717. __ASSERT== __STW OV, 0
  1718. __ASSERT== __STW OS, 0
  1719. // Test: atan(1.0)
  1720. __STWRST
  1721. L 1.0
  1722. ATAN
  1723. __ASSERT== __ACCU 1, MD 16 // PI/4
  1724. __ASSERT== __STW A1, 1
  1725. __ASSERT== __STW A0, 0
  1726. __ASSERT== __STW OV, 0
  1727. __ASSERT== __STW OS, 0
  1728. // Test: atan(-1.0)
  1729. __STWRST
  1730. L -1.0
  1731. ATAN
  1732. __ASSERT== __ACCU 1, MD 20 // -PI/4
  1733. __ASSERT== __STW A1, 0
  1734. __ASSERT== __STW A0, 1
  1735. __ASSERT== __STW OV, 0
  1736. __ASSERT== __STW OS, 0
  1737. // Test: atan(pInf)
  1738. __STWRST
  1739. L __CNST_PINF
  1740. ATAN
  1741. __ASSERT== __ACCU 1, __CNST_PINF
  1742. __ASSERT== __STW A1, 1
  1743. __ASSERT== __STW A0, 0
  1744. __ASSERT== __STW OV, 1
  1745. __ASSERT== __STW OS, 1
  1746. // Test: atan(nInf)
  1747. __STWRST
  1748. L __CNST_NINF
  1749. ATAN
  1750. __ASSERT== __ACCU 1, __CNST_NINF
  1751. __ASSERT== __STW A1, 0
  1752. __ASSERT== __STW A0, 1
  1753. __ASSERT== __STW OV, 1
  1754. __ASSERT== __STW OS, 1
  1755. // Test: atan(pNaN)
  1756. __STWRST
  1757. L __CNST_PNAN
  1758. ATAN
  1759. __ASSERT== __ACCU 1, __CNST_PNAN
  1760. __ASSERT== __STW A1, 1
  1761. __ASSERT== __STW A0, 1
  1762. __ASSERT== __STW OV, 1
  1763. __ASSERT== __STW OS, 1
  1764. // Test: atan(nNaN)
  1765. __STWRST
  1766. L __CNST_NNAN
  1767. ATAN
  1768. __ASSERT== __ACCU 1, __CNST_PNAN
  1769. __ASSERT== __STW A1, 1
  1770. __ASSERT== __STW A0, 1
  1771. __ASSERT== __STW OV, 1
  1772. __ASSERT== __STW OS, 1
  1773. // Test: 1 -> 1.0
  1774. __STWRST
  1775. L 1
  1776. DTR
  1777. __ASSERT== __ACCU 1, 1.0
  1778. // Test: -1 -> -1.0
  1779. __STWRST
  1780. L L#-1
  1781. DTR
  1782. __ASSERT== __ACCU 1, -1.0
  1783. // Test: RND(1.1)
  1784. __STWRST
  1785. L 1.1
  1786. RND
  1787. __ASSERT== __ACCU 1, 1
  1788. __ASSERT== __STW OV, 0
  1789. __ASSERT== __STW OS, 0
  1790. // Test: RND(1.5)
  1791. __STWRST
  1792. L 1.5
  1793. RND
  1794. __ASSERT== __ACCU 1, 2
  1795. __ASSERT== __STW OV, 0
  1796. __ASSERT== __STW OS, 0
  1797. // Test: RND(2.5)
  1798. __STWRST
  1799. L 2.5
  1800. RND
  1801. __ASSERT== __ACCU 1, 2
  1802. __ASSERT== __STW OV, 0
  1803. __ASSERT== __STW OS, 0
  1804. // Test: RND(-1.1)
  1805. __STWRST
  1806. L -1.1
  1807. RND
  1808. __ASSERT== __ACCU 1, L#-1
  1809. __ASSERT== __STW OV, 0
  1810. __ASSERT== __STW OS, 0
  1811. // Test: RND(-1.5)
  1812. __STWRST
  1813. L -1.5
  1814. RND
  1815. __ASSERT== __ACCU 1, L#-2
  1816. __ASSERT== __STW OV, 0
  1817. __ASSERT== __STW OS, 0
  1818. // Test: RND(-2.5)
  1819. __STWRST
  1820. L -2.5
  1821. RND
  1822. __ASSERT== __ACCU 1, L#-2
  1823. __ASSERT== __STW OV, 0
  1824. __ASSERT== __STW OS, 0
  1825. // Test: RND(3000000000.0)
  1826. __STWRST
  1827. L 3000000000.0
  1828. RND
  1829. __ASSERT== __ACCU 1, 3000000000.0
  1830. __ASSERT== __STW OV, 1
  1831. __ASSERT== __STW OS, 1
  1832. // Test: RND(nNAN)
  1833. __STWRST
  1834. L __CNST_NNAN
  1835. RND
  1836. __ASSERT== __ACCU 1, __CNST_NNAN
  1837. __ASSERT== __STW OV, 1
  1838. __ASSERT== __STW OS, 1
  1839. // Test: RND(pNAN)
  1840. __STWRST
  1841. L __CNST_PNAN
  1842. RND
  1843. __ASSERT== __ACCU 1, __CNST_PNAN
  1844. __ASSERT== __STW OV, 1
  1845. __ASSERT== __STW OS, 1
  1846. // Test: RND(nINF)
  1847. __STWRST
  1848. L __CNST_NINF
  1849. RND
  1850. __ASSERT== __ACCU 1, __CNST_NINF
  1851. __ASSERT== __STW OV, 1
  1852. __ASSERT== __STW OS, 1
  1853. // Test: RND(pINF)
  1854. __STWRST
  1855. L __CNST_PINF
  1856. RND
  1857. __ASSERT== __ACCU 1, __CNST_PINF
  1858. __ASSERT== __STW OV, 1
  1859. __ASSERT== __STW OS, 1
  1860. // Test: TRUNC(1.1)
  1861. __STWRST
  1862. L 1.1
  1863. TRUNC
  1864. __ASSERT== __ACCU 1, 1
  1865. __ASSERT== __STW OV, 0
  1866. __ASSERT== __STW OS, 0
  1867. // Test: TRUNC(1.5)
  1868. __STWRST
  1869. L 1.5
  1870. TRUNC
  1871. __ASSERT== __ACCU 1, 1
  1872. __ASSERT== __STW OV, 0
  1873. __ASSERT== __STW OS, 0
  1874. // Test: TRUNC(2.5)
  1875. __STWRST
  1876. L 2.5
  1877. TRUNC
  1878. __ASSERT== __ACCU 1, 2
  1879. __ASSERT== __STW OV, 0
  1880. __ASSERT== __STW OS, 0
  1881. // Test: TRUNC(-1.1)
  1882. __STWRST
  1883. L -1.1
  1884. TRUNC
  1885. __ASSERT== __ACCU 1, L#-1
  1886. __ASSERT== __STW OV, 0
  1887. __ASSERT== __STW OS, 0
  1888. // Test: TRUNC(-1.5)
  1889. __STWRST
  1890. L -1.5
  1891. TRUNC
  1892. __ASSERT== __ACCU 1, L#-1
  1893. __ASSERT== __STW OV, 0
  1894. __ASSERT== __STW OS, 0
  1895. // Test: TRUNC(-2.5)
  1896. __STWRST
  1897. L -2.5
  1898. TRUNC
  1899. __ASSERT== __ACCU 1, L#-2
  1900. __ASSERT== __STW OV, 0
  1901. __ASSERT== __STW OS, 0
  1902. // Test: TRUNC(3000000000.0)
  1903. __STWRST
  1904. L 3000000000.0
  1905. TRUNC
  1906. __ASSERT== __ACCU 1, 3000000000.0
  1907. __ASSERT== __STW OV, 1
  1908. __ASSERT== __STW OS, 1
  1909. // Test: TRUNC(nNAN)
  1910. __STWRST
  1911. L __CNST_NNAN
  1912. TRUNC
  1913. __ASSERT== __ACCU 1, __CNST_NNAN
  1914. __ASSERT== __STW OV, 1
  1915. __ASSERT== __STW OS, 1
  1916. // Test: TRUNC(pNAN)
  1917. __STWRST
  1918. L __CNST_PNAN
  1919. TRUNC
  1920. __ASSERT== __ACCU 1, __CNST_PNAN
  1921. __ASSERT== __STW OV, 1
  1922. __ASSERT== __STW OS, 1
  1923. // Test: TRUNC(nINF)
  1924. __STWRST
  1925. L __CNST_NINF
  1926. TRUNC
  1927. __ASSERT== __ACCU 1, __CNST_NINF
  1928. __ASSERT== __STW OV, 1
  1929. __ASSERT== __STW OS, 1
  1930. // Test: TRUNC(pINF)
  1931. __STWRST
  1932. L __CNST_PINF
  1933. TRUNC
  1934. __ASSERT== __ACCU 1, __CNST_PINF
  1935. __ASSERT== __STW OV, 1
  1936. __ASSERT== __STW OS, 1
  1937. // Test: RND+(0.0)
  1938. __STWRST
  1939. L 0.0
  1940. RND+
  1941. __ASSERT== __ACCU 1, 0
  1942. __ASSERT== __STW OV, 0
  1943. __ASSERT== __STW OS, 0
  1944. // Test: RND+(0.1)
  1945. __STWRST
  1946. L 0.1
  1947. RND+
  1948. __ASSERT== __ACCU 1, 1
  1949. __ASSERT== __STW OV, 0
  1950. __ASSERT== __STW OS, 0
  1951. // Test: RND+(0.5)
  1952. __STWRST
  1953. L 0.5
  1954. RND+
  1955. __ASSERT== __ACCU 1, 1
  1956. __ASSERT== __STW OV, 0
  1957. __ASSERT== __STW OS, 0
  1958. // Test: RND+(1.0)
  1959. __STWRST
  1960. L 1.0
  1961. RND+
  1962. __ASSERT== __ACCU 1, 1
  1963. __ASSERT== __STW OV, 0
  1964. __ASSERT== __STW OS, 0
  1965. // Test: RND+(1.5)
  1966. __STWRST
  1967. L 1.5
  1968. RND+
  1969. __ASSERT== __ACCU 1, 2
  1970. __ASSERT== __STW OV, 0
  1971. __ASSERT== __STW OS, 0
  1972. // Test: RND+(2.5)
  1973. __STWRST
  1974. L 2.5
  1975. RND+
  1976. __ASSERT== __ACCU 1, 3
  1977. __ASSERT== __STW OV, 0
  1978. __ASSERT== __STW OS, 0
  1979. // Test: RND+(-0.1)
  1980. __STWRST
  1981. L -0.1
  1982. RND+
  1983. __ASSERT== __ACCU 1, 0
  1984. __ASSERT== __STW OV, 0
  1985. __ASSERT== __STW OS, 0
  1986. // Test: RND+(-0.5)
  1987. __STWRST
  1988. L -0.5
  1989. RND+
  1990. __ASSERT== __ACCU 1, 0
  1991. __ASSERT== __STW OV, 0
  1992. __ASSERT== __STW OS, 0
  1993. // Test: RND+(-1.0)
  1994. __STWRST
  1995. L -1.0
  1996. RND+
  1997. __ASSERT== __ACCU 1, L#-1
  1998. __ASSERT== __STW OV, 0
  1999. __ASSERT== __STW OS, 0
  2000. // Test: RND+(-1.5)
  2001. __STWRST
  2002. L -1.5
  2003. RND+
  2004. __ASSERT== __ACCU 1, L#-1
  2005. __ASSERT== __STW OV, 0
  2006. __ASSERT== __STW OS, 0
  2007. // Test: RND+(-2.5)
  2008. __STWRST
  2009. L -2.5
  2010. RND+
  2011. __ASSERT== __ACCU 1, L#-2
  2012. __ASSERT== __STW OV, 0
  2013. __ASSERT== __STW OS, 0
  2014. // Test: RND+(3000000000.0)
  2015. __STWRST
  2016. L 3000000000.0
  2017. RND+
  2018. __ASSERT== __ACCU 1, 3000000000.0
  2019. __ASSERT== __STW OV, 1
  2020. __ASSERT== __STW OS, 1
  2021. // Test: RND+(nNAN)
  2022. __STWRST
  2023. L __CNST_NNAN
  2024. RND+
  2025. __ASSERT== __ACCU 1, __CNST_NNAN
  2026. __ASSERT== __STW OV, 1
  2027. __ASSERT== __STW OS, 1
  2028. // Test: RND+(pNAN)
  2029. __STWRST
  2030. L __CNST_PNAN
  2031. RND+
  2032. __ASSERT== __ACCU 1, __CNST_PNAN
  2033. __ASSERT== __STW OV, 1
  2034. __ASSERT== __STW OS, 1
  2035. // Test: RND+(nINF)
  2036. __STWRST
  2037. L __CNST_NINF
  2038. RND+
  2039. __ASSERT== __ACCU 1, __CNST_NINF
  2040. __ASSERT== __STW OV, 1
  2041. __ASSERT== __STW OS, 1
  2042. // Test: RND+(pINF)
  2043. __STWRST
  2044. L __CNST_PINF
  2045. RND+
  2046. __ASSERT== __ACCU 1, __CNST_PINF
  2047. __ASSERT== __STW OV, 1
  2048. __ASSERT== __STW OS, 1
  2049. // Test: RND-(0.0)
  2050. __STWRST
  2051. L 0.0
  2052. RND-
  2053. __ASSERT== __ACCU 1, 0
  2054. __ASSERT== __STW OV, 0
  2055. __ASSERT== __STW OS, 0
  2056. // Test: RND-(0.1)
  2057. __STWRST
  2058. L 0.1
  2059. RND-
  2060. __ASSERT== __ACCU 1, 0
  2061. __ASSERT== __STW OV, 0
  2062. __ASSERT== __STW OS, 0
  2063. // Test: RND-(0.5)
  2064. __STWRST
  2065. L 0.5
  2066. RND-
  2067. __ASSERT== __ACCU 1, 0
  2068. __ASSERT== __STW OV, 0
  2069. __ASSERT== __STW OS, 0
  2070. // Test: RND-(1.0)
  2071. __STWRST
  2072. L 1.0
  2073. RND-
  2074. __ASSERT== __ACCU 1, 1
  2075. __ASSERT== __STW OV, 0
  2076. __ASSERT== __STW OS, 0
  2077. // Test: RND-(1.5)
  2078. __STWRST
  2079. L 1.5
  2080. RND-
  2081. __ASSERT== __ACCU 1, 1
  2082. __ASSERT== __STW OV, 0
  2083. __ASSERT== __STW OS, 0
  2084. // Test: RND-(2.5)
  2085. __STWRST
  2086. L 2.5
  2087. RND-
  2088. __ASSERT== __ACCU 1, 2
  2089. __ASSERT== __STW OV, 0
  2090. __ASSERT== __STW OS, 0
  2091. // Test: RND-(-0.1)
  2092. __STWRST
  2093. L -0.1
  2094. RND-
  2095. __ASSERT== __ACCU 1, L#-1
  2096. __ASSERT== __STW OV, 0
  2097. __ASSERT== __STW OS, 0
  2098. // Test: RND-(-0.5)
  2099. __STWRST
  2100. L -0.5
  2101. RND-
  2102. __ASSERT== __ACCU 1, L#-1
  2103. __ASSERT== __STW OV, 0
  2104. __ASSERT== __STW OS, 0
  2105. // Test: RND-(-1.0)
  2106. __STWRST
  2107. L -1.0
  2108. RND-
  2109. __ASSERT== __ACCU 1, L#-1
  2110. __ASSERT== __STW OV, 0
  2111. __ASSERT== __STW OS, 0
  2112. // Test: RND-(-1.5)
  2113. __STWRST
  2114. L -1.5
  2115. RND-
  2116. __ASSERT== __ACCU 1, L#-2
  2117. __ASSERT== __STW OV, 0
  2118. __ASSERT== __STW OS, 0
  2119. // Test: RND-(-2.5)
  2120. __STWRST
  2121. L -2.5
  2122. RND-
  2123. __ASSERT== __ACCU 1, L#-3
  2124. __ASSERT== __STW OV, 0
  2125. __ASSERT== __STW OS, 0
  2126. // Test: RND-(3000000000.0)
  2127. __STWRST
  2128. L 3000000000.0
  2129. RND-
  2130. __ASSERT== __ACCU 1, 3000000000.0
  2131. __ASSERT== __STW OV, 1
  2132. __ASSERT== __STW OS, 1
  2133. // Test: RND-(nNAN)
  2134. __STWRST
  2135. L __CNST_NNAN
  2136. RND-
  2137. __ASSERT== __ACCU 1, __CNST_NNAN
  2138. __ASSERT== __STW OV, 1
  2139. __ASSERT== __STW OS, 1
  2140. // Test: RND-(pNAN)
  2141. __STWRST
  2142. L __CNST_PNAN
  2143. RND-
  2144. __ASSERT== __ACCU 1, __CNST_PNAN
  2145. __ASSERT== __STW OV, 1
  2146. __ASSERT== __STW OS, 1
  2147. // Test: RND-(nINF)
  2148. __STWRST
  2149. L __CNST_NINF
  2150. RND-
  2151. __ASSERT== __ACCU 1, __CNST_NINF
  2152. __ASSERT== __STW OV, 1
  2153. __ASSERT== __STW OS, 1
  2154. // Test: RND-(pINF)
  2155. __STWRST
  2156. L __CNST_PINF
  2157. RND-
  2158. __ASSERT== __ACCU 1, __CNST_PINF
  2159. __ASSERT== __STW OV, 1
  2160. __ASSERT== __STW OS, 1
  2161. CALL SFC 46 // STOP CPU