1 /* brig-builtins.h -- brig builtin definitions 2 Copyright (C) 2016-2019 Free Software Foundation, Inc. 3 4 Contributed by Pekka Jaaskelainen <pekka.jaaskelainen@parmance.com> 5 for General Processor Tech. 6 This file is part of GCC. 7 8 GCC is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free 10 Software Foundation; either version 3, or (at your option) any later 11 version. 12 13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 14 WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with GCC; see the file COPYING3. If not see 20 <http://www.gnu.org/licenses/>. */ 21 22 enum built_in_attribute 23 { 24 #define DEF_ATTR_NULL_TREE(ENUM) ENUM, 25 #define DEF_ATTR_INT(ENUM, VALUE) ENUM, 26 #define DEF_ATTR_STRING(ENUM, VALUE) ENUM, 27 #define DEF_ATTR_IDENT(ENUM, STRING) ENUM, 28 #define DEF_ATTR_TREE_LIST(ENUM, PURPOSE, VALUE, CHAIN) ENUM, 29 #include "builtin-attrs.def" 30 #undef DEF_ATTR_NULL_TREE 31 #undef DEF_ATTR_INT 32 #undef DEF_ATTR_STRING 33 #undef DEF_ATTR_IDENT 34 #undef DEF_ATTR_TREE_LIST 35 ATTR_LAST 36 }; 37 38 /* Builtin types. */ 39 40 enum brig_builtin_type 41 { 42 #define DEF_PRIMITIVE_TYPE(NAME, VALUE) NAME, 43 #define DEF_FUNCTION_TYPE_0(NAME, RETURN) NAME, 44 #define DEF_FUNCTION_TYPE_1(NAME, RETURN, ARG1) NAME, 45 #define DEF_FUNCTION_TYPE_2(NAME, RETURN, ARG1, ARG2) NAME, 46 #define DEF_FUNCTION_TYPE_3(NAME, RETURN, ARG1, ARG2, ARG3) NAME, 47 #define DEF_FUNCTION_TYPE_4(NAME, RETURN, ARG1, ARG2, ARG3, ARG4) NAME, 48 #define DEF_FUNCTION_TYPE_5(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) NAME, 49 #define DEF_FUNCTION_TYPE_6(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 50 ARG6) NAME, 51 #define DEF_FUNCTION_TYPE_7(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 52 ARG6, ARG7) NAME, 53 #define DEF_FUNCTION_TYPE_8(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 54 ARG6, ARG7, ARG8) NAME, 55 #define DEF_FUNCTION_TYPE_9(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 56 ARG6, ARG7, ARG8, ARG9) NAME, 57 #define DEF_FUNCTION_TYPE_10(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 58 ARG6, ARG7, ARG8, ARG9, ARG10) NAME, 59 #define DEF_FUNCTION_TYPE_11(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 60 ARG6, ARG7, ARG8, ARG9, ARG10, ARG11) NAME, 61 #define DEF_FUNCTION_TYPE_VAR_0(NAME, RETURN) NAME, 62 #define DEF_FUNCTION_TYPE_VAR_1(NAME, RETURN, ARG1) NAME, 63 #define DEF_FUNCTION_TYPE_VAR_2(NAME, RETURN, ARG1, ARG2) NAME, 64 #define DEF_FUNCTION_TYPE_VAR_3(NAME, RETURN, ARG1, ARG2, ARG3) NAME, 65 #define DEF_FUNCTION_TYPE_VAR_4(NAME, RETURN, ARG1, ARG2, ARG3, ARG4) NAME, 66 #define DEF_FUNCTION_TYPE_VAR_5(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG6) \ 67 NAME, 68 #define DEF_FUNCTION_TYPE_VAR_6(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 69 ARG6) NAME, 70 #define DEF_FUNCTION_TYPE_VAR_7(NAME, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \ 71 ARG6, ARG7) NAME, 72 #define DEF_POINTER_TYPE(NAME, TYPE) NAME, 73 #include "builtin-types.def" 74 #undef DEF_PRIMITIVE_TYPE 75 #undef DEF_FUNCTION_TYPE_0 76 #undef DEF_FUNCTION_TYPE_1 77 #undef DEF_FUNCTION_TYPE_2 78 #undef DEF_FUNCTION_TYPE_3 79 #undef DEF_FUNCTION_TYPE_4 80 #undef DEF_FUNCTION_TYPE_5 81 #undef DEF_FUNCTION_TYPE_6 82 #undef DEF_FUNCTION_TYPE_7 83 #undef DEF_FUNCTION_TYPE_8 84 #undef DEF_FUNCTION_TYPE_9 85 #undef DEF_FUNCTION_TYPE_10 86 #undef DEF_FUNCTION_TYPE_11 87 #undef DEF_FUNCTION_TYPE_VAR_0 88 #undef DEF_FUNCTION_TYPE_VAR_1 89 #undef DEF_FUNCTION_TYPE_VAR_2 90 #undef DEF_FUNCTION_TYPE_VAR_3 91 #undef DEF_FUNCTION_TYPE_VAR_4 92 #undef DEF_FUNCTION_TYPE_VAR_5 93 #undef DEF_FUNCTION_TYPE_VAR_6 94 #undef DEF_FUNCTION_TYPE_VAR_7 95 #undef DEF_POINTER_TYPE 96 BT_LAST 97 }; 98 99 typedef enum brig_builtin_type builtin_type; 100