• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>SPU Built-in Functions - Using the GNU Compiler Collection (GCC)</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Using the GNU Compiler Collection (GCC)">
6<meta name="generator" content="makeinfo 4.13">
7<link title="Top" rel="start" href="index.html#Top">
8<link rel="up" href="Target-Builtins.html#Target-Builtins" title="Target Builtins">
9<link rel="prev" href="SPARC-VIS-Built_002din-Functions.html#SPARC-VIS-Built_002din-Functions" title="SPARC VIS Built-in Functions">
10<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
11<!--
12Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
131998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
142010 Free Software Foundation, Inc.
15
16Permission is granted to copy, distribute and/or modify this document
17under the terms of the GNU Free Documentation License, Version 1.3 or
18any later version published by the Free Software Foundation; with the
19Invariant Sections being ``Funding Free Software'', the Front-Cover
20Texts being (a) (see below), and with the Back-Cover Texts being (b)
21(see below).  A copy of the license is included in the section entitled
22``GNU Free Documentation License''.
23
24(a) The FSF's Front-Cover Text is:
25
26     A GNU Manual
27
28(b) The FSF's Back-Cover Text is:
29
30     You have freedom to copy and modify this GNU Manual, like GNU
31     software.  Copies published by the Free Software Foundation raise
32     funds for GNU development.-->
33<meta http-equiv="Content-Style-Type" content="text/css">
34<style type="text/css"><!--
35  pre.display { font-family:inherit }
36  pre.format  { font-family:inherit }
37  pre.smalldisplay { font-family:inherit; font-size:smaller }
38  pre.smallformat  { font-family:inherit; font-size:smaller }
39  pre.smallexample { font-size:smaller }
40  pre.smalllisp    { font-size:smaller }
41  span.sc    { font-variant:small-caps }
42  span.roman { font-family:serif; font-weight:normal; } 
43  span.sansserif { font-family:sans-serif; font-weight:normal; } 
44--></style>
45<link rel="stylesheet" type="text/css" href="../cs.css">
46</head>
47<body>
48<div class="node">
49<a name="SPU-Built-in-Functions"></a>
50<a name="SPU-Built_002din-Functions"></a>
51<p>
52Previous:&nbsp;<a rel="previous" accesskey="p" href="SPARC-VIS-Built_002din-Functions.html#SPARC-VIS-Built_002din-Functions">SPARC VIS Built-in Functions</a>,
53Up:&nbsp;<a rel="up" accesskey="u" href="Target-Builtins.html#Target-Builtins">Target Builtins</a>
54<hr>
55</div>
56
57<h4 class="subsection">6.54.15 SPU Built-in Functions</h4>
58
59<p>GCC provides extensions for the SPU processor as described in the
60Sony/Toshiba/IBM SPU Language Extensions Specification, which can be
61found at <a href="http://cell.scei.co.jp/">http://cell.scei.co.jp/</a> or
62<a href="http://www.ibm.com/developerworks/power/cell/">http://www.ibm.com/developerworks/power/cell/</a>.  GCC's
63implementation differs in several ways.
64
65     <ul>
66<li>The optional extension of specifying vector constants in parentheses is
67not supported.
68
69     <li>A vector initializer requires no cast if the vector constant is of the
70same type as the variable it is initializing.
71
72     <li>If <code>signed</code> or <code>unsigned</code> is omitted, the signedness of the
73vector type is the default signedness of the base type.  The default
74varies depending on the operating system, so a portable program should
75always specify the signedness.
76
77     <li>By default, the keyword <code>__vector</code> is added. The macro
78<code>vector</code> is defined in <code>&lt;spu_intrinsics.h&gt;</code> and can be
79undefined.
80
81     <li>GCC allows using a <code>typedef</code> name as the type specifier for a
82vector type.
83
84     <li>For C, overloaded functions are implemented with macros so the following
85does not work:
86
87     <pre class="smallexample">            spu_add ((vector signed int){1, 2, 3, 4}, foo);
88</pre>
89     <p>Since <code>spu_add</code> is a macro, the vector constant in the example
90is treated as four separate arguments.  Wrap the entire argument in
91parentheses for this to work.
92
93     <li>The extended version of <code>__builtin_expect</code> is not supported.
94
95 </ul>
96
97 <p><em>Note:</em> Only the interface described in the aforementioned
98specification is supported. Internally, GCC uses built-in functions to
99implement the required functionality, but these are not supported and
100are subject to change without notice.
101
102 </body></html>
103
104