OSDN Git Service

* config/spu/spu-protos.h (legitimate_const): Remove prototype.
[pf3gnuchains/gcc-fork.git] / gcc / config / spu / spu_intrinsics.h
1 /* Definitions of Synergistic Processing Unit (SPU). */
2 /* Copyright (C) 2006 Free Software Foundation, Inc.
3
4    This file is free software; you can redistribute it and/or modify it under
5    the terms of the GNU General Public License as published by the Free
6    Software Foundation; either version 2 of the License, or (at your option) 
7    any later version.
8
9    This file is distributed in the hope that it will be useful, but WITHOUT
10    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12    for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this file; see the file COPYING.  If not, write to the Free
16    Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
17    02110-1301, USA.  */
18
19 /* As a special exception, if you include this header file into source files 
20    compiled by GCC, this header file does not by itself cause  the resulting 
21    executable to be covered by the GNU General Public License.  This exception 
22    does not however invalidate any other reasons why the executable file might be 
23    covered by the GNU General Public License.  */ 
24
25 #ifndef  _SPU_INTRINSICS_H
26 #define _SPU_INTRINSICS_H 
27  
28 #define vec_uchar16             __vector unsigned char
29 #define vec_char16              __vector   signed char
30 #define vec_ushort8             __vector unsigned short
31 #define vec_short8              __vector   signed short
32 #define vec_uint4               __vector unsigned int
33 #define vec_int4                __vector   signed int
34 #define vec_ullong2             __vector unsigned long long
35 #define vec_llong2              __vector   signed long long
36 #define vec_float4              __vector          float
37 #define vec_double2             __vector          double
38
39 /* SPU Channel Defines 
40  */
41 #define SPU_RdEventStat          0
42 #define SPU_WrEventMask          1
43 #define SPU_WrEventAck           2
44 #define SPU_RdSigNotify1         3
45 #define SPU_RdSigNotify2         4
46 #define SPU_WrDec                7
47 #define SPU_RdDec                8
48 #define SPU_RdEventMask         11
49 #define SPU_RdMachStat          13
50 #define SPU_WrSRR0              14
51 #define SPU_RdSRR0              15
52 #define SPU_WrOutMbox           28 
53 #define SPU_RdInMbox            29 
54 #define SPU_WrOutIntrMbox       30 
55
56 /* MFC Channel Defines. 
57  */
58 #define MFC_WrMSSyncReq          9
59 #define MFC_RdTagMask           12
60 #define MFC_LSA                 16 
61 #define MFC_EAH                 17 
62 #define MFC_EAL                 18 
63 #define MFC_Size                19 
64 #define MFC_TagID               20 
65 #define MFC_Cmd                 21 
66 #define MFC_WrTagMask           22 
67 #define MFC_WrTagUpdate         23 
68 #define MFC_RdTagStat           24 
69 #define MFC_RdListStallStat     25 
70 #define MFC_WrListStallAck      26 
71 #define MFC_RdAtomicStat        27 
72
73 /* Bit flag mnemonics for test special value.
74  */
75 #define SPU_SV_NEG_DENORM       0x01    /* negative denormalized number  */
76 #define SPU_SV_POS_DENORM       0x02    /* positive denormalized number  */
77 #define SPU_SV_NEG_ZERO         0x04    /* negative zero                 */
78 #define SPU_SV_POS_ZERO         0x08    /* positive zero                 */
79 #define SPU_SV_NEG_INFINITY     0x10    /* negative infinity             */
80 #define SPU_SV_POS_INFINITY     0x20    /* positive infinity             */
81 #define SPU_SV_NAN              0x40    /* not a number                  */
82
83 #include <spu_internals.h>
84
85 #endif /* _SPU_INTRINSICS_H */