1<html lang="en"> 2<head> 3<title>picoChip 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="Other-MIPS-Built_002din-Functions.html#Other-MIPS-Built_002din-Functions" title="Other MIPS Built-in Functions"> 10<link rel="next" href="PowerPC-AltiVec_002fVSX-Built_002din-Functions.html#PowerPC-AltiVec_002fVSX-Built_002din-Functions" title="PowerPC AltiVec/VSX Built-in Functions"> 11<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> 12<!-- 13Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 141998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 152010 Free Software Foundation, Inc. 16 17Permission is granted to copy, distribute and/or modify this document 18under the terms of the GNU Free Documentation License, Version 1.3 or 19any later version published by the Free Software Foundation; with the 20Invariant Sections being ``Funding Free Software'', the Front-Cover 21Texts being (a) (see below), and with the Back-Cover Texts being (b) 22(see below). A copy of the license is included in the section entitled 23``GNU Free Documentation License''. 24 25(a) The FSF's Front-Cover Text is: 26 27 A GNU Manual 28 29(b) The FSF's Back-Cover Text is: 30 31 You have freedom to copy and modify this GNU Manual, like GNU 32 software. Copies published by the Free Software Foundation raise 33 funds for GNU development.--> 34<meta http-equiv="Content-Style-Type" content="text/css"> 35<style type="text/css"><!-- 36 pre.display { font-family:inherit } 37 pre.format { font-family:inherit } 38 pre.smalldisplay { font-family:inherit; font-size:smaller } 39 pre.smallformat { font-family:inherit; font-size:smaller } 40 pre.smallexample { font-size:smaller } 41 pre.smalllisp { font-size:smaller } 42 span.sc { font-variant:small-caps } 43 span.roman { font-family:serif; font-weight:normal; } 44 span.sansserif { font-family:sans-serif; font-weight:normal; } 45--></style> 46<link rel="stylesheet" type="text/css" href="../cs.css"> 47</head> 48<body> 49<div class="node"> 50<a name="picoChip-Built-in-Functions"></a> 51<a name="picoChip-Built_002din-Functions"></a> 52<p> 53Next: <a rel="next" accesskey="n" href="PowerPC-AltiVec_002fVSX-Built_002din-Functions.html#PowerPC-AltiVec_002fVSX-Built_002din-Functions">PowerPC AltiVec/VSX Built-in Functions</a>, 54Previous: <a rel="previous" accesskey="p" href="Other-MIPS-Built_002din-Functions.html#Other-MIPS-Built_002din-Functions">Other MIPS Built-in Functions</a>, 55Up: <a rel="up" accesskey="u" href="Target-Builtins.html#Target-Builtins">Target Builtins</a> 56<hr> 57</div> 58 59<h4 class="subsection">6.54.10 picoChip Built-in Functions</h4> 60 61<p>GCC provides an interface to selected machine instructions from the 62picoChip instruction set. 63 64 <dl> 65<dt><code>int __builtin_sbc (int </code><var>value</var><code>)</code><dd>Sign bit count. Return the number of consecutive bits in <var>value</var> 66which have the same value as the sign-bit. The result is the number of 67leading sign bits minus one, giving the number of redundant sign bits in 68<var>value</var>. 69 70 <br><dt><code>int __builtin_byteswap (int </code><var>value</var><code>)</code><dd>Byte swap. Return the result of swapping the upper and lower bytes of 71<var>value</var>. 72 73 <br><dt><code>int __builtin_brev (int </code><var>value</var><code>)</code><dd>Bit reversal. Return the result of reversing the bits in 74<var>value</var>. Bit 15 is swapped with bit 0, bit 14 is swapped with bit 1, 75and so on. 76 77 <br><dt><code>int __builtin_adds (int </code><var>x</var><code>, int </code><var>y</var><code>)</code><dd>Saturating addition. Return the result of adding <var>x</var> and <var>y</var>, 78storing the value 32767 if the result overflows. 79 80 <br><dt><code>int __builtin_subs (int </code><var>x</var><code>, int </code><var>y</var><code>)</code><dd>Saturating subtraction. Return the result of subtracting <var>y</var> from 81<var>x</var>, storing the value −32768 if the result overflows. 82 83 <br><dt><code>void __builtin_halt (void)</code><dd>Halt. The processor will stop execution. This built-in is useful for 84implementing assertions. 85 86 </dl> 87 88 </body></html> 89 90