r6-64.s 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. # mips64 specific r6 tests (non FPU)
  2. # mach: mips64r6
  3. # as: -mabi=eabi
  4. # ld: -N -Ttext=0x80010000 -Tdata=0x80020000
  5. # output: *\\npass\\n
  6. .include "testutils.inc"
  7. .include "utils-r6.inc"
  8. .data
  9. d0: .dword 0
  10. dval: .dword 0xaa55bb66cc77dd88
  11. d1: .dword 0xaaaabbbbccccdddd
  12. d2: .dword 256
  13. dlo: .dword 0xaabbbbccccdddd00
  14. dhi: .dword 0xffffffffffffffaa
  15. dhiu: .dword 0x00000000000000aa
  16. d3: .dword 0xffaaaabbbbccccde
  17. d4: .dword 0xffffffffffffffdd
  18. d5: .dword 0x00000000000000dd
  19. d6: .dword 0x00aaaabbbbccccdd
  20. d7: .dword 0xeeeeffff00001111
  21. d8: .dword 0xbbccccddddeeeeff
  22. d9: .dword 0x000000ddaaaabbbb
  23. d10: .dword 0x5555dddd3333bbbb
  24. d11: .dword 0x9999999999999999
  25. d12: .dword 56
  26. d13: .dword 8
  27. d14: .dword 57
  28. d15: .dword 0x000000ddaaaac98b
  29. d16: .dword 0xffffffffdead00dd
  30. d17: .dword 0xffffffffc0de0000
  31. d18: .dword 0x0000123400000000
  32. d19: .dword 0xffffabcddead00dd
  33. d20: .dword 0xc0de000000000000
  34. d21: .dword 0x8000abcddead00dd
  35. dmask:.dword 0xffffffffffff0000
  36. dval1: .word 0x1234abcd
  37. dval2: .word 0xffee0000
  38. dval3: .dword 0xffffffffffffffff
  39. .fill 240,1,0
  40. dval4: .dword 0x5555555555555555
  41. .fill 264,1,0
  42. dval5: .dword 0xaaaaaaaaaaaaaaaa
  43. .text
  44. setup
  45. .set noreorder
  46. .ent DIAG
  47. DIAG:
  48. writemsg "[1] Test DMUL"
  49. r6ck_2r dmul, 6, 5, 30
  50. r6ck_2r dmul, -7, 9, -63
  51. r6ck_2r dmul, -1, 1, -1
  52. r6ck_2dr dmul, d1, d2, dlo
  53. writemsg "[2] Test DMUH"
  54. r6ck_2r dmuh, 6, 5, 0
  55. r6ck_2r dmuh, -7, 9, 0xffffffffffffffff
  56. r6ck_2r dmuh, -1, 1, -1
  57. r6ck_2dr dmuh, d1, d2, dhi
  58. writemsg "[3] Test DMULU"
  59. r6ck_2r dmulu, 12, 10, 120
  60. r6ck_2r dmulu, -1, 1, -1
  61. r6ck_2dr dmulu, d1, d2, dlo
  62. writemsg "[4] Test DMUHU"
  63. r6ck_2r dmuhu, 12, 10, 0
  64. r6ck_2r dmuhu, -1, 1, 0
  65. r6ck_2dr dmuhu, d1, d2, dhiu
  66. writemsg "[5] Test DDIV"
  67. r6ck_2r ddiv, 10001, 10, 1000
  68. r6ck_2r ddiv, -123456, 560, -220
  69. r6ck_2dr ddiv, d1, d2, d3
  70. writemsg "[6] Test DMOD"
  71. r6ck_2r dmod, 10001, 10, 1
  72. r6ck_2r dmod, -123456, 560, 0xffffffffffffff00
  73. r6ck_2dr dmod, d1, d2, d4
  74. writemsg "[7] Test DDIVU"
  75. r6ck_2r ddivu, 9, 100, 0
  76. r6ck_2dr ddivu, d1, d2, d6
  77. writemsg "[8] Test DMODU"
  78. r6ck_2r dmodu, 9, 100, 9
  79. r6ck_2dr dmodu, d1, d2, d5
  80. writemsg "[9] Test DALIGN"
  81. r6ck_2dr1i dalign, d7, d1, 3, d8
  82. r6ck_2dr1i dalign, d1, d5, 4, d9
  83. writemsg "[10] Test DBITSWAP"
  84. r6ck_1dr dbitswap, d1, d10
  85. r6ck_1dr dbitswap, d11, d11
  86. writemsg "[11] Test DCLZ"
  87. r6ck_1dr dclz, d5, d12
  88. r6ck_1dr dclz, d6, d13
  89. writemsg "[12] Test DCLO"
  90. r6ck_1dr dclo, d5, d0
  91. r6ck_1dr dclo, dhi, d14
  92. writemsg "[13] Test DLSA"
  93. r6ck_2r1i dlsa, 0x82, 0x2000068, 4, 0x2000888
  94. r6ck_2dr1i dlsa, d5, d9, 4, d15
  95. writemsg "[14] Test DAUI"
  96. r6ck_1dr1i daui, d5, 0xdead, d16
  97. r6ck_1dr1i daui, d0, 0xc0de, d17
  98. writemsg "[15] Test DAHI"
  99. r6ck_0dr1i dahi, d0, 0x1234, d18
  100. r6ck_0dr1i dahi, d16, 0xabce, d19
  101. writemsg "[16] Test DATI"
  102. r6ck_0dr1i dati, d0, 0xc0de, d20
  103. r6ck_0dr1i dati, d19, 0x8001, d21
  104. writemsg "[17] Test LDPC"
  105. ld $5, dval
  106. nop
  107. ldpc $4, dval
  108. fp_assert $4, $5
  109. writemsg "[18] Test LWUPC"
  110. lwu $5, dval1
  111. lwupc $4, dval1
  112. fp_assert $4, $5
  113. lwu $5, dval2
  114. lwupc $4, dval2
  115. fp_assert $4, $5
  116. writemsg "[19] Test LLD"
  117. ld $5, dval3
  118. dla $3, dval4
  119. lld $4, -248($3)
  120. fp_assert $4, $5
  121. writemsg "[20] Test SCD"
  122. lld $4, -248($3)
  123. dli $4, 0xafaf
  124. scd $4, -248($3)
  125. ld $5, dval3
  126. dli $4, 0xafaf
  127. fp_assert $4, $5
  128. pass
  129. .end DIAG