blob: 563e70e30a4b1c71b5c84a7b1ba5b235c48ab533 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<div class="subsubsection-level-extent" id="Argument-Types"> <div class="nav-panel"> <p> Next: <a href="directly-mapped-integer-functions" accesskey="n" rel="next">Directly-Mapped Integer Functions</a>, Up: <a href="fr-v-built-in-functions" accesskey="u" rel="up">FR-V Built-in Functions</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="subsubsection" id="Argument-Types-1"><span>6.60.13.1 Argument Types<a class="copiable-link" href="#Argument-Types-1"> ¶</a></span></h1> <p>The arguments to the built-in functions can be divided into three groups: register numbers, compile-time constants and run-time values. In order to make this classification clear at a glance, the arguments and return values are given the following pseudo types: </p> <table class="multitable"> <thead><tr>
<th width="20%">Pseudo type</th>
<th width="30%">Real C type</th>
<th width="15%">Constant?</th>
<th width="35%">Description</th>
</tr></thead> <tbody>
<tr>
<td width="20%"><code class="code">uh</code></td>
<td width="30%"><code class="code">unsigned short</code></td>
<td width="15%">No</td>
<td width="35%">an unsigned halfword</td>
</tr> <tr>
<td width="20%"><code class="code">uw1</code></td>
<td width="30%"><code class="code">unsigned int</code></td>
<td width="15%">No</td>
<td width="35%">an unsigned word</td>
</tr> <tr>
<td width="20%"><code class="code">sw1</code></td>
<td width="30%"><code class="code">int</code></td>
<td width="15%">No</td>
<td width="35%">a signed word</td>
</tr> <tr>
<td width="20%"><code class="code">uw2</code></td>
<td width="30%"><code class="code">unsigned long long</code></td>
<td width="15%">No</td>
<td width="35%">an unsigned doubleword</td>
</tr> <tr>
<td width="20%"><code class="code">sw2</code></td>
<td width="30%"><code class="code">long long</code></td>
<td width="15%">No</td>
<td width="35%">a signed doubleword</td>
</tr> <tr>
<td width="20%"><code class="code">const</code></td>
<td width="30%"><code class="code">int</code></td>
<td width="15%">Yes</td>
<td width="35%">an integer constant</td>
</tr> <tr>
<td width="20%"><code class="code">acc</code></td>
<td width="30%"><code class="code">int</code></td>
<td width="15%">Yes</td>
<td width="35%">an ACC register number</td>
</tr> <tr>
<td width="20%"><code class="code">iacc</code></td>
<td width="30%"><code class="code">int</code></td>
<td width="15%">Yes</td>
<td width="35%">an IACC register number</td>
</tr> </tbody> </table> <p>These pseudo types are not defined by GCC, they are simply a notational convenience used in this manual. </p> <p>Arguments of type <code class="code">uh</code>, <code class="code">uw1</code>, <code class="code">sw1</code>, <code class="code">uw2</code> and <code class="code">sw2</code> are evaluated at run time. They correspond to register operands in the underlying FR-V instructions. </p> <p><code class="code">const</code> arguments represent immediate operands in the underlying FR-V instructions. They must be compile-time constants. </p> <p><code class="code">acc</code> arguments are evaluated at compile time and specify the number of an accumulator register. For example, an <code class="code">acc</code> argument of 2 selects the ACC2 register. </p> <p><code class="code">iacc</code> arguments are similar to <code class="code">acc</code> arguments but specify the number of an IACC register. See see <a class="pxref" href="other-built-in-functions">Other Built-in Functions</a> for more details. </p> </div><div class="_attribution">
<p class="_attribution-p">
© Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br>
<a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Argument-Types.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Argument-Types.html</a>
</p>
</div>
|