1 /* Copyright (C) 2006 Free Software Foundation, Inc.
3 This file is free software; you can redistribute it and/or modify it under
4 the terms of the GNU General Public License as published by the Free
5 Software Foundation; either version 2 of the License, or (at your option)
8 This file is distributed in the hope that it will be useful, but WITHOUT
9 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 You should have received a copy of the GNU General Public License
14 along with this file; see the file COPYING. If not, write to the Free
15 Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20 enum spu_builtin_type_index
22 SPU_BTI_END_OF_PARAMS,
24 /* We create new type nodes for these. */
36 /* A 16-byte type. (Implemented with V16QI_type_node) */
39 /* These all correspond to intSI_type_node */
53 /* These correspond to the standard types */
73 #define V16QI_type_node (spu_builtin_types[SPU_BTI_V16QI])
74 #define V8HI_type_node (spu_builtin_types[SPU_BTI_V8HI])
75 #define V4SI_type_node (spu_builtin_types[SPU_BTI_V4SI])
76 #define V2DI_type_node (spu_builtin_types[SPU_BTI_V2DI])
77 #define V4SF_type_node (spu_builtin_types[SPU_BTI_V4SF])
78 #define V2DF_type_node (spu_builtin_types[SPU_BTI_V2DF])
79 #define unsigned_V16QI_type_node (spu_builtin_types[SPU_BTI_UV16QI])
80 #define unsigned_V8HI_type_node (spu_builtin_types[SPU_BTI_UV8HI])
81 #define unsigned_V4SI_type_node (spu_builtin_types[SPU_BTI_UV4SI])
82 #define unsigned_V2DI_type_node (spu_builtin_types[SPU_BTI_UV2DI])
84 extern GTY(()) tree spu_builtin_types[SPU_BTI_MAX];
86 /* Some builtins require special handling. This enum differentiates. */
87 enum spu_builtin_type {
98 #define DEF_BUILTIN(fcode, icode, name, type, params) fcode,
99 #include "spu-builtins.def"
104 struct spu_builtin_description {
105 spu_function_code fcode;
106 enum insn_code icode;
108 enum spu_builtin_type type;
110 /* The first element of parm is always the return type. The rest
111 * are a zero terminated list of parameters. */
117 extern GTY(()) struct spu_builtin_description spu_builtins[];