]> gcc.gnu.org Git - gcc.git/blame - gcc/genopinit.c
SimpleTimeZone.java (startTimeMode, [...]): New members.
[gcc.git] / gcc / genopinit.c
CommitLineData
af9e4a0c 1/* Generate code to initialize optabs from machine description.
b5e01d4b 2 Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
d9221e01 3 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
af9e4a0c 4
1322177d 5This file is part of GCC.
af9e4a0c 6
1322177d
LB
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 2, or (at your option) any later
10version.
af9e4a0c 11
1322177d
LB
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
af9e4a0c
RK
16
17You should have received a copy of the GNU General Public License
1322177d
LB
18along with GCC; see the file COPYING. If not, write to the Free
19Software Foundation, 59 Temple Place - Suite 330, Boston, MA
2002111-1307, USA. */
af9e4a0c
RK
21
22
4977bab6 23#include "bconfig.h"
0b93b64e 24#include "system.h"
4977bab6
ZW
25#include "coretypes.h"
26#include "tm.h"
af9e4a0c 27#include "rtl.h"
f8b6598e 28#include "errors.h"
c88c0d42 29#include "gensupport.h"
ccd043a9 30
af9e4a0c 31
af9e4a0c
RK
32/* Many parts of GCC use arrays that are indexed by machine mode and
33 contain the insn codes for pattern in the MD file that perform a given
34 operation on operands of that mode.
35
36 These patterns are present in the MD file with names that contain
37 the mode(s) used and the name of the operation. This program
38 writes a function `init_all_optabs' that initializes the optabs with
39 all the insn codes of the relevant patterns present in the MD file.
40
41 This array contains a list of optabs that need to be initialized. Within
42 each string, the name of the pattern to be matched against is delimited
1b3459d2 43 with $( and $). In the string, $a and $b are used to match a short mode
af9e4a0c
RK
44 name (the part of the mode name not including `mode' and converted to
45 lower-case). When writing out the initializer, the entire string is
1b3459d2 46 used. $A and $B are replaced with the full name of the mode; $a and $b
af9e4a0c
RK
47 are replaced with the short form of the name, as above.
48
1b3459d2
ZW
49 If $N is present in the pattern, it means the two modes must be consecutive
50 widths in the same mode class (e.g, QImode and HImode). $I means that
91ce572a
CC
51 only full integer modes should be considered for the next mode, and $F
52 means that only float modes should be considered.
53 $P means that both full and partial integer modes should be considered.
54
55 $V means to emit 'v' if the first mode is a MODE_FLOAT mode.
af9e4a0c
RK
56
57 For some optabs, we store the operation by RTL codes. These are only
1b3459d2 58 used for comparisons. In that case, $c and $C are the lower-case and
af9e4a0c
RK
59 upper-case forms of the comparison, respectively. */
60
83182544 61static const char * const optabs[] =
85363ca0
ZW
62{ "sext_optab->handlers[$B][$A].insn_code = CODE_FOR_$(extend$a$b2$)",
63 "zext_optab->handlers[$B][$A].insn_code = CODE_FOR_$(zero_extend$a$b2$)",
64 "sfix_optab->handlers[$B][$A].insn_code = CODE_FOR_$(fix$F$a$I$b2$)",
65 "ufix_optab->handlers[$B][$A].insn_code = CODE_FOR_$(fixuns$F$a$b2$)",
66 "sfixtrunc_optab->handlers[$B][$A].insn_code = CODE_FOR_$(fix_trunc$F$a$I$b2$)",
67 "ufixtrunc_optab->handlers[$B][$A].insn_code = CODE_FOR_$(fixuns_trunc$F$a$I$b2$)",
68 "sfloat_optab->handlers[$B][$A].insn_code = CODE_FOR_$(float$I$a$F$b2$)",
69 "ufloat_optab->handlers[$B][$A].insn_code = CODE_FOR_$(floatuns$I$a$F$b2$)",
70 "trunc_optab->handlers[$B][$A].insn_code = CODE_FOR_$(trunc$a$b2$)",
91ce572a 71 "add_optab->handlers[$A].insn_code = CODE_FOR_$(add$P$a3$)",
85363ca0
ZW
72 "addv_optab->handlers[$A].insn_code =\n\
73 add_optab->handlers[$A].insn_code = CODE_FOR_$(add$F$a3$)",
74 "addv_optab->handlers[$A].insn_code = CODE_FOR_$(addv$I$a3$)",
91ce572a 75 "sub_optab->handlers[$A].insn_code = CODE_FOR_$(sub$P$a3$)",
85363ca0
ZW
76 "subv_optab->handlers[$A].insn_code =\n\
77 sub_optab->handlers[$A].insn_code = CODE_FOR_$(sub$F$a3$)",
78 "subv_optab->handlers[$A].insn_code = CODE_FOR_$(subv$I$a3$)",
91ce572a 79 "smul_optab->handlers[$A].insn_code = CODE_FOR_$(mul$P$a3$)",
85363ca0
ZW
80 "smulv_optab->handlers[$A].insn_code =\n\
81 smul_optab->handlers[$A].insn_code = CODE_FOR_$(mul$F$a3$)",
82 "smulv_optab->handlers[$A].insn_code = CODE_FOR_$(mulv$I$a3$)",
1b3459d2
ZW
83 "umul_highpart_optab->handlers[$A].insn_code = CODE_FOR_$(umul$a3_highpart$)",
84 "smul_highpart_optab->handlers[$A].insn_code = CODE_FOR_$(smul$a3_highpart$)",
85 "smul_widen_optab->handlers[$B].insn_code = CODE_FOR_$(mul$a$b3$)$N",
86 "umul_widen_optab->handlers[$B].insn_code = CODE_FOR_$(umul$a$b3$)$N",
ef89d648 87 "sdiv_optab->handlers[$A].insn_code = CODE_FOR_$(div$a3$)",
85363ca0 88 "sdivv_optab->handlers[$A].insn_code = CODE_FOR_$(div$V$I$a3$)",
1b3459d2
ZW
89 "udiv_optab->handlers[$A].insn_code = CODE_FOR_$(udiv$I$a3$)",
90 "sdivmod_optab->handlers[$A].insn_code = CODE_FOR_$(divmod$a4$)",
91 "udivmod_optab->handlers[$A].insn_code = CODE_FOR_$(udivmod$a4$)",
92 "smod_optab->handlers[$A].insn_code = CODE_FOR_$(mod$a3$)",
93 "umod_optab->handlers[$A].insn_code = CODE_FOR_$(umod$a3$)",
5ae27cfa
UB
94 "fmod_optab->handlers[$A].insn_code = CODE_FOR_$(fmod$a3$)",
95 "drem_optab->handlers[$A].insn_code = CODE_FOR_$(drem$a3$)",
1b3459d2
ZW
96 "ftrunc_optab->handlers[$A].insn_code = CODE_FOR_$(ftrunc$F$a2$)",
97 "and_optab->handlers[$A].insn_code = CODE_FOR_$(and$a3$)",
98 "ior_optab->handlers[$A].insn_code = CODE_FOR_$(ior$a3$)",
99 "xor_optab->handlers[$A].insn_code = CODE_FOR_$(xor$a3$)",
100 "ashl_optab->handlers[$A].insn_code = CODE_FOR_$(ashl$a3$)",
101 "ashr_optab->handlers[$A].insn_code = CODE_FOR_$(ashr$a3$)",
102 "lshr_optab->handlers[$A].insn_code = CODE_FOR_$(lshr$a3$)",
103 "rotl_optab->handlers[$A].insn_code = CODE_FOR_$(rotl$a3$)",
104 "rotr_optab->handlers[$A].insn_code = CODE_FOR_$(rotr$a3$)",
105 "smin_optab->handlers[$A].insn_code = CODE_FOR_$(smin$I$a3$)",
106 "smin_optab->handlers[$A].insn_code = CODE_FOR_$(min$F$a3$)",
107 "smax_optab->handlers[$A].insn_code = CODE_FOR_$(smax$I$a3$)",
108 "smax_optab->handlers[$A].insn_code = CODE_FOR_$(max$F$a3$)",
109 "umin_optab->handlers[$A].insn_code = CODE_FOR_$(umin$I$a3$)",
110 "umax_optab->handlers[$A].insn_code = CODE_FOR_$(umax$I$a3$)",
b5e01d4b
RS
111 "pow_optab->handlers[$A].insn_code = CODE_FOR_$(pow$a3$)",
112 "atan2_optab->handlers[$A].insn_code = CODE_FOR_$(atan2$a3$)",
91ce572a 113 "neg_optab->handlers[$A].insn_code = CODE_FOR_$(neg$P$a2$)",
85363ca0
ZW
114 "negv_optab->handlers[$A].insn_code =\n\
115 neg_optab->handlers[$A].insn_code = CODE_FOR_$(neg$F$a2$)",
116 "negv_optab->handlers[$A].insn_code = CODE_FOR_$(negv$I$a2$)",
91ce572a 117 "abs_optab->handlers[$A].insn_code = CODE_FOR_$(abs$P$a2$)",
85363ca0
ZW
118 "absv_optab->handlers[$A].insn_code =\n\
119 abs_optab->handlers[$A].insn_code = CODE_FOR_$(abs$F$a2$)",
120 "absv_optab->handlers[$A].insn_code = CODE_FOR_$(absv$I$a2$)",
1b3459d2 121 "sqrt_optab->handlers[$A].insn_code = CODE_FOR_$(sqrt$a2$)",
4977bab6
ZW
122 "floor_optab->handlers[$A].insn_code = CODE_FOR_$(floor$a2$)",
123 "ceil_optab->handlers[$A].insn_code = CODE_FOR_$(ceil$a2$)",
124 "round_optab->handlers[$A].insn_code = CODE_FOR_$(round$a2$)",
125 "trunc_optab->handlers[$A].insn_code = CODE_FOR_$(trunc$a2$)",
126 "nearbyint_optab->handlers[$A].insn_code = CODE_FOR_$(nearbyint$a2$)",
6c7cf1f0 127 "sincos_optab->handlers[$A].insn_code = CODE_FOR_$(sincos$a3$)",
1b3459d2 128 "sin_optab->handlers[$A].insn_code = CODE_FOR_$(sin$a2$)",
c56122d8 129 "asin_optab->handlers[$A].insn_code = CODE_FOR_$(asin$a2$)",
1b3459d2 130 "cos_optab->handlers[$A].insn_code = CODE_FOR_$(cos$a2$)",
c56122d8 131 "acos_optab->handlers[$A].insn_code = CODE_FOR_$(acos$a2$)",
e7b489c8 132 "exp_optab->handlers[$A].insn_code = CODE_FOR_$(exp$a2$)",
a251102e
UB
133 "exp10_optab->handlers[$A].insn_code = CODE_FOR_$(exp10$a2$)",
134 "exp2_optab->handlers[$A].insn_code = CODE_FOR_$(exp2$a2$)",
7a8e07c7 135 "expm1_optab->handlers[$A].insn_code = CODE_FOR_$(expm1$a2$)",
88b28a31
UB
136 "logb_optab->handlers[$A].insn_code = CODE_FOR_$(logb$a2$)",
137 "ilogb_optab->handlers[$A].insn_code = CODE_FOR_$(ilogb$a2$)",
e7b489c8 138 "log_optab->handlers[$A].insn_code = CODE_FOR_$(log$a2$)",
3b8e0c91
UB
139 "log10_optab->handlers[$A].insn_code = CODE_FOR_$(log10$a2$)",
140 "log2_optab->handlers[$A].insn_code = CODE_FOR_$(log2$a2$)",
82d397c7
RS
141 "tan_optab->handlers[$A].insn_code = CODE_FOR_$(tan$a2$)",
142 "atan_optab->handlers[$A].insn_code = CODE_FOR_$(atan$a2$)",
1b3459d2
ZW
143 "strlen_optab->handlers[$A].insn_code = CODE_FOR_$(strlen$a$)",
144 "one_cmpl_optab->handlers[$A].insn_code = CODE_FOR_$(one_cmpl$a2$)",
145 "ffs_optab->handlers[$A].insn_code = CODE_FOR_$(ffs$a2$)",
2928cd7a
RH
146 "clz_optab->handlers[$A].insn_code = CODE_FOR_$(clz$a2$)",
147 "ctz_optab->handlers[$A].insn_code = CODE_FOR_$(ctz$a2$)",
148 "popcount_optab->handlers[$A].insn_code = CODE_FOR_$(popcount$a2$)",
149 "parity_optab->handlers[$A].insn_code = CODE_FOR_$(parity$a2$)",
1b3459d2
ZW
150 "mov_optab->handlers[$A].insn_code = CODE_FOR_$(mov$a$)",
151 "movstrict_optab->handlers[$A].insn_code = CODE_FOR_$(movstrict$a$)",
152 "cmp_optab->handlers[$A].insn_code = CODE_FOR_$(cmp$a$)",
153 "tst_optab->handlers[$A].insn_code = CODE_FOR_$(tst$a$)",
068f5dea 154 "addcc_optab->handlers[$A].insn_code = CODE_FOR_$(add$acc$)",
1b3459d2
ZW
155 "bcc_gen_fctn[$C] = gen_$(b$c$)",
156 "setcc_gen_code[$C] = CODE_FOR_$(s$c$)",
157 "movcc_gen_code[$A] = CODE_FOR_$(mov$acc$)",
158 "cbranch_optab->handlers[$A].insn_code = CODE_FOR_$(cbranch$a4$)",
159 "cmov_optab->handlers[$A].insn_code = CODE_FOR_$(cmov$a6$)",
160 "cstore_optab->handlers[$A].insn_code = CODE_FOR_$(cstore$a4$)",
371b8fc0 161 "push_optab->handlers[$A].insn_code = CODE_FOR_$(push$a1$)",
1b3459d2
ZW
162 "reload_in_optab[$A] = CODE_FOR_$(reload_in$a$)",
163 "reload_out_optab[$A] = CODE_FOR_$(reload_out$a$)",
164 "movstr_optab[$A] = CODE_FOR_$(movstr$a$)",
118355a0
ZW
165 "clrstr_optab[$A] = CODE_FOR_$(clrstr$a$)",
166 "cmpstr_optab[$A] = CODE_FOR_$(cmpstr$a$)",
997404de
JH
167 "cmpmem_optab[$A] = CODE_FOR_$(cmpmem$a$)",
168 "vec_set_optab->handlers[$A].insn_code = CODE_FOR_$(vec_set$a$)",
169 "vec_extract_optab->handlers[$A].insn_code = CODE_FOR_$(vec_extract$a$)",
170 "vec_init_optab->handlers[$A].insn_code = CODE_FOR_$(vec_init$a$)" };
af9e4a0c 171
3d7aafde 172static void gen_insn (rtx);
56c0e996 173
af9e4a0c 174static void
3d7aafde 175gen_insn (rtx insn)
af9e4a0c 176{
3cce094d 177 const char *name = XSTR (insn, 0);
a544cfd2 178 int m1 = 0, m2 = 0, op = 0;
5ae9a7e9 179 size_t pindex;
af9e4a0c 180 int i;
85fda1eb 181 const char *np, *pp, *p, *q;
af9e4a0c
RK
182
183 /* Don't mention instructions whose names are the null string.
184 They are in the machine description just to be recognized. */
185 if (*name == 0)
186 return;
187
188 /* See if NAME matches one of the patterns we have for the optabs we know
189 about. */
190
b6a1cbae 191 for (pindex = 0; pindex < ARRAY_SIZE (optabs); pindex++)
af9e4a0c 192 {
91ce572a 193 int force_float = 0, force_int = 0, force_partial_int = 0;
af9e4a0c
RK
194 int force_consec = 0;
195 int matches = 1;
196
1b3459d2 197 for (pp = optabs[pindex]; pp[0] != '$' || pp[1] != '('; pp++)
af9e4a0c
RK
198 ;
199
1b3459d2 200 for (pp += 2, np = name; matches && ! (pp[0] == '$' && pp[1] == ')');
af9e4a0c
RK
201 pp++)
202 {
1b3459d2 203 if (*pp != '$')
af9e4a0c
RK
204 {
205 if (*pp != *np++)
206 break;
207 }
208 else
209 switch (*++pp)
210 {
211 case 'N':
212 force_consec = 1;
213 break;
214 case 'I':
215 force_int = 1;
216 break;
91ce572a
CC
217 case 'P':
218 force_partial_int = 1;
219 break;
af9e4a0c
RK
220 case 'F':
221 force_float = 1;
222 break;
91ce572a
CC
223 case 'V':
224 break;
af9e4a0c
RK
225 case 'c':
226 for (op = 0; op < NUM_RTX_CODE; op++)
227 {
5f06c983 228 for (p = GET_RTX_NAME(op), q = np; *p; p++, q++)
af9e4a0c
RK
229 if (*p != *q)
230 break;
231
232 /* We have to be concerned about matching "gt" and
233 missing "gtu", e.g., so verify we have reached the
4639555c 234 end of thing we are to match. */
ec8e098d
PB
235 if (*p == 0 && *q == 0
236 && (GET_RTX_CLASS (op) == RTX_COMPARE
237 || GET_RTX_CLASS (op) == RTX_COMM_COMPARE))
af9e4a0c
RK
238 break;
239 }
240
241 if (op == NUM_RTX_CODE)
242 matches = 0;
243 else
5f06c983 244 np += strlen (GET_RTX_NAME(op));
af9e4a0c
RK
245 break;
246 case 'a':
247 case 'b':
4639555c
ILT
248 /* This loop will stop at the first prefix match, so
249 look through the modes in reverse order, in case
94134f42 250 there are extra CC modes and CC is a prefix of the
4639555c 251 CC modes (as it should be). */
85363ca0 252 for (i = (MAX_MACHINE_MODE) - 1; i >= 0; i--)
af9e4a0c 253 {
a4ec8d12 254 for (p = GET_MODE_NAME(i), q = np; *p; p++, q++)
92a438d1 255 if (TOLOWER (*p) != *q)
af9e4a0c
RK
256 break;
257
258 if (*p == 0
7d9e680f
DB
259 && (! force_int || mode_class[i] == MODE_INT
260 || mode_class[i] == MODE_VECTOR_INT)
91ce572a
CC
261 && (! force_partial_int
262 || mode_class[i] == MODE_INT
7d9e680f
DB
263 || mode_class[i] == MODE_PARTIAL_INT
264 || mode_class[i] == MODE_VECTOR_INT)
265 && (! force_float || mode_class[i] == MODE_FLOAT
266 || mode_class[i] == MODE_VECTOR_FLOAT))
af9e4a0c
RK
267 break;
268 }
269
4639555c 270 if (i < 0)
af9e4a0c
RK
271 matches = 0;
272 else if (*pp == 'a')
a4ec8d12 273 m1 = i, np += strlen (GET_MODE_NAME(i));
af9e4a0c 274 else
a4ec8d12 275 m2 = i, np += strlen (GET_MODE_NAME(i));
af9e4a0c 276
91ce572a 277 force_int = force_partial_int = force_float = 0;
af9e4a0c
RK
278 break;
279
280 default:
281 abort ();
282 }
283 }
284
1b3459d2 285 if (matches && pp[0] == '$' && pp[1] == ')'
af9e4a0c 286 && *np == 0
88a5e9da 287 && (! force_consec || (int) GET_MODE_WIDER_MODE(m1) == m2))
af9e4a0c
RK
288 break;
289 }
290
b6a1cbae 291 if (pindex == ARRAY_SIZE (optabs))
af9e4a0c
RK
292 return;
293
294 /* We found a match. If this pattern is only conditionally present,
295 write out the "if" and two extra blanks. */
296
297 if (*XSTR (insn, 2) != 0)
298 printf (" if (HAVE_%s)\n ", name);
299
300 printf (" ");
301
302 /* Now write out the initialization, making all required substitutions. */
303 for (pp = optabs[pindex]; *pp; pp++)
304 {
1b3459d2
ZW
305 if (*pp != '$')
306 putchar (*pp);
af9e4a0c
RK
307 else
308 switch (*++pp)
309 {
310 case '(': case ')':
311 case 'I': case 'F': case 'N':
312 break;
91ce572a
CC
313 case 'V':
314 if (GET_MODE_CLASS (m1) == MODE_FLOAT)
315 printf ("v");
316 break;
af9e4a0c 317 case 'a':
a4ec8d12 318 for (np = GET_MODE_NAME(m1); *np; np++)
92a438d1 319 putchar (TOLOWER (*np));
af9e4a0c
RK
320 break;
321 case 'b':
a4ec8d12 322 for (np = GET_MODE_NAME(m2); *np; np++)
92a438d1 323 putchar (TOLOWER (*np));
af9e4a0c
RK
324 break;
325 case 'A':
85363ca0 326 printf ("%smode", GET_MODE_NAME(m1));
af9e4a0c
RK
327 break;
328 case 'B':
85363ca0 329 printf ("%smode", GET_MODE_NAME(m2));
af9e4a0c
RK
330 break;
331 case 'c':
5f06c983 332 printf ("%s", GET_RTX_NAME(op));
af9e4a0c
RK
333 break;
334 case 'C':
5f06c983 335 for (np = GET_RTX_NAME(op); *np; np++)
92a438d1 336 putchar (TOUPPER (*np));
af9e4a0c
RK
337 break;
338 }
339 }
340
341 printf (";\n");
342}
af9e4a0c 343
3d7aafde 344extern int main (int, char **);
c1b59dce 345
af9e4a0c 346int
3d7aafde 347main (int argc, char **argv)
af9e4a0c
RK
348{
349 rtx desc;
af9e4a0c 350
f8b6598e 351 progname = "genopinit";
af9e4a0c
RK
352
353 if (argc <= 1)
1f978f5f 354 fatal ("no input file name");
af9e4a0c 355
04d8aa70 356 if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE)
c88c0d42 357 return (FATAL_EXIT_CODE);
af9e4a0c 358
af9e4a0c
RK
359 printf ("/* Generated automatically by the program `genopinit'\n\
360from the machine description file `md'. */\n\n");
361
362 printf ("#include \"config.h\"\n");
729da3f5 363 printf ("#include \"system.h\"\n");
4977bab6
ZW
364 printf ("#include \"coretypes.h\"\n");
365 printf ("#include \"tm.h\"\n");
af9e4a0c
RK
366 printf ("#include \"rtl.h\"\n");
367 printf ("#include \"flags.h\"\n");
af9e4a0c
RK
368 printf ("#include \"insn-config.h\"\n");
369 printf ("#include \"recog.h\"\n");
370 printf ("#include \"expr.h\"\n");
e78d8e51 371 printf ("#include \"optabs.h\"\n");
af9e4a0c
RK
372 printf ("#include \"reload.h\"\n\n");
373
6906ba40 374 printf ("void\ninit_all_optabs (void)\n{\n");
af9e4a0c 375
dcc3fcf2
KH
376 puts ("\
377#ifdef FIXUNS_TRUNC_LIKE_FIX_TRUNC\n\
378 int i, j;\n\
379#endif\n");
380
af9e4a0c
RK
381 /* Read the machine description. */
382
383 while (1)
384 {
c88c0d42
CP
385 int line_no, insn_code_number = 0;
386
387 desc = read_md_rtx (&line_no, &insn_code_number);
388 if (desc == NULL)
af9e4a0c 389 break;
af9e4a0c 390
af9e4a0c
RK
391 if (GET_CODE (desc) == DEFINE_INSN || GET_CODE (desc) == DEFINE_EXPAND)
392 gen_insn (desc);
393 }
394
85363ca0
ZW
395 puts ("\
396\n\
397#ifdef FIXUNS_TRUNC_LIKE_FIX_TRUNC\n\
398 /* This flag says the same insns that convert to a signed fixnum\n\
399 also convert validly to an unsigned one. */\n\
400 for (i = 0; i < NUM_MACHINE_MODES; i++)\n\
401 for (j = 0; j < NUM_MACHINE_MODES; j++)\n\
402 ufixtrunc_optab->handlers[i][j].insn_code\n\
403 = sfixtrunc_optab->handlers[i][j].insn_code;\n\
404#endif\n\
405}");
af9e4a0c
RK
406
407 fflush (stdout);
c1b59dce 408 return (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
af9e4a0c 409}
a995e389
RH
410
411/* Define this so we can link with print-rtl.o to get debug_rtx function. */
412const char *
3d7aafde 413get_insn_name (int code ATTRIBUTE_UNUSED)
a995e389
RH
414{
415 return NULL;
416}
This page took 1.967454 seconds and 5 git commands to generate.