cudiv.cgs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # frv testcase for cudiv $GRi,$GRj,$GRk,$CCi,$cond
  2. # mach: all
  3. .include "testutils.inc"
  4. start
  5. .global cudiv
  6. cudiv:
  7. set_spr_immed 0x1b1b,cccr
  8. ; simple division 12 / 3
  9. set_gr_immed 0x00000003,gr2
  10. set_gr_immed 0x0000000c,gr3
  11. cudiv gr3,gr2,gr3,cc0,1
  12. test_gr_immed 0x00000003,gr2
  13. test_gr_immed 0x00000004,gr3
  14. ; example 1 from division in the fr30 manual
  15. set_gr_limmed 0x0123,0x4567,gr2
  16. set_gr_limmed 0xfedc,0xba98,gr3
  17. cudiv gr3,gr2,gr3,cc4,1
  18. test_gr_limmed 0x0123,0x4567,gr2
  19. test_gr_immed 0x000000e0,gr3
  20. ; simple division 12 / 3
  21. set_gr_immed 0x00000003,gr2
  22. set_gr_immed 0x0000000c,gr3
  23. cudiv gr3,gr2,gr3,cc0,0
  24. test_gr_immed 0x00000003,gr2
  25. test_gr_immed 0x0000000c,gr3
  26. ; example 1 from division in the fr30 manual
  27. set_gr_limmed 0x0123,0x4567,gr2
  28. set_gr_limmed 0xfedc,0xba98,gr3
  29. cudiv gr3,gr2,gr3,cc4,0
  30. test_gr_limmed 0x0123,0x4567,gr2
  31. test_gr_limmed 0xfedc,0xba98,gr3
  32. ; simple division 12 / 3
  33. set_gr_immed 0x00000003,gr2
  34. set_gr_immed 0x0000000c,gr3
  35. cudiv gr3,gr2,gr3,cc1,0
  36. test_gr_immed 0x00000003,gr2
  37. test_gr_immed 0x00000004,gr3
  38. ; example 1 from division in the fr30 manual
  39. set_gr_limmed 0x0123,0x4567,gr2
  40. set_gr_limmed 0xfedc,0xba98,gr3
  41. cudiv gr3,gr2,gr3,cc5,0
  42. test_gr_limmed 0x0123,0x4567,gr2
  43. test_gr_immed 0x000000e0,gr3
  44. ; simple division 12 / 3
  45. set_gr_immed 0x00000003,gr2
  46. set_gr_immed 0x0000000c,gr3
  47. cudiv gr3,gr2,gr3,cc1,1
  48. test_gr_immed 0x00000003,gr2
  49. test_gr_immed 0x0000000c,gr3
  50. ; example 1 from division in the fr30 manual
  51. set_gr_limmed 0x0123,0x4567,gr2
  52. set_gr_limmed 0xfedc,0xba98,gr3
  53. cudiv gr3,gr2,gr3,cc5,1
  54. test_gr_limmed 0x0123,0x4567,gr2
  55. test_gr_limmed 0xfedc,0xba98,gr3
  56. ; simple division 12 / 3
  57. set_gr_immed 0x00000003,gr2
  58. set_gr_immed 0x0000000c,gr3
  59. cudiv gr3,gr2,gr3,cc2,0
  60. test_gr_immed 0x00000003,gr2
  61. test_gr_immed 0x0000000c,gr3
  62. ; example 1 from division in the fr30 manual
  63. set_gr_limmed 0x0123,0x4567,gr2
  64. set_gr_limmed 0xfedc,0xba98,gr3
  65. cudiv gr3,gr2,gr3,cc6,1
  66. test_gr_limmed 0x0123,0x4567,gr2
  67. test_gr_limmed 0xfedc,0xba98,gr3
  68. ; simple division 12 / 3
  69. set_gr_immed 0x00000003,gr2
  70. set_gr_immed 0x0000000c,gr3
  71. cudiv gr3,gr2,gr3,cc3,0
  72. test_gr_immed 0x00000003,gr2
  73. test_gr_immed 0x0000000c,gr3
  74. ; example 1 from division in the fr30 manual
  75. set_gr_limmed 0x0123,0x4567,gr2
  76. set_gr_limmed 0xfedc,0xba98,gr3
  77. cudiv gr3,gr2,gr3,cc7,1
  78. test_gr_limmed 0x0123,0x4567,gr2
  79. test_gr_limmed 0xfedc,0xba98,gr3
  80. pass