or1k-opinst.c revision 1.5 1 1.1 christos /* Semantic operand instances for or1k.
2 1.1 christos
3 1.1 christos THIS FILE IS MACHINE GENERATED WITH CGEN.
4 1.1 christos
5 1.5 christos Copyright (C) 1996-2016 Free Software Foundation, Inc.
6 1.1 christos
7 1.1 christos This file is part of the GNU Binutils and/or GDB, the GNU debugger.
8 1.1 christos
9 1.1 christos This file is free software; you can redistribute it and/or modify
10 1.1 christos it under the terms of the GNU General Public License as published by
11 1.1 christos the Free Software Foundation; either version 3, or (at your option)
12 1.1 christos any later version.
13 1.1 christos
14 1.1 christos It is distributed in the hope that it will be useful, but WITHOUT
15 1.1 christos ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 1.1 christos or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 1.1 christos License for more details.
18 1.1 christos
19 1.1 christos You should have received a copy of the GNU General Public License along
20 1.1 christos with this program; if not, write to the Free Software Foundation, Inc.,
21 1.1 christos 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22 1.1 christos
23 1.1 christos */
24 1.1 christos
25 1.1 christos #include "sysdep.h"
26 1.1 christos #include "ansidecl.h"
27 1.1 christos #include "bfd.h"
28 1.1 christos #include "symcat.h"
29 1.1 christos #include "or1k-desc.h"
30 1.1 christos #include "or1k-opc.h"
31 1.1 christos
32 1.1 christos /* Operand references. */
33 1.1 christos
34 1.1 christos #define OP_ENT(op) OR1K_OPERAND_##op
35 1.1 christos #define INPUT CGEN_OPINST_INPUT
36 1.1 christos #define OUTPUT CGEN_OPINST_OUTPUT
37 1.1 christos #define END CGEN_OPINST_END
38 1.1 christos #define COND_REF CGEN_OPINST_COND_REF
39 1.1 christos
40 1.1 christos static const CGEN_OPINST sfmt_empty_ops[] ATTRIBUTE_UNUSED = {
41 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
42 1.1 christos };
43 1.1 christos
44 1.1 christos static const CGEN_OPINST sfmt_l_j_ops[] ATTRIBUTE_UNUSED = {
45 1.1 christos { INPUT, "disp26", HW_H_IADDR, CGEN_MODE_UDI, OP_ENT (DISP26), 0, 0 },
46 1.1 christos { INPUT, "sys_cpucfgr_nd", HW_H_SYS_CPUCFGR_ND, CGEN_MODE_UDI, 0, 0, 0 },
47 1.1 christos { OUTPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
48 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
49 1.1 christos };
50 1.1 christos
51 1.1 christos static const CGEN_OPINST sfmt_l_jal_ops[] ATTRIBUTE_UNUSED = {
52 1.1 christos { INPUT, "disp26", HW_H_IADDR, CGEN_MODE_UDI, OP_ENT (DISP26), 0, 0 },
53 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
54 1.1 christos { INPUT, "sys_cpucfgr_nd", HW_H_SYS_CPUCFGR_ND, CGEN_MODE_UDI, 0, 0, 0 },
55 1.1 christos { OUTPUT, "h_gpr_UDI_9", HW_H_GPR, CGEN_MODE_UDI, 0, 9, 0 },
56 1.1 christos { OUTPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
57 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
58 1.1 christos };
59 1.1 christos
60 1.1 christos static const CGEN_OPINST sfmt_l_jr_ops[] ATTRIBUTE_UNUSED = {
61 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
62 1.1 christos { INPUT, "sys_cpucfgr_nd", HW_H_SYS_CPUCFGR_ND, CGEN_MODE_UDI, 0, 0, 0 },
63 1.1 christos { OUTPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
64 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
65 1.1 christos };
66 1.1 christos
67 1.1 christos static const CGEN_OPINST sfmt_l_jalr_ops[] ATTRIBUTE_UNUSED = {
68 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
69 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
70 1.1 christos { INPUT, "sys_cpucfgr_nd", HW_H_SYS_CPUCFGR_ND, CGEN_MODE_UDI, 0, 0, 0 },
71 1.1 christos { OUTPUT, "h_gpr_UDI_9", HW_H_GPR, CGEN_MODE_UDI, 0, 9, 0 },
72 1.1 christos { OUTPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
73 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
74 1.1 christos };
75 1.1 christos
76 1.1 christos static const CGEN_OPINST sfmt_l_bnf_ops[] ATTRIBUTE_UNUSED = {
77 1.1 christos { INPUT, "disp26", HW_H_IADDR, CGEN_MODE_UDI, OP_ENT (DISP26), 0, COND_REF },
78 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
79 1.1 christos { INPUT, "sys_cpucfgr_nd", HW_H_SYS_CPUCFGR_ND, CGEN_MODE_UDI, 0, 0, COND_REF },
80 1.1 christos { INPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
81 1.1 christos { OUTPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
82 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
83 1.1 christos };
84 1.1 christos
85 1.1 christos static const CGEN_OPINST sfmt_l_trap_ops[] ATTRIBUTE_UNUSED = {
86 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, 0 },
87 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
88 1.1 christos };
89 1.1 christos
90 1.1 christos static const CGEN_OPINST sfmt_l_msync_ops[] ATTRIBUTE_UNUSED = {
91 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
92 1.1 christos };
93 1.1 christos
94 1.1 christos static const CGEN_OPINST sfmt_l_nop_imm_ops[] ATTRIBUTE_UNUSED = {
95 1.1 christos { INPUT, "uimm16", HW_H_UIMM16, CGEN_MODE_UINT, OP_ENT (UIMM16), 0, 0 },
96 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
97 1.1 christos };
98 1.1 christos
99 1.1 christos static const CGEN_OPINST sfmt_l_movhi_ops[] ATTRIBUTE_UNUSED = {
100 1.1 christos { INPUT, "uimm16", HW_H_UIMM16, CGEN_MODE_UINT, OP_ENT (UIMM16), 0, 0 },
101 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
102 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
103 1.1 christos };
104 1.1 christos
105 1.1 christos static const CGEN_OPINST sfmt_l_macrc_ops[] ATTRIBUTE_UNUSED = {
106 1.1 christos { INPUT, "mac_maclo", HW_H_MAC_MACLO, CGEN_MODE_UDI, 0, 0, 0 },
107 1.1 christos { OUTPUT, "mac_machi", HW_H_MAC_MACHI, CGEN_MODE_UDI, 0, 0, 0 },
108 1.1 christos { OUTPUT, "mac_maclo", HW_H_MAC_MACLO, CGEN_MODE_UDI, 0, 0, 0 },
109 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
110 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
111 1.1 christos };
112 1.1 christos
113 1.1 christos static const CGEN_OPINST sfmt_l_mfspr_ops[] ATTRIBUTE_UNUSED = {
114 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
115 1.1 christos { INPUT, "uimm16", HW_H_UIMM16, CGEN_MODE_UINT, OP_ENT (UIMM16), 0, 0 },
116 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
117 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
118 1.1 christos };
119 1.1 christos
120 1.1 christos static const CGEN_OPINST sfmt_l_mtspr_ops[] ATTRIBUTE_UNUSED = {
121 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
122 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
123 1.1 christos { INPUT, "uimm16_split", HW_H_UIMM16, CGEN_MODE_UINT, OP_ENT (UIMM16_SPLIT), 0, 0 },
124 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
125 1.1 christos };
126 1.1 christos
127 1.1 christos static const CGEN_OPINST sfmt_l_lwz_ops[] ATTRIBUTE_UNUSED = {
128 1.1 christos { INPUT, "h_memory_USI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_4", HW_H_MEMORY, CGEN_MODE_USI, 0, 0, 0 },
129 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
130 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
131 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
132 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
133 1.1 christos };
134 1.1 christos
135 1.1 christos static const CGEN_OPINST sfmt_l_lws_ops[] ATTRIBUTE_UNUSED = {
136 1.1 christos { INPUT, "h_memory_SI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_4", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
137 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
138 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
139 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
140 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
141 1.1 christos };
142 1.1 christos
143 1.1 christos static const CGEN_OPINST sfmt_l_lwa_ops[] ATTRIBUTE_UNUSED = {
144 1.1 christos { INPUT, "h_memory_USI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_4", HW_H_MEMORY, CGEN_MODE_USI, 0, 0, 0 },
145 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
146 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
147 1.1 christos { OUTPUT, "atomic_address", HW_H_ATOMIC_ADDRESS, CGEN_MODE_SI, 0, 0, 0 },
148 1.1 christos { OUTPUT, "atomic_reserve", HW_H_ATOMIC_RESERVE, CGEN_MODE_BI, 0, 0, 0 },
149 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
150 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
151 1.1 christos };
152 1.1 christos
153 1.1 christos static const CGEN_OPINST sfmt_l_lbz_ops[] ATTRIBUTE_UNUSED = {
154 1.1 christos { INPUT, "h_memory_UQI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_1", HW_H_MEMORY, CGEN_MODE_UQI, 0, 0, 0 },
155 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
156 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
157 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
158 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
159 1.1 christos };
160 1.1 christos
161 1.1 christos static const CGEN_OPINST sfmt_l_lbs_ops[] ATTRIBUTE_UNUSED = {
162 1.1 christos { INPUT, "h_memory_QI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_1", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
163 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
164 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
165 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
166 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
167 1.1 christos };
168 1.1 christos
169 1.1 christos static const CGEN_OPINST sfmt_l_lhz_ops[] ATTRIBUTE_UNUSED = {
170 1.1 christos { INPUT, "h_memory_UHI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_2", HW_H_MEMORY, CGEN_MODE_UHI, 0, 0, 0 },
171 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
172 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
173 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
174 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
175 1.1 christos };
176 1.1 christos
177 1.1 christos static const CGEN_OPINST sfmt_l_lhs_ops[] ATTRIBUTE_UNUSED = {
178 1.1 christos { INPUT, "h_memory_HI_c_call__AI_@cpu@_make_load_store_addr_rA_ext__SI_simm16_2", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
179 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
180 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
181 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
182 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
183 1.1 christos };
184 1.1 christos
185 1.1 christos static const CGEN_OPINST sfmt_l_sw_ops[] ATTRIBUTE_UNUSED = {
186 1.1 christos { INPUT, "atomic_address", HW_H_ATOMIC_ADDRESS, CGEN_MODE_SI, 0, 0, 0 },
187 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
188 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
189 1.1 christos { INPUT, "simm16_split", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16_SPLIT), 0, 0 },
190 1.1 christos { OUTPUT, "atomic_reserve", HW_H_ATOMIC_RESERVE, CGEN_MODE_BI, 0, 0, COND_REF },
191 1.1 christos { OUTPUT, "h_memory_USI_addr", HW_H_MEMORY, CGEN_MODE_USI, 0, 0, 0 },
192 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
193 1.1 christos };
194 1.1 christos
195 1.1 christos static const CGEN_OPINST sfmt_l_sb_ops[] ATTRIBUTE_UNUSED = {
196 1.1 christos { INPUT, "atomic_address", HW_H_ATOMIC_ADDRESS, CGEN_MODE_SI, 0, 0, 0 },
197 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
198 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
199 1.1 christos { INPUT, "simm16_split", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16_SPLIT), 0, 0 },
200 1.1 christos { OUTPUT, "atomic_reserve", HW_H_ATOMIC_RESERVE, CGEN_MODE_BI, 0, 0, COND_REF },
201 1.1 christos { OUTPUT, "h_memory_UQI_addr", HW_H_MEMORY, CGEN_MODE_UQI, 0, 0, 0 },
202 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
203 1.1 christos };
204 1.1 christos
205 1.1 christos static const CGEN_OPINST sfmt_l_sh_ops[] ATTRIBUTE_UNUSED = {
206 1.1 christos { INPUT, "atomic_address", HW_H_ATOMIC_ADDRESS, CGEN_MODE_SI, 0, 0, 0 },
207 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
208 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
209 1.1 christos { INPUT, "simm16_split", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16_SPLIT), 0, 0 },
210 1.1 christos { OUTPUT, "atomic_reserve", HW_H_ATOMIC_RESERVE, CGEN_MODE_BI, 0, 0, COND_REF },
211 1.1 christos { OUTPUT, "h_memory_UHI_addr", HW_H_MEMORY, CGEN_MODE_UHI, 0, 0, 0 },
212 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
213 1.1 christos };
214 1.1 christos
215 1.1 christos static const CGEN_OPINST sfmt_l_swa_ops[] ATTRIBUTE_UNUSED = {
216 1.1 christos { INPUT, "atomic_address", HW_H_ATOMIC_ADDRESS, CGEN_MODE_SI, 0, 0, 0 },
217 1.1 christos { INPUT, "atomic_reserve", HW_H_ATOMIC_RESERVE, CGEN_MODE_BI, 0, 0, 0 },
218 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
219 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, COND_REF },
220 1.1 christos { INPUT, "simm16_split", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16_SPLIT), 0, 0 },
221 1.1 christos { INPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
222 1.1 christos { OUTPUT, "atomic_reserve", HW_H_ATOMIC_RESERVE, CGEN_MODE_BI, 0, 0, 0 },
223 1.1 christos { OUTPUT, "h_memory_USI_addr", HW_H_MEMORY, CGEN_MODE_USI, 0, 0, COND_REF },
224 1.1 christos { OUTPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
225 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
226 1.1 christos };
227 1.1 christos
228 1.1 christos static const CGEN_OPINST sfmt_l_sll_ops[] ATTRIBUTE_UNUSED = {
229 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
230 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
231 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
232 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
233 1.1 christos };
234 1.1 christos
235 1.1 christos static const CGEN_OPINST sfmt_l_slli_ops[] ATTRIBUTE_UNUSED = {
236 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
237 1.1 christos { INPUT, "uimm6", HW_H_UIMM6, CGEN_MODE_UINT, OP_ENT (UIMM6), 0, 0 },
238 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
239 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
240 1.1 christos };
241 1.1 christos
242 1.1 christos static const CGEN_OPINST sfmt_l_and_ops[] ATTRIBUTE_UNUSED = {
243 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
244 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
245 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
246 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
247 1.1 christos };
248 1.1 christos
249 1.1 christos static const CGEN_OPINST sfmt_l_add_ops[] ATTRIBUTE_UNUSED = {
250 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
251 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
252 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
253 1.1 christos { INPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
254 1.1 christos { INPUT, "sys_sr_ove", HW_H_SYS_SR_OVE, CGEN_MODE_UDI, 0, 0, 0 },
255 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
256 1.1 christos { OUTPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
257 1.1 christos { OUTPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
258 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
259 1.1 christos };
260 1.1 christos
261 1.1 christos static const CGEN_OPINST sfmt_l_addc_ops[] ATTRIBUTE_UNUSED = {
262 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
263 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
264 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
265 1.1 christos { INPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
266 1.1 christos { INPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
267 1.1 christos { INPUT, "sys_sr_ove", HW_H_SYS_SR_OVE, CGEN_MODE_UDI, 0, 0, 0 },
268 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
269 1.1 christos { OUTPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
270 1.1 christos { OUTPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
271 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
272 1.1 christos };
273 1.1 christos
274 1.1 christos static const CGEN_OPINST sfmt_l_div_ops[] ATTRIBUTE_UNUSED = {
275 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
276 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, COND_REF },
277 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
278 1.1 christos { INPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
279 1.1 christos { INPUT, "sys_sr_ove", HW_H_SYS_SR_OVE, CGEN_MODE_UDI, 0, 0, 0 },
280 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, COND_REF },
281 1.1 christos { OUTPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, COND_REF },
282 1.1 christos { OUTPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
283 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
284 1.1 christos };
285 1.1 christos
286 1.1 christos static const CGEN_OPINST sfmt_l_ff1_ops[] ATTRIBUTE_UNUSED = {
287 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
288 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
289 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
290 1.1 christos };
291 1.1 christos
292 1.1 christos static const CGEN_OPINST sfmt_l_xori_ops[] ATTRIBUTE_UNUSED = {
293 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
294 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
295 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
296 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
297 1.1 christos };
298 1.1 christos
299 1.1 christos static const CGEN_OPINST sfmt_l_addi_ops[] ATTRIBUTE_UNUSED = {
300 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
301 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
302 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
303 1.1 christos { INPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
304 1.1 christos { INPUT, "sys_sr_ove", HW_H_SYS_SR_OVE, CGEN_MODE_UDI, 0, 0, 0 },
305 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
306 1.1 christos { OUTPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
307 1.1 christos { OUTPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
308 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
309 1.1 christos };
310 1.1 christos
311 1.1 christos static const CGEN_OPINST sfmt_l_addic_ops[] ATTRIBUTE_UNUSED = {
312 1.1 christos { INPUT, "pc", HW_H_PC, CGEN_MODE_UDI, 0, 0, COND_REF },
313 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
314 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
315 1.1 christos { INPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
316 1.1 christos { INPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
317 1.1 christos { INPUT, "sys_sr_ove", HW_H_SYS_SR_OVE, CGEN_MODE_UDI, 0, 0, 0 },
318 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
319 1.1 christos { OUTPUT, "sys_sr_cy", HW_H_SYS_SR_CY, CGEN_MODE_UDI, 0, 0, 0 },
320 1.1 christos { OUTPUT, "sys_sr_ov", HW_H_SYS_SR_OV, CGEN_MODE_UDI, 0, 0, 0 },
321 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
322 1.1 christos };
323 1.1 christos
324 1.1 christos static const CGEN_OPINST sfmt_l_exths_ops[] ATTRIBUTE_UNUSED = {
325 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
326 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
327 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
328 1.1 christos };
329 1.1 christos
330 1.1 christos static const CGEN_OPINST sfmt_l_cmov_ops[] ATTRIBUTE_UNUSED = {
331 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, COND_REF },
332 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, COND_REF },
333 1.1 christos { INPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
334 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, COND_REF },
335 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
336 1.1 christos };
337 1.1 christos
338 1.1 christos static const CGEN_OPINST sfmt_l_sfgts_ops[] ATTRIBUTE_UNUSED = {
339 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
340 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
341 1.1 christos { OUTPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
342 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
343 1.1 christos };
344 1.1 christos
345 1.1 christos static const CGEN_OPINST sfmt_l_sfgtsi_ops[] ATTRIBUTE_UNUSED = {
346 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
347 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
348 1.1 christos { OUTPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
349 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
350 1.1 christos };
351 1.1 christos
352 1.1 christos static const CGEN_OPINST sfmt_l_mac_ops[] ATTRIBUTE_UNUSED = {
353 1.1 christos { INPUT, "mac_machi", HW_H_MAC_MACHI, CGEN_MODE_UDI, 0, 0, 0 },
354 1.1 christos { INPUT, "mac_maclo", HW_H_MAC_MACLO, CGEN_MODE_UDI, 0, 0, 0 },
355 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
356 1.1 christos { INPUT, "rB", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RB), 0, 0 },
357 1.1 christos { OUTPUT, "mac_machi", HW_H_MAC_MACHI, CGEN_MODE_UDI, 0, 0, 0 },
358 1.1 christos { OUTPUT, "mac_maclo", HW_H_MAC_MACLO, CGEN_MODE_UDI, 0, 0, 0 },
359 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
360 1.1 christos };
361 1.1 christos
362 1.1 christos static const CGEN_OPINST sfmt_l_maci_ops[] ATTRIBUTE_UNUSED = {
363 1.1 christos { INPUT, "mac_machi", HW_H_MAC_MACHI, CGEN_MODE_UDI, 0, 0, 0 },
364 1.1 christos { INPUT, "mac_maclo", HW_H_MAC_MACLO, CGEN_MODE_UDI, 0, 0, 0 },
365 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
366 1.1 christos { INPUT, "simm16", HW_H_SIMM16, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
367 1.1 christos { OUTPUT, "mac_machi", HW_H_MAC_MACHI, CGEN_MODE_UDI, 0, 0, 0 },
368 1.1 christos { OUTPUT, "mac_maclo", HW_H_MAC_MACLO, CGEN_MODE_UDI, 0, 0, 0 },
369 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
370 1.1 christos };
371 1.1 christos
372 1.1 christos static const CGEN_OPINST sfmt_lf_add_s_ops[] ATTRIBUTE_UNUSED = {
373 1.1 christos { INPUT, "rASF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RASF), 0, 0 },
374 1.1 christos { INPUT, "rBSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RBSF), 0, 0 },
375 1.1 christos { OUTPUT, "rDSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RDSF), 0, 0 },
376 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
377 1.1 christos };
378 1.1 christos
379 1.1 christos static const CGEN_OPINST sfmt_lf_add_d_ops[] ATTRIBUTE_UNUSED = {
380 1.1 christos { INPUT, "rADF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RADF), 0, 0 },
381 1.1 christos { INPUT, "rBDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RBDF), 0, 0 },
382 1.1 christos { OUTPUT, "rDDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RDDF), 0, 0 },
383 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
384 1.1 christos };
385 1.1 christos
386 1.1 christos static const CGEN_OPINST sfmt_lf_itof_s_ops[] ATTRIBUTE_UNUSED = {
387 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
388 1.1 christos { INPUT, "sys_fpcsr_rm", HW_H_SYS_FPCSR_RM, CGEN_MODE_UDI, 0, 0, 0 },
389 1.1 christos { OUTPUT, "rDSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RDSF), 0, 0 },
390 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
391 1.1 christos };
392 1.1 christos
393 1.1 christos static const CGEN_OPINST sfmt_lf_itof_d_ops[] ATTRIBUTE_UNUSED = {
394 1.1 christos { INPUT, "rA", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RA), 0, 0 },
395 1.1 christos { INPUT, "sys_fpcsr_rm", HW_H_SYS_FPCSR_RM, CGEN_MODE_UDI, 0, 0, 0 },
396 1.1 christos { OUTPUT, "rDDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RDDF), 0, 0 },
397 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
398 1.1 christos };
399 1.1 christos
400 1.1 christos static const CGEN_OPINST sfmt_lf_ftoi_s_ops[] ATTRIBUTE_UNUSED = {
401 1.1 christos { INPUT, "rASF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RASF), 0, 0 },
402 1.1 christos { INPUT, "sys_fpcsr_rm", HW_H_SYS_FPCSR_RM, CGEN_MODE_UDI, 0, 0, 0 },
403 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
404 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
405 1.1 christos };
406 1.1 christos
407 1.1 christos static const CGEN_OPINST sfmt_lf_ftoi_d_ops[] ATTRIBUTE_UNUSED = {
408 1.1 christos { INPUT, "rADF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RADF), 0, 0 },
409 1.1 christos { INPUT, "sys_fpcsr_rm", HW_H_SYS_FPCSR_RM, CGEN_MODE_UDI, 0, 0, 0 },
410 1.1 christos { OUTPUT, "rD", HW_H_GPR, CGEN_MODE_UDI, OP_ENT (RD), 0, 0 },
411 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
412 1.1 christos };
413 1.1 christos
414 1.1 christos static const CGEN_OPINST sfmt_lf_eq_s_ops[] ATTRIBUTE_UNUSED = {
415 1.1 christos { INPUT, "rASF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RASF), 0, 0 },
416 1.1 christos { INPUT, "rBSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RBSF), 0, 0 },
417 1.1 christos { OUTPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
418 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
419 1.1 christos };
420 1.1 christos
421 1.1 christos static const CGEN_OPINST sfmt_lf_eq_d_ops[] ATTRIBUTE_UNUSED = {
422 1.1 christos { INPUT, "rADF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RADF), 0, 0 },
423 1.1 christos { INPUT, "rBDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RBDF), 0, 0 },
424 1.1 christos { OUTPUT, "sys_sr_f", HW_H_SYS_SR_F, CGEN_MODE_UDI, 0, 0, 0 },
425 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
426 1.1 christos };
427 1.1 christos
428 1.1 christos static const CGEN_OPINST sfmt_lf_madd_s_ops[] ATTRIBUTE_UNUSED = {
429 1.1 christos { INPUT, "rASF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RASF), 0, 0 },
430 1.1 christos { INPUT, "rBSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RBSF), 0, 0 },
431 1.1 christos { INPUT, "rDSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RDSF), 0, 0 },
432 1.1 christos { OUTPUT, "rDSF", HW_H_FSR, CGEN_MODE_SF, OP_ENT (RDSF), 0, 0 },
433 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
434 1.1 christos };
435 1.1 christos
436 1.1 christos static const CGEN_OPINST sfmt_lf_madd_d_ops[] ATTRIBUTE_UNUSED = {
437 1.1 christos { INPUT, "rADF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RADF), 0, 0 },
438 1.1 christos { INPUT, "rBDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RBDF), 0, 0 },
439 1.1 christos { INPUT, "rDDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RDDF), 0, 0 },
440 1.1 christos { OUTPUT, "rDDF", HW_H_FDR, CGEN_MODE_DF, OP_ENT (RDDF), 0, 0 },
441 1.1 christos { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
442 1.1 christos };
443 1.1 christos
444 1.1 christos #undef OP_ENT
445 1.1 christos #undef INPUT
446 1.1 christos #undef OUTPUT
447 1.1 christos #undef END
448 1.1 christos #undef COND_REF
449 1.1 christos
450 1.1 christos /* Operand instance lookup table. */
451 1.1 christos
452 1.1 christos static const CGEN_OPINST *or1k_cgen_opinst_table[MAX_INSNS] = {
453 1.1 christos 0,
454 1.1 christos & sfmt_l_j_ops[0],
455 1.1 christos & sfmt_l_jal_ops[0],
456 1.1 christos & sfmt_l_jr_ops[0],
457 1.1 christos & sfmt_l_jalr_ops[0],
458 1.1 christos & sfmt_l_bnf_ops[0],
459 1.1 christos & sfmt_l_bnf_ops[0],
460 1.1 christos & sfmt_l_trap_ops[0],
461 1.1 christos & sfmt_l_trap_ops[0],
462 1.1 christos & sfmt_l_msync_ops[0],
463 1.1 christos & sfmt_l_msync_ops[0],
464 1.1 christos & sfmt_l_msync_ops[0],
465 1.1 christos & sfmt_l_msync_ops[0],
466 1.1 christos & sfmt_l_nop_imm_ops[0],
467 1.1 christos & sfmt_l_msync_ops[0],
468 1.1 christos & sfmt_l_movhi_ops[0],
469 1.1 christos & sfmt_l_macrc_ops[0],
470 1.1 christos & sfmt_l_mfspr_ops[0],
471 1.1 christos & sfmt_l_mtspr_ops[0],
472 1.1 christos & sfmt_l_lwz_ops[0],
473 1.1 christos & sfmt_l_lws_ops[0],
474 1.1 christos & sfmt_l_lwa_ops[0],
475 1.1 christos & sfmt_l_lbz_ops[0],
476 1.1 christos & sfmt_l_lbs_ops[0],
477 1.1 christos & sfmt_l_lhz_ops[0],
478 1.1 christos & sfmt_l_lhs_ops[0],
479 1.1 christos & sfmt_l_sw_ops[0],
480 1.1 christos & sfmt_l_sb_ops[0],
481 1.1 christos & sfmt_l_sh_ops[0],
482 1.1 christos & sfmt_l_swa_ops[0],
483 1.1 christos & sfmt_l_sll_ops[0],
484 1.1 christos & sfmt_l_slli_ops[0],
485 1.1 christos & sfmt_l_sll_ops[0],
486 1.1 christos & sfmt_l_slli_ops[0],
487 1.1 christos & sfmt_l_sll_ops[0],
488 1.1 christos & sfmt_l_slli_ops[0],
489 1.1 christos & sfmt_l_sll_ops[0],
490 1.1 christos & sfmt_l_slli_ops[0],
491 1.1 christos & sfmt_l_and_ops[0],
492 1.1 christos & sfmt_l_and_ops[0],
493 1.1 christos & sfmt_l_and_ops[0],
494 1.1 christos & sfmt_l_add_ops[0],
495 1.1 christos & sfmt_l_add_ops[0],
496 1.1 christos & sfmt_l_addc_ops[0],
497 1.1 christos & sfmt_l_add_ops[0],
498 1.1 christos & sfmt_l_add_ops[0],
499 1.1 christos & sfmt_l_div_ops[0],
500 1.1 christos & sfmt_l_div_ops[0],
501 1.1 christos & sfmt_l_ff1_ops[0],
502 1.1 christos & sfmt_l_ff1_ops[0],
503 1.1 christos & sfmt_l_mfspr_ops[0],
504 1.1 christos & sfmt_l_mfspr_ops[0],
505 1.1 christos & sfmt_l_xori_ops[0],
506 1.1 christos & sfmt_l_addi_ops[0],
507 1.1 christos & sfmt_l_addic_ops[0],
508 1.1 christos & sfmt_l_addi_ops[0],
509 1.1 christos & sfmt_l_exths_ops[0],
510 1.1 christos & sfmt_l_exths_ops[0],
511 1.1 christos & sfmt_l_exths_ops[0],
512 1.1 christos & sfmt_l_exths_ops[0],
513 1.1 christos & sfmt_l_exths_ops[0],
514 1.1 christos & sfmt_l_exths_ops[0],
515 1.1 christos & sfmt_l_cmov_ops[0],
516 1.1 christos & sfmt_l_sfgts_ops[0],
517 1.1 christos & sfmt_l_sfgtsi_ops[0],
518 1.1 christos & sfmt_l_sfgts_ops[0],
519 1.1 christos & sfmt_l_sfgtsi_ops[0],
520 1.1 christos & sfmt_l_sfgts_ops[0],
521 1.1 christos & sfmt_l_sfgtsi_ops[0],
522 1.1 christos & sfmt_l_sfgts_ops[0],
523 1.1 christos & sfmt_l_sfgtsi_ops[0],
524 1.1 christos & sfmt_l_sfgts_ops[0],
525 1.1 christos & sfmt_l_sfgtsi_ops[0],
526 1.1 christos & sfmt_l_sfgts_ops[0],
527 1.1 christos & sfmt_l_sfgtsi_ops[0],
528 1.1 christos & sfmt_l_sfgts_ops[0],
529 1.1 christos & sfmt_l_sfgtsi_ops[0],
530 1.1 christos & sfmt_l_sfgts_ops[0],
531 1.1 christos & sfmt_l_sfgtsi_ops[0],
532 1.1 christos & sfmt_l_sfgts_ops[0],
533 1.1 christos & sfmt_l_sfgtsi_ops[0],
534 1.1 christos & sfmt_l_sfgts_ops[0],
535 1.1 christos & sfmt_l_sfgtsi_ops[0],
536 1.1 christos & sfmt_l_mac_ops[0],
537 1.1 christos & sfmt_l_mac_ops[0],
538 1.1 christos & sfmt_l_maci_ops[0],
539 1.1 christos & sfmt_l_msync_ops[0],
540 1.1 christos & sfmt_l_msync_ops[0],
541 1.1 christos & sfmt_l_msync_ops[0],
542 1.1 christos & sfmt_l_msync_ops[0],
543 1.1 christos & sfmt_l_msync_ops[0],
544 1.1 christos & sfmt_l_msync_ops[0],
545 1.1 christos & sfmt_l_msync_ops[0],
546 1.1 christos & sfmt_l_msync_ops[0],
547 1.1 christos & sfmt_lf_add_s_ops[0],
548 1.1 christos & sfmt_lf_add_d_ops[0],
549 1.1 christos & sfmt_lf_add_s_ops[0],
550 1.1 christos & sfmt_lf_add_d_ops[0],
551 1.1 christos & sfmt_lf_add_s_ops[0],
552 1.1 christos & sfmt_lf_add_d_ops[0],
553 1.1 christos & sfmt_lf_add_s_ops[0],
554 1.1 christos & sfmt_lf_add_d_ops[0],
555 1.1 christos & sfmt_lf_add_s_ops[0],
556 1.1 christos & sfmt_lf_add_d_ops[0],
557 1.1 christos & sfmt_lf_itof_s_ops[0],
558 1.1 christos & sfmt_lf_itof_d_ops[0],
559 1.1 christos & sfmt_lf_ftoi_s_ops[0],
560 1.1 christos & sfmt_lf_ftoi_d_ops[0],
561 1.1 christos & sfmt_lf_eq_s_ops[0],
562 1.1 christos & sfmt_lf_eq_d_ops[0],
563 1.1 christos & sfmt_lf_eq_s_ops[0],
564 1.1 christos & sfmt_lf_eq_d_ops[0],
565 1.1 christos & sfmt_lf_eq_s_ops[0],
566 1.1 christos & sfmt_lf_eq_d_ops[0],
567 1.1 christos & sfmt_lf_eq_s_ops[0],
568 1.1 christos & sfmt_lf_eq_d_ops[0],
569 1.1 christos & sfmt_lf_eq_s_ops[0],
570 1.1 christos & sfmt_lf_eq_d_ops[0],
571 1.1 christos & sfmt_lf_eq_s_ops[0],
572 1.1 christos & sfmt_lf_eq_d_ops[0],
573 1.1 christos & sfmt_lf_madd_s_ops[0],
574 1.1 christos & sfmt_lf_madd_d_ops[0],
575 1.1 christos & sfmt_l_msync_ops[0],
576 1.1 christos & sfmt_l_msync_ops[0],
577 1.1 christos };
578 1.1 christos
579 1.1 christos /* Function to call before using the operand instance table. */
580 1.1 christos
581 1.1 christos void
582 1.5 christos or1k_cgen_init_opinst_table (CGEN_CPU_DESC cd)
583 1.1 christos {
584 1.1 christos int i;
585 1.1 christos const CGEN_OPINST **oi = & or1k_cgen_opinst_table[0];
586 1.1 christos CGEN_INSN *insns = (CGEN_INSN *) cd->insn_table.init_entries;
587 1.1 christos for (i = 0; i < MAX_INSNS; ++i)
588 1.1 christos insns[i].opinst = oi[i];
589 1.1 christos }
590