comparison gcc/recog.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Declarations for interface to insn recognizer and insn-output.c. 1 /* Declarations for interface to insn recognizer and insn-output.c.
2 Copyright (C) 1987-2017 Free Software Foundation, Inc. 2 Copyright (C) 1987-2018 Free Software Foundation, Inc.
3 3
4 This file is part of GCC. 4 This file is part of GCC.
5 5
6 GCC is free software; you can redistribute it and/or modify it under 6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free 7 the terms of the GNU General Public License as published by the Free
22 22
23 /* Random number that should be large enough for all purposes. Also define 23 /* Random number that should be large enough for all purposes. Also define
24 a type that has at least MAX_RECOG_ALTERNATIVES + 1 bits, with the extra 24 a type that has at least MAX_RECOG_ALTERNATIVES + 1 bits, with the extra
25 bit giving an invalid value that can be used to mean "uninitialized". */ 25 bit giving an invalid value that can be used to mean "uninitialized". */
26 #define MAX_RECOG_ALTERNATIVES 35 26 #define MAX_RECOG_ALTERNATIVES 35
27 typedef uint64_t alternative_mask; 27 typedef uint64_t alternative_mask; /* Keep in sync with genattrtab.c. */
28 28
29 /* A mask of all alternatives. */ 29 /* A mask of all alternatives. */
30 #define ALL_ALTERNATIVES ((alternative_mask) -1) 30 #define ALL_ALTERNATIVES ((alternative_mask) -1)
31 31
32 /* A mask containing just alternative X. */ 32 /* A mask containing just alternative X. */
134 extern void extract_insn (rtx_insn *); 134 extern void extract_insn (rtx_insn *);
135 extern void extract_constrain_insn (rtx_insn *insn); 135 extern void extract_constrain_insn (rtx_insn *insn);
136 extern void extract_constrain_insn_cached (rtx_insn *); 136 extern void extract_constrain_insn_cached (rtx_insn *);
137 extern void extract_insn_cached (rtx_insn *); 137 extern void extract_insn_cached (rtx_insn *);
138 extern void preprocess_constraints (int, int, const char **, 138 extern void preprocess_constraints (int, int, const char **,
139 operand_alternative *); 139 operand_alternative *, rtx **);
140 extern const operand_alternative *preprocess_insn_constraints (unsigned int); 140 extern const operand_alternative *preprocess_insn_constraints (unsigned int);
141 extern void preprocess_constraints (rtx_insn *); 141 extern void preprocess_constraints (rtx_insn *);
142 extern rtx_insn *peep2_next_insn (int); 142 extern rtx_insn *peep2_next_insn (int);
143 extern int peep2_regno_dead_p (int, int); 143 extern int peep2_regno_dead_p (int, int);
144 extern int peep2_reg_dead_p (int, rtx); 144 extern int peep2_reg_dead_p (int, rtx);
292 typedef rtx_insn * (*f13) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); 292 typedef rtx_insn * (*f13) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
293 typedef rtx_insn * (*f14) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); 293 typedef rtx_insn * (*f14) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
294 typedef rtx_insn * (*f15) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); 294 typedef rtx_insn * (*f15) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
295 typedef rtx_insn * (*f16) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx); 295 typedef rtx_insn * (*f16) (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx);
296 296
297 typedef f0 stored_funcptr; 297 typedef void (*stored_funcptr) (void);
298 298
299 rtx_insn * operator () (void) const { return ((f0)func) (); } 299 rtx_insn * operator () (void) const { return ((f0)func) (); }
300 rtx_insn * operator () (rtx a0) const { return ((f1)func) (a0); } 300 rtx_insn * operator () (rtx a0) const { return ((f1)func) (a0); }
301 rtx_insn * operator () (rtx a0, rtx a1) const { return ((f2)func) (a0, a1); } 301 rtx_insn * operator () (rtx a0, rtx a1) const { return ((f2)func) (a0, a1); }
302 rtx_insn * operator () (rtx a0, rtx a1, rtx a2) const { return ((f3)func) (a0, a1, a2); } 302 rtx_insn * operator () (rtx a0, rtx a1, rtx a2) const { return ((f3)func) (a0, a1, a2); }