maddhss.cgs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # frv testcase for maddhss $FRi,$FRj,$FRj
  2. # mach: frv fr500 fr400
  3. .include "testutils.inc"
  4. start
  5. .global maddhss
  6. maddhss:
  7. set_fr_iimmed 0x0000,0x0000,fr10
  8. set_fr_iimmed 0x0000,0x0000,fr11
  9. maddhss fr10,fr11,fr12
  10. test_fr_limmed 0x0000,0x0000,fr12
  11. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  12. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  13. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  14. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  15. set_fr_iimmed 0xdead,0x0000,fr10
  16. set_fr_iimmed 0x0000,0xbeef,fr11
  17. maddhss fr10,fr11,fr12
  18. test_fr_limmed 0xdead,0xbeef,fr12
  19. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  20. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  21. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  22. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  23. set_fr_iimmed 0x0000,0xdead,fr10
  24. set_fr_iimmed 0xbeef,0x0000,fr11
  25. maddhss fr10,fr11,fr12
  26. test_fr_limmed 0xbeef,0xdead,fr12
  27. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  28. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  29. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  30. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  31. set_fr_iimmed 0x1234,0x5678,fr10
  32. set_fr_iimmed 0x1111,0x1111,fr11
  33. maddhss fr10,fr11,fr12
  34. test_fr_limmed 0x2345,0x6789,fr12
  35. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  36. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  37. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  38. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  39. set_fr_iimmed 0x1234,0x5678,fr10
  40. set_fr_iimmed 0xffff,0xffff,fr11
  41. maddhss fr10,fr11,fr12
  42. test_fr_limmed 0x1233,0x5677,fr12
  43. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  44. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  45. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  46. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  47. set_spr_immed 0,msr0
  48. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  49. set_fr_iimmed 0x0002,0x0001,fr11
  50. maddhss fr10,fr11,fr12
  51. test_fr_limmed 0x7fff,0x7fff,fr12
  52. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  53. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  54. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  55. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  56. set_spr_immed 0,msr0
  57. set_fr_iimmed 0x8001,0x8001,fr10
  58. set_fr_iimmed 0xffff,0xfffe,fr11
  59. maddhss fr10,fr11,fr12
  60. test_spr_bits 0x3c,2,0x4,msr0 ; msr0.sie is set
  61. test_fr_limmed 0x8000,0x8000,fr12
  62. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  63. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  64. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  65. set_spr_immed 0,msr0
  66. set_fr_iimmed 0x8001,0x8001,fr10
  67. set_fr_iimmed 0xfffe,0xfffe,fr11
  68. maddhss fr10,fr11,fr12
  69. test_fr_limmed 0x8000,0x8000,fr12
  70. test_spr_bits 0x3c,2,0xc,msr0 ; msr0.sie is set
  71. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  72. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  73. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  74. set_spr_immed 0,msr0
  75. set_spr_immed 0,msr1
  76. set_fr_iimmed 0x0001,0x0001,fr10
  77. set_fr_iimmed 0x7fff,0x7fff,fr11
  78. maddhss.p fr10,fr10,fr12
  79. maddhss fr11,fr11,fr13
  80. test_fr_limmed 0x0002,0x0002,fr12
  81. test_fr_limmed 0x7fff,0x7fff,fr13
  82. test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie not set
  83. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  84. test_spr_bits 0x3c,2,0xc,msr1 ; msr1.sie is set
  85. test_spr_bits 2,1,1,msr1 ; msr1.ovf set
  86. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  87. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  88. pass