1 /* Semantic operand instances for lm32.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2010 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9 This file 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 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 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 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
29 #include "lm32-desc.h"
32 /* Operand references. */
34 #define OP_ENT(op) LM32_OPERAND_##op
35 #define INPUT CGEN_OPINST_INPUT
36 #define OUTPUT CGEN_OPINST_OUTPUT
37 #define END CGEN_OPINST_END
38 #define COND_REF CGEN_OPINST_COND_REF
40 static const CGEN_OPINST sfmt_empty_ops
[] ATTRIBUTE_UNUSED
= {
41 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
44 static const CGEN_OPINST sfmt_add_ops
[] ATTRIBUTE_UNUSED
= {
45 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
46 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
47 { OUTPUT
, "r2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R2
), 0, 0 },
48 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
51 static const CGEN_OPINST sfmt_addi_ops
[] ATTRIBUTE_UNUSED
= {
52 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
53 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
54 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
55 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
58 static const CGEN_OPINST sfmt_andi_ops
[] ATTRIBUTE_UNUSED
= {
59 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
60 { INPUT
, "uimm", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM
), 0, 0 },
61 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
62 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
65 static const CGEN_OPINST sfmt_andhii_ops
[] ATTRIBUTE_UNUSED
= {
66 { INPUT
, "hi16", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (HI16
), 0, 0 },
67 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
68 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
69 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
72 static const CGEN_OPINST sfmt_b_ops
[] ATTRIBUTE_UNUSED
= {
73 { INPUT
, "f_r0", HW_H_UINT
, CGEN_MODE_UINT
, 0, 0, 0 },
74 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
75 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
76 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
79 static const CGEN_OPINST sfmt_bi_ops
[] ATTRIBUTE_UNUSED
= {
80 { INPUT
, "call", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (CALL
), 0, 0 },
81 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
82 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
85 static const CGEN_OPINST sfmt_be_ops
[] ATTRIBUTE_UNUSED
= {
86 { INPUT
, "branch", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (BRANCH
), 0, COND_REF
},
87 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
88 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
89 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
90 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
93 static const CGEN_OPINST sfmt_call_ops
[] ATTRIBUTE_UNUSED
= {
94 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
95 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
96 { OUTPUT
, "h_gr_SI_29", HW_H_GR
, CGEN_MODE_SI
, 0, 29, 0 },
97 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
98 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
101 static const CGEN_OPINST sfmt_calli_ops
[] ATTRIBUTE_UNUSED
= {
102 { INPUT
, "call", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (CALL
), 0, 0 },
103 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
104 { OUTPUT
, "h_gr_SI_29", HW_H_GR
, CGEN_MODE_SI
, 0, 29, 0 },
105 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
106 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
109 static const CGEN_OPINST sfmt_divu_ops
[] ATTRIBUTE_UNUSED
= {
110 { INPUT
, "f_r0", HW_H_UINT
, CGEN_MODE_UINT
, 0, 0, 0 },
111 { INPUT
, "f_r1", HW_H_UINT
, CGEN_MODE_UINT
, 0, 0, 0 },
112 { INPUT
, "f_r2", HW_H_UINT
, CGEN_MODE_UINT
, 0, 0, 0 },
113 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
114 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
115 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
118 static const CGEN_OPINST sfmt_lb_ops
[] ATTRIBUTE_UNUSED
= {
119 { INPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
120 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
121 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
122 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
123 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
126 static const CGEN_OPINST sfmt_lh_ops
[] ATTRIBUTE_UNUSED
= {
127 { INPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
128 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
129 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
130 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
131 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
134 static const CGEN_OPINST sfmt_lw_ops
[] ATTRIBUTE_UNUSED
= {
135 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
136 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
137 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
138 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
139 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
142 static const CGEN_OPINST sfmt_ori_ops
[] ATTRIBUTE_UNUSED
= {
143 { INPUT
, "lo16", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (LO16
), 0, 0 },
144 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
145 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
146 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
149 static const CGEN_OPINST sfmt_rcsr_ops
[] ATTRIBUTE_UNUSED
= {
150 { INPUT
, "csr", HW_H_CSR
, CGEN_MODE_SI
, OP_ENT (CSR
), 0, 0 },
151 { OUTPUT
, "r2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R2
), 0, 0 },
152 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
155 static const CGEN_OPINST sfmt_sb_ops
[] ATTRIBUTE_UNUSED
= {
156 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
157 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
158 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
159 { OUTPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
160 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
163 static const CGEN_OPINST sfmt_sextb_ops
[] ATTRIBUTE_UNUSED
= {
164 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
165 { OUTPUT
, "r2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R2
), 0, 0 },
166 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
169 static const CGEN_OPINST sfmt_sh_ops
[] ATTRIBUTE_UNUSED
= {
170 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
171 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
172 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
173 { OUTPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
174 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
177 static const CGEN_OPINST sfmt_sw_ops
[] ATTRIBUTE_UNUSED
= {
178 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
179 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
180 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
181 { OUTPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
182 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
185 static const CGEN_OPINST sfmt_user_ops
[] ATTRIBUTE_UNUSED
= {
186 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
187 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
188 { INPUT
, "user", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (USER
), 0, 0 },
189 { OUTPUT
, "r2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R2
), 0, 0 },
190 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
193 static const CGEN_OPINST sfmt_wcsr_ops
[] ATTRIBUTE_UNUSED
= {
194 { INPUT
, "f_csr", HW_H_UINT
, CGEN_MODE_UINT
, 0, 0, 0 },
195 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
196 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
199 static const CGEN_OPINST sfmt_break_ops
[] ATTRIBUTE_UNUSED
= {
200 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
201 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
202 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
205 static const CGEN_OPINST sfmt_bret_ops
[] ATTRIBUTE_UNUSED
= {
206 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
207 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
208 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
211 static const CGEN_OPINST sfmt_mvui_ops
[] ATTRIBUTE_UNUSED
= {
212 { INPUT
, "lo16", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (LO16
), 0, 0 },
213 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
214 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
217 static const CGEN_OPINST sfmt_mva_ops
[] ATTRIBUTE_UNUSED
= {
218 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
219 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
220 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
221 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
224 static const CGEN_OPINST sfmt_nop_ops
[] ATTRIBUTE_UNUSED
= {
225 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
226 { OUTPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
227 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
230 static const CGEN_OPINST sfmt_lbgprel_ops
[] ATTRIBUTE_UNUSED
= {
231 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
232 { INPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
233 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
234 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
235 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
238 static const CGEN_OPINST sfmt_lhgprel_ops
[] ATTRIBUTE_UNUSED
= {
239 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
240 { INPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
241 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
242 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
243 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
246 static const CGEN_OPINST sfmt_lwgprel_ops
[] ATTRIBUTE_UNUSED
= {
247 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
248 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
249 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
250 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
251 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
254 static const CGEN_OPINST sfmt_sbgprel_ops
[] ATTRIBUTE_UNUSED
= {
255 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
256 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
257 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
258 { OUTPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
259 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
262 static const CGEN_OPINST sfmt_shgprel_ops
[] ATTRIBUTE_UNUSED
= {
263 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
264 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
265 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
266 { OUTPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
267 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
270 static const CGEN_OPINST sfmt_swgprel_ops
[] ATTRIBUTE_UNUSED
= {
271 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
272 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
273 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
274 { OUTPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
275 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
278 static const CGEN_OPINST sfmt_lwgotrel_ops
[] ATTRIBUTE_UNUSED
= {
279 { INPUT
, "got16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOT16
), 0, 0 },
280 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_got16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
281 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
282 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
283 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
286 static const CGEN_OPINST sfmt_orhigotoffi_ops
[] ATTRIBUTE_UNUSED
= {
287 { INPUT
, "gotoffhi16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFHI16
), 0, 0 },
288 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
289 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
290 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
293 static const CGEN_OPINST sfmt_addgotoff_ops
[] ATTRIBUTE_UNUSED
= {
294 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
295 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
296 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
297 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
300 static const CGEN_OPINST sfmt_swgotoff_ops
[] ATTRIBUTE_UNUSED
= {
301 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
302 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
303 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
304 { OUTPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
305 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
308 static const CGEN_OPINST sfmt_lwgotoff_ops
[] ATTRIBUTE_UNUSED
= {
309 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
310 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
311 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
312 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
313 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
316 static const CGEN_OPINST sfmt_shgotoff_ops
[] ATTRIBUTE_UNUSED
= {
317 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
318 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
319 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
320 { OUTPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
321 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
324 static const CGEN_OPINST sfmt_lhgotoff_ops
[] ATTRIBUTE_UNUSED
= {
325 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
326 { INPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
327 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
328 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
329 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
332 static const CGEN_OPINST sfmt_sbgotoff_ops
[] ATTRIBUTE_UNUSED
= {
333 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
334 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
335 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
336 { OUTPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
337 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
340 static const CGEN_OPINST sfmt_lbgotoff_ops
[] ATTRIBUTE_UNUSED
= {
341 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
342 { INPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
343 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
344 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
345 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
354 /* Operand instance lookup table. */
356 static const CGEN_OPINST
*lm32_cgen_opinst_table
[MAX_INSNS
] = {
362 & sfmt_andhii_ops
[0],
398 & sfmt_andhii_ops
[0],
426 & sfmt_andhii_ops
[0],
430 & sfmt_lbgprel_ops
[0],
431 & sfmt_lbgprel_ops
[0],
432 & sfmt_lhgprel_ops
[0],
433 & sfmt_lhgprel_ops
[0],
434 & sfmt_lwgprel_ops
[0],
435 & sfmt_sbgprel_ops
[0],
436 & sfmt_shgprel_ops
[0],
437 & sfmt_swgprel_ops
[0],
438 & sfmt_lwgotrel_ops
[0],
439 & sfmt_orhigotoffi_ops
[0],
440 & sfmt_addgotoff_ops
[0],
441 & sfmt_swgotoff_ops
[0],
442 & sfmt_lwgotoff_ops
[0],
443 & sfmt_shgotoff_ops
[0],
444 & sfmt_lhgotoff_ops
[0],
445 & sfmt_lhgotoff_ops
[0],
446 & sfmt_sbgotoff_ops
[0],
447 & sfmt_lbgotoff_ops
[0],
448 & sfmt_lbgotoff_ops
[0],
451 /* Function to call before using the operand instance table. */
454 lm32_cgen_init_opinst_table (cd
)
458 const CGEN_OPINST
**oi
= & lm32_cgen_opinst_table
[0];
459 CGEN_INSN
*insns
= (CGEN_INSN
*) cd
->insn_table
.init_entries
;
460 for (i
= 0; i
< MAX_INSNS
; ++i
)
461 insns
[i
].opinst
= oi
[i
];