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_mvi_ops
[] ATTRIBUTE_UNUSED
= {
212 { INPUT
, "imm", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (IMM
), 0, 0 },
213 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
214 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
215 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
218 static const CGEN_OPINST sfmt_mvui_ops
[] ATTRIBUTE_UNUSED
= {
219 { INPUT
, "lo16", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (LO16
), 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_mvhi_ops
[] ATTRIBUTE_UNUSED
= {
225 { INPUT
, "hi16", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (HI16
), 0, 0 },
226 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
227 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
228 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
231 static const CGEN_OPINST sfmt_mva_ops
[] ATTRIBUTE_UNUSED
= {
232 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 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_nop_ops
[] ATTRIBUTE_UNUSED
= {
239 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
240 { OUTPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
241 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
244 static const CGEN_OPINST sfmt_lbgprel_ops
[] ATTRIBUTE_UNUSED
= {
245 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
246 { INPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
247 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
248 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
249 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
252 static const CGEN_OPINST sfmt_lhgprel_ops
[] ATTRIBUTE_UNUSED
= {
253 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
254 { INPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
255 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
256 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
257 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
260 static const CGEN_OPINST sfmt_lwgprel_ops
[] ATTRIBUTE_UNUSED
= {
261 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
262 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
263 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
264 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
265 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
268 static const CGEN_OPINST sfmt_sbgprel_ops
[] ATTRIBUTE_UNUSED
= {
269 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
270 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
271 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
272 { OUTPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
273 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
276 static const CGEN_OPINST sfmt_shgprel_ops
[] ATTRIBUTE_UNUSED
= {
277 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
278 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
279 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
280 { OUTPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
281 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
284 static const CGEN_OPINST sfmt_swgprel_ops
[] ATTRIBUTE_UNUSED
= {
285 { INPUT
, "gp16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GP16
), 0, 0 },
286 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
287 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
288 { OUTPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
289 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
292 static const CGEN_OPINST sfmt_lwgotrel_ops
[] ATTRIBUTE_UNUSED
= {
293 { INPUT
, "got16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOT16
), 0, 0 },
294 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_got16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 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_orhigotoffi_ops
[] ATTRIBUTE_UNUSED
= {
301 { INPUT
, "gotoffhi16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFHI16
), 0, 0 },
302 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
303 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
304 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
307 static const CGEN_OPINST sfmt_addgotoff_ops
[] ATTRIBUTE_UNUSED
= {
308 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
309 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
310 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
311 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
314 static const CGEN_OPINST sfmt_swgotoff_ops
[] ATTRIBUTE_UNUSED
= {
315 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
316 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
317 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
318 { OUTPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
319 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
322 static const CGEN_OPINST sfmt_lwgotoff_ops
[] ATTRIBUTE_UNUSED
= {
323 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
324 { INPUT
, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
325 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
326 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
327 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
330 static const CGEN_OPINST sfmt_shgotoff_ops
[] ATTRIBUTE_UNUSED
= {
331 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
332 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
333 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
334 { OUTPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
335 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
338 static const CGEN_OPINST sfmt_lhgotoff_ops
[] ATTRIBUTE_UNUSED
= {
339 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
340 { INPUT
, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
341 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
342 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
343 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
346 static const CGEN_OPINST sfmt_sbgotoff_ops
[] ATTRIBUTE_UNUSED
= {
347 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
348 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
349 { INPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
350 { OUTPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
351 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
354 static const CGEN_OPINST sfmt_lbgotoff_ops
[] ATTRIBUTE_UNUSED
= {
355 { INPUT
, "gotofflo16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (GOTOFFLO16
), 0, 0 },
356 { INPUT
, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
357 { INPUT
, "r0", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R0
), 0, 0 },
358 { OUTPUT
, "r1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (R1
), 0, 0 },
359 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
368 /* Operand instance lookup table. */
370 static const CGEN_OPINST
*lm32_cgen_opinst_table
[MAX_INSNS
] = {
376 & sfmt_andhii_ops
[0],
412 & sfmt_andhii_ops
[0],
444 & sfmt_lbgprel_ops
[0],
445 & sfmt_lbgprel_ops
[0],
446 & sfmt_lhgprel_ops
[0],
447 & sfmt_lhgprel_ops
[0],
448 & sfmt_lwgprel_ops
[0],
449 & sfmt_sbgprel_ops
[0],
450 & sfmt_shgprel_ops
[0],
451 & sfmt_swgprel_ops
[0],
452 & sfmt_lwgotrel_ops
[0],
453 & sfmt_orhigotoffi_ops
[0],
454 & sfmt_addgotoff_ops
[0],
455 & sfmt_swgotoff_ops
[0],
456 & sfmt_lwgotoff_ops
[0],
457 & sfmt_shgotoff_ops
[0],
458 & sfmt_lhgotoff_ops
[0],
459 & sfmt_lhgotoff_ops
[0],
460 & sfmt_sbgotoff_ops
[0],
461 & sfmt_lbgotoff_ops
[0],
462 & sfmt_lbgotoff_ops
[0],
465 /* Function to call before using the operand instance table. */
468 lm32_cgen_init_opinst_table (cd
)
472 const CGEN_OPINST
**oi
= & lm32_cgen_opinst_table
[0];
473 CGEN_INSN
*insns
= (CGEN_INSN
*) cd
->insn_table
.init_entries
;
474 for (i
= 0; i
< MAX_INSNS
; ++i
)
475 insns
[i
].opinst
= oi
[i
];