home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 2 / MacMania 2.toast / Demo's / Tools&Utilities / Programming / SPIM Folder / Sources / op.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-05  |  13.5 KB  |  315 lines  |  [TEXT/ttxt]

  1. /* SPIM S20 MIPS simulator.
  2.    This file describes the MIPS instructions, the assembler pseudo
  3.    instructions, the assembler pseudo-ops, and the spim commands.
  4.    Copyright (C) 1990 by James Larus (larus@cs.wisc.edu).
  5.  
  6.    SPIM is free software; you can redistribute it and/or modify it
  7.    under the terms of the GNU General Public License as published by the
  8.    Free Software Foundation; either version 1, or (at your option) any
  9.    later version.
  10.  
  11.    SPIM is distributed in the hope that it will be useful, but WITHOUT
  12.    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13.    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14.    for more details.
  15.  
  16.    You should have received a copy of the GNU General Public License
  17.    along with GNU CC; see the file COPYING.  If not, write to James R.
  18.    Larus, Computer Sciences Department, University of Wisconsin--Madison,
  19.    1210 West Dayton Street, Madison, WI 53706, USA or to the Free
  20.    Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
  21.  
  22.  
  23. /* $Header: /var/home/cs354/.spim/RCS/op.h,v 1.1 1992/10/06 17:32:03 cs354 Exp $
  24. */
  25.  
  26.  
  27.  
  28. /* Type of each entry: */
  29.  
  30. #define ASM_DIR        0
  31. #define PSEUDO_OP    2
  32.  
  33. #define B0_TYPE_INST    4
  34. #define B1_TYPE_INST    5
  35. #define I1t_TYPE_INST    6
  36. #define I2_TYPE_INST    7
  37. #define B2_TYPE_INST    25
  38. #define I2a_TYPE_INST    8
  39.  
  40. #define R1s_TYPE_INST    9
  41. #define R1d_TYPE_INST    10
  42. #define R2td_TYPE_INST    11
  43. #define R2st_TYPE_INST    12
  44. #define R2ds_TYPE_INST    13
  45. #define R2sh_TYPE_INST    14
  46. #define R3_TYPE_INST    15
  47. #define R3sh_TYPE_INST    16
  48.  
  49. #define FP_I2a_TYPE_INST    17
  50. #define FP_R2ds_TYPE_INST    18
  51. #define FP_R2st_TYPE_INST    19
  52. #define FP_R3_TYPE_INST    20
  53. #define FP_MOV_TYPE_INST 21
  54.  
  55. #define J_TYPE_INST    22
  56. #define CP_TYPE_INST    23
  57. #define NOARG_TYPE_INST 24
  58.  
  59.  
  60. /* Information on each keyword token that can be read by spim.    Must be
  61.    sorted in alphabetical order. */
  62.  
  63. OP (".alias",    Y_ALIAS_DIR,    ASM_DIR,        -1)
  64. OP (".align",    Y_ALIGN_DIR,    ASM_DIR,        -1)
  65. OP (".ascii",    Y_ASCII_DIR,    ASM_DIR,        -1)
  66. OP (".asciiz",    Y_ASCIIZ_DIR,    ASM_DIR,        -1)
  67. OP (".asm0",    Y_ASM0_DIR,    ASM_DIR,        -1)
  68. OP (".bgnb",    Y_BGNB_DIR,    ASM_DIR,        -1)
  69. OP (".byte",    Y_BYTE_DIR,    ASM_DIR,        -1)
  70. OP (".comm",    Y_COMM_DIR,    ASM_DIR,        -1)
  71. OP (".data",    Y_DATA_DIR,    ASM_DIR,        -1)
  72. OP (".double",    Y_DOUBLE_DIR,    ASM_DIR,        -1)
  73. OP (".end",    Y_END_DIR,    ASM_DIR,        -1)
  74. OP (".endb",    Y_ENDB_DIR,    ASM_DIR,        -1)
  75. OP (".endr",    Y_ENDR_DIR,    ASM_DIR,        -1)
  76. OP (".ent",    Y_ENT_DIR,    ASM_DIR,        -1)
  77. OP (".eq",    Y_EQ_DIR,    ASM_DIR,        -1)
  78. OP (".err",    Y_ERR_DIR,    ASM_DIR,        -1)
  79. OP (".extern",    Y_EXTERN_DIR,    ASM_DIR,        -1)
  80. OP (".file",    Y_FILE_DIR,    ASM_DIR,        -1)
  81. OP (".float",    Y_FLOAT_DIR,    ASM_DIR,        -1)
  82. OP (".fmask",    Y_FMASK_DIR,    ASM_DIR,        -1)
  83. OP (".frame",    Y_FRAME_DIR,    ASM_DIR,        -1)
  84. OP (".globl",    Y_GLOBAL_DIR,    ASM_DIR,        -1)
  85. OP (".half",    Y_HALF_DIR,    ASM_DIR,        -1)
  86. OP (".kdata",    Y_K_DATA_DIR,    ASM_DIR,        -1)
  87. OP (".ktext",    Y_K_TEXT_DIR,    ASM_DIR,        -1)
  88. OP (".label",    Y_LABEL_DIR,    ASM_DIR,        -1)
  89. OP (".lcomm",    Y_LCOMM_DIR,    ASM_DIR,        -1)
  90. OP (".livereg",    Y_LIVEREG_DIR,    ASM_DIR,        -1)
  91. OP (".loc",    Y_LOC_DIR,    ASM_DIR,        -1)
  92. OP (".mask",    Y_MASK_DIR,    ASM_DIR,        -1)
  93. OP (".noalias",    Y_NOALIAS_DIR,    ASM_DIR,        -1)
  94. OP (".option",    Y_OPTIONS_DIR,    ASM_DIR,        -1)
  95. OP (".rdata",    Y_RDATA_DIR,    ASM_DIR,        -1)
  96. OP (".repeat",    Y_REPEAT_DIR,    ASM_DIR,        -1)
  97. OP (".sdata",    Y_SDATA_DIR,    ASM_DIR,        -1)
  98. OP (".set",    Y_SET_DIR,    ASM_DIR,        -1)
  99. OP (".space",    Y_SPACE_DIR,    ASM_DIR,        -1)
  100. OP (".struct",    Y_STRUCT_DIR,    ASM_DIR,        -1)
  101. OP (".text",    Y_TEXT_DIR,    ASM_DIR,        -1)
  102. OP (".verstamp",Y_VERSTAMP_DIR,    ASM_DIR,        -1)
  103. OP (".vreg",    Y_VREG_DIR,    ASM_DIR,        -1)
  104. OP (".word",    Y_WORD_DIR,    ASM_DIR,        -1)
  105. OP ("abs",    Y_ABS_POP,    PSEUDO_OP,        -1)
  106. OP ("abs.d",    Y_ABS_D_OP,    FP_R2ds_TYPE_INST,    0x46200005)
  107. OP ("abs.s",    Y_ABS_S_OP,    FP_R2ds_TYPE_INST,    0x46000005)
  108. OP ("add",    Y_ADD_OP,    R3_TYPE_INST,        0x00000020)
  109. OP ("add.d",    Y_ADD_D_OP,    FP_R3_TYPE_INST,    0x46200000)
  110. OP ("add.s",    Y_ADD_S_OP,    FP_R3_TYPE_INST,    0x46000000)
  111. OP ("addi",    Y_ADDI_OP,    I2_TYPE_INST,        0x20000000)
  112. OP ("addiu",    Y_ADDIU_OP,    I2_TYPE_INST,        0x24000000)
  113. OP ("addu",    Y_ADDU_OP,    R3_TYPE_INST,        0x00000021)
  114. OP ("and",    Y_AND_OP,    R3_TYPE_INST,        0x00000024)
  115. OP ("andi",    Y_ANDI_OP,    I2_TYPE_INST,        0x30000000)
  116. OP ("b",    Y_B_POP,    PSEUDO_OP,        -1)
  117. OP ("bal",    Y_BAL_POP,    PSEUDO_OP,        -1)
  118. OP ("bc0f",    Y_BC0F_OP,    B0_TYPE_INST,        0x41000000)
  119. OP ("bc0t",    Y_BC0T_OP,    B0_TYPE_INST,        0x41010000)
  120. OP ("bc1f",    Y_BC1F_OP,    B0_TYPE_INST,        0x45000000)
  121. OP ("bc1t",    Y_BC1T_OP,    B0_TYPE_INST,        0x45010000)
  122. OP ("bc2f",    Y_BC2F_OP,    B0_TYPE_INST,        0x49000000)
  123. OP ("bc2t",    Y_BC2T_OP,    B0_TYPE_INST,        0x49010000)
  124. OP ("bc3f",    Y_BC3F_OP,    B0_TYPE_INST,        0x4d000000)
  125. OP ("bc3t",    Y_BC3T_OP,    B0_TYPE_INST,        0x4d010000)
  126. OP ("beq",    Y_BEQ_OP,    B2_TYPE_INST,        0x10000000)
  127. OP ("beqz",    Y_BEQZ_POP,    PSEUDO_OP,        -1)
  128. OP ("bge",    Y_BGE_POP,    PSEUDO_OP,        -1)
  129. OP ("bgeu",    Y_BGEU_POP,    PSEUDO_OP,        -1)
  130. OP ("bgez",    Y_BGEZ_OP,    B1_TYPE_INST,        0x04010000)
  131. OP ("bgezal",    Y_BGEZAL_OP,    B1_TYPE_INST,        0x04110000)
  132. OP ("bgt",    Y_BGT_POP,    PSEUDO_OP,        -1)
  133. OP ("bgtu",    Y_BGTU_POP,    PSEUDO_OP,        -1)
  134. OP ("bgtz",    Y_BGTZ_OP,    B1_TYPE_INST,        0x1c000000)
  135. OP ("ble",    Y_BLE_POP,    PSEUDO_OP,        -1)
  136. OP ("bleu",    Y_BLEU_POP,    PSEUDO_OP,        -1)
  137. OP ("blez",    Y_BLEZ_OP,    B1_TYPE_INST,        0x18000000)
  138. OP ("blt",    Y_BLT_POP,    PSEUDO_OP,        -1)
  139. OP ("bltu",    Y_BLTU_POP,    PSEUDO_OP,        -1)
  140. OP ("bltz",    Y_BLTZ_OP,    B1_TYPE_INST,        0x04000000)
  141. OP ("bltzal",    Y_BLTZAL_OP,    B1_TYPE_INST,        0x04100000)
  142. OP ("bne",    Y_BNE_OP,    B2_TYPE_INST,        0x14000000)
  143. OP ("bnez",    Y_BNEZ_POP,    PSEUDO_OP,        -1)
  144. OP ("break",    Y_BREAK_OP,    R1d_TYPE_INST,        0x0000000d)
  145. OP ("c.eq.d",    Y_C_EQ_D_OP,    FP_R2st_TYPE_INST,    0x46200032)
  146. OP ("c.eq.s",    Y_C_EQ_S_OP,    FP_R2st_TYPE_INST,    0x46000032)
  147. OP ("c.f.d",    Y_C_F_D_OP,    FP_R2st_TYPE_INST,    0x46200030)
  148. OP ("c.f.s",    Y_C_F_S_OP,    FP_R2st_TYPE_INST,    0x46000030)
  149. OP ("c.le.d",    Y_C_LE_D_OP,    FP_R2st_TYPE_INST,    0x4620003e)
  150. OP ("c.le.s",    Y_C_LE_S_OP,    FP_R2st_TYPE_INST,    0x4600003e)
  151. OP ("c.lt.d",    Y_C_LT_D_OP,    FP_R2st_TYPE_INST,    0x4620003c)
  152. OP ("c.lt.s",    Y_C_LT_S_OP,    FP_R2st_TYPE_INST,    0x4600003c)
  153. OP ("c.nge.d",    Y_C_NGE_D_OP,    FP_R2st_TYPE_INST,    0x4620003d)
  154. OP ("c.nge.s",    Y_C_NGE_S_OP,    FP_R2st_TYPE_INST,    0x4600003d)
  155. OP ("c.ngl.d",    Y_C_NGL_D_OP,    FP_R2st_TYPE_INST,    0x4620003b)
  156. OP ("c.ngl.s",    Y_C_NGL_S_OP,    FP_R2st_TYPE_INST,    0x4600003b)
  157. OP ("c.ngle.d",    Y_C_NGLE_D_OP,    FP_R2st_TYPE_INST,    0x46200039)
  158. OP ("c.ngle.s",    Y_C_NGLE_S_OP,    FP_R2st_TYPE_INST,    0x46000039)
  159. OP ("c.ngt.d",    Y_C_NGT_D_OP,    FP_R2st_TYPE_INST,    0x4620003f)
  160. OP ("c.ngt.s",    Y_C_NGT_S_OP,    FP_R2st_TYPE_INST,    0x4600003f)
  161. OP ("c.ole.d",    Y_C_OLE_D_OP,    FP_R2st_TYPE_INST,    0x46200036)
  162. OP ("c.ole.s",    Y_C_OLE_S_OP,    FP_R2st_TYPE_INST,    0x46000036)
  163. OP ("c.seq.d",    Y_C_SEQ_D_OP,    FP_R2st_TYPE_INST,    0x4620003a)
  164. OP ("c.seq.s",    Y_C_SEQ_S_OP,    FP_R2st_TYPE_INST,    0x4600003a)
  165. OP ("c.sf.d",    Y_C_SF_D_OP,    FP_R2st_TYPE_INST,    0x46200038)
  166. OP ("c.sf.s",    Y_C_SF_S_OP,    FP_R2st_TYPE_INST,    0x46000038)
  167. OP ("c.ueq.d",    Y_C_UEQ_D_OP,    FP_R2st_TYPE_INST,    0x46200033)
  168. OP ("c.ueq.s",    Y_C_UEQ_S_OP,    FP_R2st_TYPE_INST,    0x46000033)
  169. OP ("c.ule.d",    Y_C_ULE_D_OP,    FP_R2st_TYPE_INST,    0x46200037)
  170. OP ("c.ule.s",    Y_C_ULE_S_OP,    FP_R2st_TYPE_INST,    0x46000037)
  171. OP ("c.un.d",    Y_C_UN_D_OP,    FP_R2st_TYPE_INST,    0x46200031)
  172. OP ("c.un.s",    Y_C_UN_S_OP,    FP_R2st_TYPE_INST,    0x46000031)
  173. OP ("call",    Y_CALL_POP,    PSEUDO_OP,        -1)
  174. OP ("cfc0",    Y_CFC0_OP,    R2td_TYPE_INST,        0x40400000)
  175. OP ("cfc1",    Y_CFC1_OP,    R2td_TYPE_INST,        0x44400000)
  176. OP ("cfc2",    Y_CFC2_OP,    R2td_TYPE_INST,        0x48400000)
  177. OP ("cfc3",    Y_CFC3_OP,    R2td_TYPE_INST,        0x4c400000)
  178. OP ("cop0",    Y_COP0_OP,    J_TYPE_INST,        0x40200000)
  179. OP ("cop1",    Y_COP1_OP,    J_TYPE_INST,        0x44200000)
  180. OP ("cop2",    Y_COP2_OP,    J_TYPE_INST,        0x48200000)
  181. OP ("cop3",    Y_COP3_OP,    J_TYPE_INST,        0x4c200000)
  182. OP ("ctc0",    Y_CTC0_OP,    R2td_TYPE_INST,        0x40c00000)
  183. OP ("ctc1",    Y_CTC1_OP,    R2td_TYPE_INST,        0x44c00000)
  184. OP ("ctc2",    Y_CTC2_OP,    R2td_TYPE_INST,        0x48c00000)
  185. OP ("ctc3",    Y_CTC3_OP,    R2td_TYPE_INST,        0x4cc00000)
  186. OP ("cvt",    Y_CVT_POP,    PSEUDO_OP,        -1)
  187. OP ("cvt.d.s",    Y_CVT_D_S_OP,    FP_R2ds_TYPE_INST,    0x46000021)
  188. OP ("cvt.d.w",    Y_CVT_D_W_OP,    FP_R2ds_TYPE_INST,    0x47400021)
  189. OP ("cvt.s.d",    Y_CVT_S_D_OP,    FP_R2ds_TYPE_INST,    0x46200020)
  190. OP ("cvt.s.w",    Y_CVT_S_W_OP,    FP_R2ds_TYPE_INST,    0x47400020)
  191. OP ("cvt.w.d",    Y_CVT_W_D_OP,    FP_R2ds_TYPE_INST,    0x46200024)
  192. OP ("cvt.w.s",    Y_CVT_W_S_OP,    FP_R2ds_TYPE_INST,    0x46000024)
  193. OP ("div",    Y_DIV_OP,    R2st_TYPE_INST,        0x0000001a)
  194. OP ("div.d",    Y_DIV_D_OP,    FP_R3_TYPE_INST,    0x46200003)
  195. OP ("div.s",    Y_DIV_S_OP,    FP_R3_TYPE_INST,    0x46000003)
  196. OP ("divu",    Y_DIVU_OP,    R2st_TYPE_INST,        0x0000001b)
  197. OP ("done",    Y_DONE_POP,    PSEUDO_OP,        -1)
  198. OP ("get",    Y_GET_POP,    PSEUDO_OP,        -1)
  199. OP ("getc",    Y_GETC_POP,    PSEUDO_OP,        -1)
  200. OP ("geti",    Y_GETI_POP,    PSEUDO_OP,        -1)
  201. OP ("j",    Y_J_OP,        J_TYPE_INST,        0x08000000)
  202. OP ("jal",    Y_JAL_OP,    J_TYPE_INST,        0x0c000000)
  203. OP ("jalr",    Y_JALR_OP,    R2ds_TYPE_INST,        0x00000009)
  204. OP ("jr",    Y_JR_OP,    R1s_TYPE_INST,        0x00000008)
  205. OP ("l.d",    Y_L_D_POP,    PSEUDO_OP,        -1)
  206. OP ("l.s",    Y_L_S_POP,    PSEUDO_OP,        -1)
  207. OP ("la",    Y_LA_POP,    PSEUDO_OP,        -1)
  208. OP ("lb",    Y_LB_OP,    I2a_TYPE_INST,        0x80000000)
  209. OP ("lbu",    Y_LBU_OP,    I2a_TYPE_INST,        0x90000000)
  210. OP ("ld",    Y_LD_POP,    PSEUDO_OP,        -1)
  211. OP ("lh",    Y_LH_OP,    I2a_TYPE_INST,        0x84000000)
  212. OP ("lhu",    Y_LHU_OP,    I2a_TYPE_INST,        0x94000000)
  213. OP ("li",    Y_LI_POP,    PSEUDO_OP,        -1)
  214. OP ("li.d",    Y_LI_D_POP,    PSEUDO_OP,        -1)
  215. OP ("li.s",    Y_LI_S_POP,    PSEUDO_OP,        -1)
  216. OP ("lp",    Y_LP_POP,    PSEUDO_OP,        -1)
  217. OP ("lui",    Y_LUI_OP,    I1t_TYPE_INST,        0x3c000000)
  218. OP ("lw",    Y_LW_OP,    I2a_TYPE_INST,        0x8c000000)
  219. OP ("lwc0",    Y_LWC0_OP,    I2a_TYPE_INST,        0xc0000000)
  220. OP ("lwc1",    Y_LWC1_OP,    FP_I2a_TYPE_INST,    0xc4000000)
  221. OP ("lwc2",    Y_LWC2_OP,    I2a_TYPE_INST,        0xc8000000)
  222. OP ("lwc3",    Y_LWC3_OP,    I2a_TYPE_INST,        0xcc000000)
  223. OP ("lwl",    Y_LWL_OP,    I2a_TYPE_INST,        0x88000000)
  224. OP ("lwr",    Y_LWR_OP,    I2a_TYPE_INST,        0x98000000)
  225. OP ("mfc0",    Y_MFC0_OP,    CP_TYPE_INST,        0x40000000)
  226. OP ("mfc1",    Y_MFC1_OP,    CP_TYPE_INST,        0x44000000)
  227. OP ("mfc1.d",    Y_MFC1_D_POP,    PSEUDO_OP,        -1)
  228. OP ("mfc1.s",    Y_MFC1_OP,    CP_TYPE_INST,        0x44000000)
  229. OP ("mfc2",    Y_MFC2_OP,    CP_TYPE_INST,        0x48000000)
  230. OP ("mfc3",    Y_MFC3_OP,    CP_TYPE_INST,        0x4c000000)
  231. OP ("mfhi",    Y_MFHI_OP,    R1d_TYPE_INST,        0x00000010)
  232. OP ("mflo",    Y_MFLO_OP,    R1d_TYPE_INST,        0x00000012)
  233. OP ("mov.d",    Y_MOV_D_OP,    FP_MOV_TYPE_INST,    0x46200006)
  234. OP ("mov.s",    Y_MOV_S_OP,    FP_MOV_TYPE_INST,    0x46000006)
  235. OP ("move",    Y_MOVE_POP,    PSEUDO_OP,        -1)
  236. OP ("mtc0",    Y_MTC0_OP,    CP_TYPE_INST,        0x40800000)
  237. OP ("mtc1",    Y_MTC1_OP,    CP_TYPE_INST,        0x44800000)
  238. OP ("mtc1.d",    Y_MTC1_D_POP,    PSEUDO_OP,        -1)
  239. OP ("mtc2",    Y_MTC2_OP,    CP_TYPE_INST,        0x48800000)
  240. OP ("mtc3",    Y_MTC3_OP,    CP_TYPE_INST,        0x4c800000)
  241. OP ("mthi",    Y_MTHI_OP,    R1s_TYPE_INST,        0x00000011)
  242. OP ("mtlo",    Y_MTLO_OP,    R1s_TYPE_INST,        0x00000013)
  243. OP ("mul",    Y_MUL_POP,    PSEUDO_OP,        -1)
  244. OP ("mul.d",    Y_MUL_D_OP,    FP_R3_TYPE_INST,    0x46200002)
  245. OP ("mul.s",    Y_MUL_S_OP,    FP_R3_TYPE_INST,    0x46000002)
  246. OP ("mulo",    Y_MULO_POP,    PSEUDO_OP,        -1)
  247. OP ("mulou",    Y_MULOU_POP,    PSEUDO_OP,        -1)
  248. OP ("mult",    Y_MULT_OP,    R2st_TYPE_INST,        0x00000018)
  249. OP ("multu",    Y_MULTU_OP,    R2st_TYPE_INST,        0x00000019)
  250. OP ("neg",    Y_NEG_POP,    PSEUDO_OP,        -1)
  251. OP ("neg.d",    Y_NEG_D_OP,    FP_R2ds_TYPE_INST,    0x46200007)
  252. OP ("neg.s",    Y_NEG_S_OP,    FP_R2ds_TYPE_INST,    0x46000007)
  253. OP ("negu",    Y_NEGU_POP,    PSEUDO_OP,        -1)
  254. OP ("nop",    Y_NOP_POP,    PSEUDO_OP,        -1)
  255. OP ("nor",    Y_NOR_OP,    R3_TYPE_INST,        0x00000027)
  256. OP ("not",    Y_NOT_POP,    PSEUDO_OP,        -1)
  257. OP ("or",    Y_OR_OP,    R3_TYPE_INST,        0x00000025)
  258. OP ("ori",    Y_ORI_OP,    I2_TYPE_INST,        0x34000000)
  259. OP ("put",    Y_PUT_POP,    PSEUDO_OP,        -1)
  260. OP ("putc",    Y_PUTC_POP,    PSEUDO_OP,        -1)
  261. OP ("puti",    Y_PUTI_POP,    PSEUDO_OP,        -1)
  262. OP ("puts",    Y_PUTS_POP,    PSEUDO_OP,        -1)
  263. OP ("rem",    Y_REM_POP,    PSEUDO_OP,        -1)
  264. OP ("remu",    Y_REMU_POP,    PSEUDO_OP,        -1)
  265. OP ("return",    Y_RETURN_POP,    PSEUDO_OP,        -1)
  266. OP ("rfe",    Y_RFE_OP,    NOARG_TYPE_INST,    0x42000010)
  267. OP ("rol",    Y_ROL_POP,    PSEUDO_OP,        -1)
  268. OP ("ror",    Y_ROR_POP,    PSEUDO_OP,        -1)
  269. OP ("s.d",    Y_S_D_POP,    PSEUDO_OP,        -1)
  270. OP ("s.s",    Y_S_S_POP,    PSEUDO_OP,        -1)
  271. OP ("sb",    Y_SB_OP,    I2a_TYPE_INST,        0xa0000000)
  272. OP ("sd",    Y_SD_POP,    PSEUDO_OP,        -1)
  273. OP ("seq",    Y_SEQ_POP,    PSEUDO_OP,        -1)
  274. OP ("sge",    Y_SGE_POP,    PSEUDO_OP,        -1)
  275. OP ("sgeu",    Y_SGEU_POP,    PSEUDO_OP,        -1)
  276. OP ("sgt",    Y_SGT_POP,    PSEUDO_OP,        -1)
  277. OP ("sgtu",    Y_SGTU_POP,    PSEUDO_OP,        -1)
  278. OP ("sh",    Y_SH_OP,    I2a_TYPE_INST,        0xa4000000)
  279. OP ("sle",    Y_SLE_POP,    PSEUDO_OP,        -1)
  280. OP ("sleu",    Y_SLEU_POP,    PSEUDO_OP,        -1)
  281. OP ("sll",    Y_SLL_OP,    R2sh_TYPE_INST,        0x00000000)
  282. OP ("sllv",    Y_SLLV_OP,    R3_TYPE_INST,        0x00000004)
  283. OP ("slt",    Y_SLT_OP,    R3_TYPE_INST,        0x0000002a)
  284. OP ("slti",    Y_SLTI_OP,    I2_TYPE_INST,        0x28000000)
  285. OP ("sltiu",    Y_SLTIU_OP,    I2_TYPE_INST,        0x2c000000)
  286. OP ("sltu",    Y_SLTU_OP,    R3_TYPE_INST,        0x0000002b)
  287. OP ("sne",    Y_SNE_POP,    PSEUDO_OP,        -1)
  288. OP ("sra",    Y_SRA_OP,    R2sh_TYPE_INST,        0x00000003)
  289. OP ("srav",    Y_SRAV_OP,    R3sh_TYPE_INST,        0x00000007)
  290. OP ("srl",    Y_SRL_OP,    R2sh_TYPE_INST,        0x00000002)
  291. OP ("srlv",    Y_SRLV_OP,    R3sh_TYPE_INST,        0x00000006)
  292. OP ("sub",    Y_SUB_OP,    R3_TYPE_INST,        0x00000022)
  293. OP ("sub.d",    Y_SUB_D_OP,    FP_R3_TYPE_INST,    0x46200001)
  294. OP ("sub.s",    Y_SUB_S_OP,    FP_R3_TYPE_INST,    0x46000001)
  295. OP ("subu",    Y_SUBU_OP,    R3_TYPE_INST,        0x00000023)
  296. OP ("sw",    Y_SW_OP,    I2a_TYPE_INST,        0xac000000)
  297. OP ("swc0",    Y_SWC0_OP,    I2a_TYPE_INST,        0xe0000000)
  298. OP ("swc1",    Y_SWC1_OP,    FP_I2a_TYPE_INST,    0xe4000000)
  299. OP ("swc2",    Y_SWC2_OP,    I2a_TYPE_INST,        0xe8000000)
  300. OP ("swc3",    Y_SWC3_OP,    I2a_TYPE_INST,        0xec000000)
  301. OP ("swl",    Y_SWL_OP,    I2a_TYPE_INST,        0xa8000000)
  302. OP ("swr",    Y_SWR_OP,    I2a_TYPE_INST,        0xb8000000)
  303. OP ("syscall",    Y_SYSCALL_OP,    NOARG_TYPE_INST,    0x0000000c)
  304. OP ("tlbp",    Y_TLBP_OP,    NOARG_TYPE_INST,    0x42000008)
  305. OP ("tlbr",    Y_TLBR_OP,    NOARG_TYPE_INST,    0x42000001)
  306. OP ("tlbwi",    Y_TLBWI_OP,    NOARG_TYPE_INST,    0x42000002)
  307. OP ("tlbwr",    Y_TLBWR_OP,    NOARG_TYPE_INST,    0x42000006)
  308. OP ("ulh",    Y_ULH_POP,    PSEUDO_OP,        -1)
  309. OP ("ulhu",    Y_ULHU_POP,    PSEUDO_OP,        -1)
  310. OP ("ulw",    Y_ULW_POP,    PSEUDO_OP,        -1)
  311. OP ("ush",    Y_USH_POP,    PSEUDO_OP,        -1)
  312. OP ("usw",    Y_USW_POP,    PSEUDO_OP,        -1)
  313. OP ("xor",    Y_XOR_OP,    R3_TYPE_INST,        0x00000026)
  314. OP ("xori",    Y_XORI_OP,    I2_TYPE_INST,        0x38000000)
  315.