1 /* Instruction opcode header for sh.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 /* Allows reason codes to be output when assembler errors occur. */
31 #define CGEN_VERBOSE_ASSEMBLER_ERRORS
33 /* Override disassembly hashing - there are variable bits in the top
34 byte of these instructions. */
35 #define CGEN_DIS_HASH_SIZE 8
36 #define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 6) % CGEN_DIS_HASH_SIZE)
39 /* Enum declaration for sh instruction types. */
40 typedef enum cgen_insn_type
{
41 SH_INSN_INVALID
, SH_INSN_ADD_COMPACT
, SH_INSN_ADDI_COMPACT
, SH_INSN_ADDC_COMPACT
42 , SH_INSN_ADDV_COMPACT
, SH_INSN_AND_COMPACT
, SH_INSN_ANDI_COMPACT
, SH_INSN_ANDB_COMPACT
43 , SH_INSN_BF_COMPACT
, SH_INSN_BFS_COMPACT
, SH_INSN_BRA_COMPACT
, SH_INSN_BRAF_COMPACT
44 , SH_INSN_BRK_COMPACT
, SH_INSN_BSR_COMPACT
, SH_INSN_BSRF_COMPACT
, SH_INSN_BT_COMPACT
45 , SH_INSN_BTS_COMPACT
, SH_INSN_CLRMAC_COMPACT
, SH_INSN_CLRS_COMPACT
, SH_INSN_CLRT_COMPACT
46 , SH_INSN_CMPEQ_COMPACT
, SH_INSN_CMPEQI_COMPACT
, SH_INSN_CMPGE_COMPACT
, SH_INSN_CMPGT_COMPACT
47 , SH_INSN_CMPHI_COMPACT
, SH_INSN_CMPHS_COMPACT
, SH_INSN_CMPPL_COMPACT
, SH_INSN_CMPPZ_COMPACT
48 , SH_INSN_CMPSTR_COMPACT
, SH_INSN_DIV0S_COMPACT
, SH_INSN_DIV0U_COMPACT
, SH_INSN_DIV1_COMPACT
49 , SH_INSN_DMULSL_COMPACT
, SH_INSN_DMULUL_COMPACT
, SH_INSN_DT_COMPACT
, SH_INSN_EXTSB_COMPACT
50 , SH_INSN_EXTSW_COMPACT
, SH_INSN_EXTUB_COMPACT
, SH_INSN_EXTUW_COMPACT
, SH_INSN_FABS_COMPACT
51 , SH_INSN_FADD_COMPACT
, SH_INSN_FCMPEQ_COMPACT
, SH_INSN_FCMPGT_COMPACT
, SH_INSN_FCNVDS_COMPACT
52 , SH_INSN_FCNVSD_COMPACT
, SH_INSN_FDIV_COMPACT
, SH_INSN_FIPR_COMPACT
, SH_INSN_FLDS_COMPACT
53 , SH_INSN_FLDI0_COMPACT
, SH_INSN_FLDI1_COMPACT
, SH_INSN_FLOAT_COMPACT
, SH_INSN_FMAC_COMPACT
54 , SH_INSN_FMOV1_COMPACT
, SH_INSN_FMOV2_COMPACT
, SH_INSN_FMOV3_COMPACT
, SH_INSN_FMOV4_COMPACT
55 , SH_INSN_FMOV5_COMPACT
, SH_INSN_FMOV6_COMPACT
, SH_INSN_FMOV7_COMPACT
, SH_INSN_FMUL_COMPACT
56 , SH_INSN_FNEG_COMPACT
, SH_INSN_FRCHG_COMPACT
, SH_INSN_FSCHG_COMPACT
, SH_INSN_FSQRT_COMPACT
57 , SH_INSN_FSTS_COMPACT
, SH_INSN_FSUB_COMPACT
, SH_INSN_FTRC_COMPACT
, SH_INSN_FTRV_COMPACT
58 , SH_INSN_JMP_COMPACT
, SH_INSN_JSR_COMPACT
, SH_INSN_LDC_COMPACT
, SH_INSN_LDCL_COMPACT
59 , SH_INSN_LDS_FPSCR_COMPACT
, SH_INSN_LDSL_FPSCR_COMPACT
, SH_INSN_LDS_FPUL_COMPACT
, SH_INSN_LDSL_FPUL_COMPACT
60 , SH_INSN_LDS_MACH_COMPACT
, SH_INSN_LDSL_MACH_COMPACT
, SH_INSN_LDS_MACL_COMPACT
, SH_INSN_LDSL_MACL_COMPACT
61 , SH_INSN_LDS_PR_COMPACT
, SH_INSN_LDSL_PR_COMPACT
, SH_INSN_MACL_COMPACT
, SH_INSN_MACW_COMPACT
62 , SH_INSN_MOV_COMPACT
, SH_INSN_MOVI_COMPACT
, SH_INSN_MOVB1_COMPACT
, SH_INSN_MOVB2_COMPACT
63 , SH_INSN_MOVB3_COMPACT
, SH_INSN_MOVB4_COMPACT
, SH_INSN_MOVB5_COMPACT
, SH_INSN_MOVB6_COMPACT
64 , SH_INSN_MOVB7_COMPACT
, SH_INSN_MOVB8_COMPACT
, SH_INSN_MOVB9_COMPACT
, SH_INSN_MOVB10_COMPACT
65 , SH_INSN_MOVL1_COMPACT
, SH_INSN_MOVL2_COMPACT
, SH_INSN_MOVL3_COMPACT
, SH_INSN_MOVL4_COMPACT
66 , SH_INSN_MOVL5_COMPACT
, SH_INSN_MOVL6_COMPACT
, SH_INSN_MOVL7_COMPACT
, SH_INSN_MOVL8_COMPACT
67 , SH_INSN_MOVL9_COMPACT
, SH_INSN_MOVL10_COMPACT
, SH_INSN_MOVL11_COMPACT
, SH_INSN_MOVW1_COMPACT
68 , SH_INSN_MOVW2_COMPACT
, SH_INSN_MOVW3_COMPACT
, SH_INSN_MOVW4_COMPACT
, SH_INSN_MOVW5_COMPACT
69 , SH_INSN_MOVW6_COMPACT
, SH_INSN_MOVW7_COMPACT
, SH_INSN_MOVW8_COMPACT
, SH_INSN_MOVW9_COMPACT
70 , SH_INSN_MOVW10_COMPACT
, SH_INSN_MOVW11_COMPACT
, SH_INSN_MOVA_COMPACT
, SH_INSN_MOVCAL_COMPACT
71 , SH_INSN_MOVT_COMPACT
, SH_INSN_MULL_COMPACT
, SH_INSN_MULSW_COMPACT
, SH_INSN_MULUW_COMPACT
72 , SH_INSN_NEG_COMPACT
, SH_INSN_NEGC_COMPACT
, SH_INSN_NOP_COMPACT
, SH_INSN_NOT_COMPACT
73 , SH_INSN_OCBI_COMPACT
, SH_INSN_OCBP_COMPACT
, SH_INSN_OCBWB_COMPACT
, SH_INSN_OR_COMPACT
74 , SH_INSN_ORI_COMPACT
, SH_INSN_ORB_COMPACT
, SH_INSN_PREF_COMPACT
, SH_INSN_ROTCL_COMPACT
75 , SH_INSN_ROTCR_COMPACT
, SH_INSN_ROTL_COMPACT
, SH_INSN_ROTR_COMPACT
, SH_INSN_RTS_COMPACT
76 , SH_INSN_SETS_COMPACT
, SH_INSN_SETT_COMPACT
, SH_INSN_SHAD_COMPACT
, SH_INSN_SHAL_COMPACT
77 , SH_INSN_SHAR_COMPACT
, SH_INSN_SHLD_COMPACT
, SH_INSN_SHLL_COMPACT
, SH_INSN_SHLL2_COMPACT
78 , SH_INSN_SHLL8_COMPACT
, SH_INSN_SHLL16_COMPACT
, SH_INSN_SHLR_COMPACT
, SH_INSN_SHLR2_COMPACT
79 , SH_INSN_SHLR8_COMPACT
, SH_INSN_SHLR16_COMPACT
, SH_INSN_STC_GBR_COMPACT
, SH_INSN_STCL_GBR_COMPACT
80 , SH_INSN_STS_FPSCR_COMPACT
, SH_INSN_STSL_FPSCR_COMPACT
, SH_INSN_STS_FPUL_COMPACT
, SH_INSN_STSL_FPUL_COMPACT
81 , SH_INSN_STS_MACH_COMPACT
, SH_INSN_STSL_MACH_COMPACT
, SH_INSN_STS_MACL_COMPACT
, SH_INSN_STSL_MACL_COMPACT
82 , SH_INSN_STS_PR_COMPACT
, SH_INSN_STSL_PR_COMPACT
, SH_INSN_SUB_COMPACT
, SH_INSN_SUBC_COMPACT
83 , SH_INSN_SUBV_COMPACT
, SH_INSN_SWAPB_COMPACT
, SH_INSN_SWAPW_COMPACT
, SH_INSN_TASB_COMPACT
84 , SH_INSN_TRAPA_COMPACT
, SH_INSN_TST_COMPACT
, SH_INSN_TSTI_COMPACT
, SH_INSN_TSTB_COMPACT
85 , SH_INSN_XOR_COMPACT
, SH_INSN_XORI_COMPACT
, SH_INSN_XORB_COMPACT
, SH_INSN_XTRCT_COMPACT
86 , SH_INSN_ADD
, SH_INSN_ADDL
, SH_INSN_ADDI
, SH_INSN_ADDIL
87 , SH_INSN_ADDZL
, SH_INSN_ALLOCO
, SH_INSN_AND
, SH_INSN_ANDC
88 , SH_INSN_ANDI
, SH_INSN_BEQ
, SH_INSN_BEQI
, SH_INSN_BGE
89 , SH_INSN_BGEU
, SH_INSN_BGT
, SH_INSN_BGTU
, SH_INSN_BLINK
90 , SH_INSN_BNE
, SH_INSN_BNEI
, SH_INSN_BRK
, SH_INSN_BYTEREV
91 , SH_INSN_CMPEQ
, SH_INSN_CMPGT
, SH_INSN_CMPGTU
, SH_INSN_CMVEQ
92 , SH_INSN_CMVNE
, SH_INSN_FABSD
, SH_INSN_FABSS
, SH_INSN_FADDD
93 , SH_INSN_FADDS
, SH_INSN_FCMPEQD
, SH_INSN_FCMPEQS
, SH_INSN_FCMPGED
94 , SH_INSN_FCMPGES
, SH_INSN_FCMPGTD
, SH_INSN_FCMPGTS
, SH_INSN_FCMPUND
95 , SH_INSN_FCMPUNS
, SH_INSN_FCNVDS
, SH_INSN_FCNVSD
, SH_INSN_FDIVD
96 , SH_INSN_FDIVS
, SH_INSN_FGETSCR
, SH_INSN_FIPRS
, SH_INSN_FLDD
97 , SH_INSN_FLDP
, SH_INSN_FLDS
, SH_INSN_FLDXD
, SH_INSN_FLDXP
98 , SH_INSN_FLDXS
, SH_INSN_FLOATLD
, SH_INSN_FLOATLS
, SH_INSN_FLOATQD
99 , SH_INSN_FLOATQS
, SH_INSN_FMACS
, SH_INSN_FMOVD
, SH_INSN_FMOVDQ
100 , SH_INSN_FMOVLS
, SH_INSN_FMOVQD
, SH_INSN_FMOVS
, SH_INSN_FMOVSL
101 , SH_INSN_FMULD
, SH_INSN_FMULS
, SH_INSN_FNEGD
, SH_INSN_FNEGS
102 , SH_INSN_FPUTSCR
, SH_INSN_FSQRTD
, SH_INSN_FSQRTS
, SH_INSN_FSTD
103 , SH_INSN_FSTP
, SH_INSN_FSTS
, SH_INSN_FSTXD
, SH_INSN_FSTXP
104 , SH_INSN_FSTXS
, SH_INSN_FSUBD
, SH_INSN_FSUBS
, SH_INSN_FTRCDL
105 , SH_INSN_FTRCSL
, SH_INSN_FTRCDQ
, SH_INSN_FTRCSQ
, SH_INSN_FTRVS
106 , SH_INSN_GETCFG
, SH_INSN_GETCON
, SH_INSN_GETTR
, SH_INSN_ICBI
107 , SH_INSN_LDB
, SH_INSN_LDL
, SH_INSN_LDQ
, SH_INSN_LDUB
108 , SH_INSN_LDUW
, SH_INSN_LDW
, SH_INSN_LDHIL
, SH_INSN_LDHIQ
109 , SH_INSN_LDLOL
, SH_INSN_LDLOQ
, SH_INSN_LDXB
, SH_INSN_LDXL
110 , SH_INSN_LDXQ
, SH_INSN_LDXUB
, SH_INSN_LDXUW
, SH_INSN_LDXW
111 , SH_INSN_MABSL
, SH_INSN_MABSW
, SH_INSN_MADDL
, SH_INSN_MADDW
112 , SH_INSN_MADDSL
, SH_INSN_MADDSUB
, SH_INSN_MADDSW
, SH_INSN_MCMPEQB
113 , SH_INSN_MCMPEQL
, SH_INSN_MCMPEQW
, SH_INSN_MCMPGTL
, SH_INSN_MCMPGTUB
114 , SH_INSN_MCMPGTW
, SH_INSN_MCMV
, SH_INSN_MCNVSLW
, SH_INSN_MCNVSWB
115 , SH_INSN_MCNVSWUB
, SH_INSN_MEXTR1
, SH_INSN_MEXTR2
, SH_INSN_MEXTR3
116 , SH_INSN_MEXTR4
, SH_INSN_MEXTR5
, SH_INSN_MEXTR6
, SH_INSN_MEXTR7
117 , SH_INSN_MMACFXWL
, SH_INSN_MMACNFX_WL
, SH_INSN_MMULL
, SH_INSN_MMULW
118 , SH_INSN_MMULFXL
, SH_INSN_MMULFXW
, SH_INSN_MMULFXRPW
, SH_INSN_MMULHIWL
119 , SH_INSN_MMULLOWL
, SH_INSN_MMULSUMWQ
, SH_INSN_MOVI
, SH_INSN_MPERMW
120 , SH_INSN_MSADUBQ
, SH_INSN_MSHALDSL
, SH_INSN_MSHALDSW
, SH_INSN_MSHARDL
121 , SH_INSN_MSHARDW
, SH_INSN_MSHARDSQ
, SH_INSN_MSHFHIB
, SH_INSN_MSHFHIL
122 , SH_INSN_MSHFHIW
, SH_INSN_MSHFLOB
, SH_INSN_MSHFLOL
, SH_INSN_MSHFLOW
123 , SH_INSN_MSHLLDL
, SH_INSN_MSHLLDW
, SH_INSN_MSHLRDL
, SH_INSN_MSHLRDW
124 , SH_INSN_MSUBL
, SH_INSN_MSUBW
, SH_INSN_MSUBSL
, SH_INSN_MSUBSUB
125 , SH_INSN_MSUBSW
, SH_INSN_MULSL
, SH_INSN_MULUL
, SH_INSN_NOP
126 , SH_INSN_NSB
, SH_INSN_OCBI
, SH_INSN_OCBP
, SH_INSN_OCBWB
127 , SH_INSN_OR
, SH_INSN_ORI
, SH_INSN_PREFI
, SH_INSN_PTA
128 , SH_INSN_PTABS
, SH_INSN_PTB
, SH_INSN_PTREL
, SH_INSN_PUTCFG
129 , SH_INSN_PUTCON
, SH_INSN_RTE
, SH_INSN_SHARD
, SH_INSN_SHARDL
130 , SH_INSN_SHARI
, SH_INSN_SHARIL
, SH_INSN_SHLLD
, SH_INSN_SHLLDL
131 , SH_INSN_SHLLI
, SH_INSN_SHLLIL
, SH_INSN_SHLRD
, SH_INSN_SHLRDL
132 , SH_INSN_SHLRI
, SH_INSN_SHLRIL
, SH_INSN_SHORI
, SH_INSN_SLEEP
133 , SH_INSN_STB
, SH_INSN_STL
, SH_INSN_STQ
, SH_INSN_STW
134 , SH_INSN_STHIL
, SH_INSN_STHIQ
, SH_INSN_STLOL
, SH_INSN_STLOQ
135 , SH_INSN_STXB
, SH_INSN_STXL
, SH_INSN_STXQ
, SH_INSN_STXW
136 , SH_INSN_SUB
, SH_INSN_SUBL
, SH_INSN_SWAPQ
, SH_INSN_SYNCI
137 , SH_INSN_SYNCO
, SH_INSN_TRAPA
, SH_INSN_XOR
, SH_INSN_XORI
141 /* Index of `invalid' insn place holder. */
142 #define CGEN_INSN_INVALID SH_INSN_INVALID
144 /* Total number of insns in table. */
145 #define MAX_INSNS ((int) SH_INSN_MAX)
147 /* This struct records data prior to insertion or after extraction. */
202 #define CGEN_INIT_PARSE(od) \
205 #define CGEN_INIT_INSERT(od) \
208 #define CGEN_INIT_EXTRACT(od) \
211 #define CGEN_INIT_PRINT(od) \
216 #endif /* SH_OPC_H */