196263Sobrien/* General-purpose hooks.
2169689Skan   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
396263Sobrien
496263SobrienThis program is free software; you can redistribute it and/or modify it
596263Sobrienunder the terms of the GNU General Public License as published by the
696263SobrienFree Software Foundation; either version 2, or (at your option) any
796263Sobrienlater version.
896263Sobrien
996263SobrienThis program is distributed in the hope that it will be useful,
1096263Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of
1196263SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1296263SobrienGNU General Public License for more details.
1396263Sobrien
1496263SobrienYou should have received a copy of the GNU General Public License
1596263Sobrienalong with this program; if not, write to the Free Software
16169689SkanFoundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1796263Sobrien
1896263Sobrien In other words, you are welcome to use, share and improve this program.
1996263Sobrien You are forbidden to forbid anyone else to use, share and improve
2096263Sobrien what you give them.   Help stamp out software-hoarding!  */
2196263Sobrien
22102780Skan#ifndef GCC_HOOKS_H
23102780Skan#define GCC_HOOKS_H
24102780Skan
25169689Skan#include "machmode.h"
26169689Skan
27132718Skanextern bool hook_bool_void_false (void);
28169689Skanextern bool hook_bool_void_true (void);
29132718Skanextern bool hook_bool_bool_false (bool);
30169689Skanextern bool hook_bool_mode_false (enum machine_mode);
31169689Skanextern bool hook_bool_mode_rtx_false (enum machine_mode, rtx);
32169689Skanextern bool hook_bool_mode_rtx_true (enum machine_mode, rtx);
33132718Skanextern bool hook_bool_tree_false (tree);
34132718Skanextern bool hook_bool_tree_true (tree);
35132718Skanextern bool hook_bool_tree_hwi_hwi_tree_false (tree, HOST_WIDE_INT, HOST_WIDE_INT,
36132718Skan					tree);
37132718Skanextern bool hook_bool_tree_hwi_hwi_tree_true (tree, HOST_WIDE_INT, HOST_WIDE_INT,
38132718Skan				       tree);
39132718Skanextern bool hook_bool_rtx_false (rtx);
40132718Skanextern bool hook_bool_uintp_uintp_false (unsigned int *, unsigned int *);
41132718Skanextern bool hook_bool_rtx_int_int_intp_false (rtx, int, int, int *);
42132718Skanextern bool hook_bool_constcharptr_size_t_false (const char *, size_t);
43169689Skanextern bool hook_bool_size_t_constcharptr_int_true (size_t, const char *, int);
44169689Skanextern bool hook_bool_tree_tree_false (tree, tree);
45169689Skanextern bool hook_bool_tree_bool_false (tree, bool);
46117395Skan
47132718Skanextern void hook_void_void (void);
48169689Skanextern void hook_void_constcharptr (const char *);
49132718Skanextern void hook_void_FILEptr_constcharptr (FILE *, const char *);
50132718Skanextern void hook_void_tree (tree);
51132718Skanextern void hook_void_tree_treeptr (tree, tree *);
52102780Skan
53169689Skanextern int hook_int_tree_0 (tree);
54132718Skanextern int hook_int_tree_tree_1 (tree, tree);
55132718Skanextern int hook_int_rtx_0 (rtx);
56132718Skanextern int hook_int_size_t_constcharptr_int_0 (size_t, const char *, int);
57132718Skanextern int hook_int_void_no_regs (void);
58117395Skan
59169689Skanextern tree hook_tree_tree_tree_null (tree, tree);
60169689Skanextern tree hook_tree_tree_tree_tree_3rd_identity (tree, tree, tree);
61169689Skanextern tree hook_tree_tree_tree_bool_null (tree, tree, bool);
62169689Skan
63132718Skanextern unsigned hook_uint_uint_constcharptrptr_0 (unsigned, const char **);
64117395Skan
65132718Skanextern bool default_can_output_mi_thunk_no_vcall (tree, HOST_WIDE_INT,
66132718Skan					   HOST_WIDE_INT, tree);
67132718Skan
68132718Skanextern rtx hook_rtx_rtx_identity (rtx);
69132718Skanextern rtx hook_rtx_rtx_null (rtx);
70132718Skanextern rtx hook_rtx_tree_int_null (tree, int);
71169689Skan
72146895Skanextern const char *hook_constcharptr_tree_null (tree);
73169689Skanextern const char *hook_constcharptr_rtx_null (rtx);
74169689Skanextern const char *hook_constcharptr_tree_tree_null (tree, tree);
75169689Skanextern const char *hook_constcharptr_int_tree_null (int, tree);
76169689Skanextern const char *hook_constcharptr_int_tree_tree_null (int, tree, tree);
77102780Skan#endif
78