maddaccs.cgs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. # frv testcase for maddaccs $ACC40Si,$ACC40Sk
  2. # mach: fr400
  3. .include "../testutils.inc"
  4. start
  5. .global maddaccs
  6. maddaccs:
  7. set_accg_immed 0,accg0
  8. set_acc_immed 0x00000000,acc0
  9. set_accg_immed 0,accg1
  10. set_acc_immed 0x00000000,acc1
  11. maddaccs acc0,acc3
  12. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  13. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  14. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  15. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  16. test_accg_immed 0,accg3
  17. test_acc_limmed 0x0000,0x0000,acc3
  18. set_accg_immed 0,accg0
  19. set_acc_immed 0xdead0000,acc0
  20. set_accg_immed 0,accg1
  21. set_acc_immed 0x0000beef,acc1
  22. maddaccs acc0,acc3
  23. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  24. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  25. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  26. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  27. test_accg_immed 0,accg3
  28. test_acc_limmed 0xdead,0xbeef,acc3
  29. set_accg_immed 0,accg0
  30. set_acc_immed 0x0000dead,acc0
  31. set_accg_immed 0,accg1
  32. set_acc_immed 0xbeef0000,acc1
  33. maddaccs acc0,acc3
  34. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  35. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  36. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  37. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  38. test_accg_immed 0,accg3
  39. test_acc_limmed 0xbeef,0xdead,acc3
  40. set_accg_immed 0,accg0
  41. set_acc_immed 0x12345678,acc0
  42. set_accg_immed 0,accg1
  43. set_acc_immed 0x11111111,acc1
  44. maddaccs acc0,acc3
  45. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  46. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  47. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  48. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  49. test_accg_immed 0,accg3
  50. test_acc_limmed 0x2345,0x6789,acc3
  51. set_accg_immed 0,accg0
  52. set_acc_immed 0x12345678,acc0
  53. set_accg_immed 0,accg1
  54. set_acc_immed 0xffffffff,acc1
  55. maddaccs acc0,acc3
  56. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  57. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  58. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  59. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  60. test_accg_immed 1,accg3
  61. test_acc_limmed 0x1234,0x5677,acc3
  62. set_accg_immed 0,accg0
  63. set_acc_immed 0x12345678,acc0
  64. set_accg_immed 0xff,accg1
  65. set_acc_immed 0xffffffff,acc1
  66. maddaccs acc0,acc3
  67. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  68. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  69. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  70. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  71. test_accg_immed 0,accg3
  72. test_acc_limmed 0x1234,0x5677,acc3
  73. set_spr_immed 0,msr0
  74. set_accg_immed 0x7f,accg0
  75. set_acc_immed 0xfffe7ffe,acc0
  76. set_accg_immed 0x0,accg1
  77. set_acc_immed 0x00020001,acc1
  78. maddaccs acc0,acc3
  79. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  80. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  81. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  82. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  83. test_accg_immed 0x7f,accg3
  84. test_acc_limmed 0xffff,0xffff,acc3
  85. set_spr_immed 0,msr0
  86. set_accg_immed 0x80,accg0
  87. set_acc_immed 0x00000001,acc0
  88. set_accg_immed 0xff,accg1
  89. set_acc_immed 0xfffffffe,acc1
  90. maddaccs acc0,acc3
  91. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  92. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  93. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  94. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  95. test_accg_immed 0x80,accg3
  96. test_acc_limmed 0x0000,0x0000,acc3
  97. set_spr_immed 0,msr0
  98. set_spr_immed 0,msr1
  99. set_accg_immed 0,accg0
  100. set_acc_immed 0x00000001,acc0
  101. set_accg_immed 0,accg1
  102. set_acc_immed 0x00000001,acc1
  103. set_accg_immed 0,accg2
  104. set_acc_immed 0x00000001,acc2
  105. set_accg_immed 0x7f,accg3
  106. set_acc_immed 0xffffffff,acc3
  107. maddaccs.p acc0,acc1
  108. maddaccs acc2,acc3
  109. test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie not set
  110. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  111. test_spr_bits 0x3c,2,0x8,msr1 ; msr1.sie is set
  112. test_spr_bits 2,1,1,msr1 ; msr1.ovf set
  113. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  114. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  115. test_accg_immed 0,accg1
  116. test_acc_limmed 0x0000,0x0002,acc1
  117. test_accg_immed 0x7f,accg3
  118. test_acc_limmed 0xffff,0xffff,acc3
  119. pass