mips16-undecoded.s 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. .text
  2. .set mips16
  3. .globl foo
  4. .ent foo
  5. foo:
  6. # Individual major opcodes.
  7. addiu $2, $sp, 0x4011
  8. .half 0xf008, 0x0211
  9. .half 0xf008, 0x0231
  10. .half 0xf008, 0x0251
  11. .half 0xf008, 0x0291
  12. addiu $2, $pc, 0x4011
  13. .half 0xf008, 0x0a11
  14. .half 0xf008, 0x0a31
  15. .half 0xf008, 0x0a51
  16. .half 0xf008, 0x0a91
  17. b . + 0x8026
  18. .half 0xf008, 0x1011
  19. .half 0xf008, 0x1031
  20. .half 0xf008, 0x1051
  21. .half 0xf008, 0x1091
  22. .half 0xf008, 0x1111
  23. .half 0xf008, 0x1211
  24. .half 0xf008, 0x1411
  25. beqz $2, . + 0x8026
  26. .half 0xf008, 0x2211
  27. .half 0xf008, 0x2231
  28. .half 0xf008, 0x2251
  29. .half 0xf008, 0x2291
  30. bnez $2, . + 0x8026
  31. .half 0xf008, 0x2a11
  32. .half 0xf008, 0x2a31
  33. .half 0xf008, 0x2a51
  34. .half 0xf008, 0x2a91
  35. addiu $2, 0x4011
  36. .half 0xf008, 0x4a11
  37. .half 0xf008, 0x4a31
  38. .half 0xf008, 0x4a51
  39. .half 0xf008, 0x4a91
  40. slti $2, 0x4011
  41. .half 0xf008, 0x5211
  42. .half 0xf008, 0x5231
  43. .half 0xf008, 0x5251
  44. .half 0xf008, 0x5291
  45. sltiu $2, 0x4011
  46. .half 0xf008, 0x5a11
  47. .half 0xf008, 0x5a31
  48. .half 0xf008, 0x5a51
  49. .half 0xf008, 0x5a91
  50. li $2, 0x4011
  51. .half 0xf008, 0x6a11
  52. .half 0xf008, 0x6a31
  53. .half 0xf008, 0x6a51
  54. .half 0xf008, 0x6a91
  55. cmpi $2, 0x4011
  56. .half 0xf008, 0x7211
  57. .half 0xf008, 0x7231
  58. .half 0xf008, 0x7251
  59. .half 0xf008, 0x7291
  60. lw $2, 0x4011($sp)
  61. .half 0xf008, 0x9211
  62. .half 0xf008, 0x9231
  63. .half 0xf008, 0x9251
  64. .half 0xf008, 0x9291
  65. lw $2, 0x4011($pc)
  66. .half 0xf008, 0xb211
  67. .half 0xf008, 0xb231
  68. .half 0xf008, 0xb251
  69. .half 0xf008, 0xb291
  70. sw $2, 0x4011($sp)
  71. .half 0xf008, 0xd211
  72. .half 0xf008, 0xd231
  73. .half 0xf008, 0xd251
  74. .half 0xf008, 0xd291
  75. # I8 major opcode.
  76. bteqz . + 0x8026
  77. .half 0xf008, 0x6011
  78. .half 0xf008, 0x6031
  79. .half 0xf008, 0x6051
  80. .half 0xf008, 0x6091
  81. btnez . + 0x8026
  82. .half 0xf008, 0x6111
  83. .half 0xf008, 0x6131
  84. .half 0xf008, 0x6151
  85. .half 0xf008, 0x6191
  86. sw $ra, 0x4011($sp)
  87. .half 0xf008, 0x6211
  88. .half 0xf008, 0x6231
  89. .half 0xf008, 0x6251
  90. .half 0xf008, 0x6291
  91. addiu $sp, 0x4011
  92. .half 0xf008, 0x6311
  93. .half 0xf008, 0x6331
  94. .half 0xf008, 0x6351
  95. .half 0xf008, 0x6391
  96. # SHIFT major opcode
  97. sll $2, $3, 0x14
  98. .half 0xf500, 0x3260
  99. .half 0xf500, 0x3264
  100. .half 0xf500, 0x3268
  101. .half 0xf500, 0x3270
  102. .half 0xf501, 0x3260
  103. .half 0xf502, 0x3260
  104. .half 0xf504, 0x3260
  105. .half 0xf508, 0x3260
  106. .half 0xf510, 0x3260
  107. .half 0xf520, 0x3260
  108. dsll $2, $3, 0x14
  109. .half 0xf500, 0x3261
  110. .half 0xf500, 0x3265
  111. .half 0xf500, 0x3269
  112. .half 0xf500, 0x3271
  113. .half 0xf501, 0x3261
  114. .half 0xf502, 0x3261
  115. .half 0xf504, 0x3261
  116. .half 0xf508, 0x3261
  117. .half 0xf510, 0x3261
  118. .half 0xf520, 0x3261
  119. srl $2, $3, 0x14
  120. .half 0xf500, 0x3262
  121. .half 0xf500, 0x3266
  122. .half 0xf500, 0x326a
  123. .half 0xf500, 0x3272
  124. .half 0xf501, 0x3262
  125. .half 0xf502, 0x3262
  126. .half 0xf504, 0x3262
  127. .half 0xf508, 0x3262
  128. .half 0xf510, 0x3262
  129. .half 0xf520, 0x3262
  130. sra $2, $3, 0x14
  131. .half 0xf500, 0x3263
  132. .half 0xf500, 0x3267
  133. .half 0xf500, 0x326b
  134. .half 0xf500, 0x3273
  135. .half 0xf501, 0x3263
  136. .half 0xf502, 0x3263
  137. .half 0xf504, 0x3263
  138. .half 0xf508, 0x3263
  139. .half 0xf510, 0x3263
  140. .half 0xf520, 0x3263
  141. # RR major opcode
  142. dsrl $2, 0x14
  143. .half 0xf500, 0xe848
  144. .half 0xf500, 0xe948
  145. .half 0xf500, 0xea48
  146. .half 0xf500, 0xec48
  147. .half 0xf501, 0xe848
  148. .half 0xf502, 0xe848
  149. .half 0xf504, 0xe848
  150. .half 0xf508, 0xe848
  151. .half 0xf510, 0xe848
  152. .half 0xf520, 0xe848
  153. dsra $2, 0x14
  154. .half 0xf500, 0xe853
  155. .half 0xf500, 0xe953
  156. .half 0xf500, 0xea53
  157. .half 0xf500, 0xec53
  158. .half 0xf501, 0xe853
  159. .half 0xf502, 0xe853
  160. .half 0xf504, 0xe853
  161. .half 0xf508, 0xe853
  162. .half 0xf510, 0xe853
  163. .half 0xf520, 0xe853
  164. # I64 major opcode.
  165. daddiu $sp, 0x4011
  166. .half 0xf008, 0xfb11
  167. .half 0xf008, 0xfb31
  168. .half 0xf008, 0xfb51
  169. .half 0xf008, 0xfb91
  170. .end foo
  171. # Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
  172. .align 4, 0
  173. .space 16