2008-11-18 Kai Tietz <kai.tietz@onevision.com>
[official-gcc.git] / gcc / config / spu / spu_intrinsics.h
blobfaaf8a6801fa5ad78982f77d3e04b0e181cf32df
1 /* Definitions of Synergistic Processing Unit (SPU). */
2 /* Copyright (C) 2006 Free Software Foundation, Inc.
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.
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.
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. */
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. */
25 #ifndef _SPU_INTRINSICS_H
26 #define _SPU_INTRINSICS_H
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
39 /* SPU Channel Defines
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
56 /* MFC Channel Defines.
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
73 /* Bit flag mnemonics for test special value.
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 */
83 #include <spu_internals.h>
85 #endif /* _SPU_INTRINSICS_H */