blob: 16a0c611e194db825861fcc1bcbde2e009fc436d [file] [log] [blame]
<html lang="en">
<head>
<title>picoChip Built-in Functions - Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Target-Builtins.html#Target-Builtins" title="Target Builtins">
<link rel="prev" href="Other-MIPS-Built_002din-Functions.html#Other-MIPS-Built_002din-Functions" title="Other MIPS Built-in Functions">
<link rel="next" href="PowerPC-AltiVec_002fVSX-Built_002din-Functions.html#PowerPC-AltiVec_002fVSX-Built_002din-Functions" title="PowerPC AltiVec/VSX Built-in Functions">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
``GNU Free Documentation License''.
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="picoChip-Built-in-Functions"></a>
<a name="picoChip-Built_002din-Functions"></a>
<p>
Next:&nbsp;<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>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Other-MIPS-Built_002din-Functions.html#Other-MIPS-Built_002din-Functions">Other MIPS Built-in Functions</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Target-Builtins.html#Target-Builtins">Target Builtins</a>
<hr>
</div>
<h4 class="subsection">6.52.10 picoChip Built-in Functions</h4>
<p>GCC provides an interface to selected machine instructions from the
picoChip instruction set.
<dl>
<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>
which have the same value as the sign-bit. The result is the number of
leading sign bits minus one, giving the number of redundant sign bits in
<var>value</var>.
<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
<var>value</var>.
<br><dt><code>int __builtin_brev (int </code><var>value</var><code>)</code><dd>Bit reversal. Return the result of reversing the bits in
<var>value</var>. Bit 15 is swapped with bit 0, bit 14 is swapped with bit 1,
and so on.
<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>,
storing the value 32767 if the result overflows.
<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
<var>x</var>, storing the value &minus;32768 if the result overflows.
<br><dt><code>void __builtin_halt (void)</code><dd>Halt. The processor will stop execution. This built-in is useful for
implementing assertions.
</dl>
</body></html>