Argument Types - Using the GNU Compiler Collection (GCC)
Description: Using the GNU Compiler Collection (GCC)

Next: Directly-mapped Integer Functions, Up: FR-V Built-in Functions

##### 6.54.5.1 Argument Types

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:

Pseudo type | Real C type | Constant? | Description
`uh` | `unsigned short` | No | an unsigned halfword
`uw1` | `unsigned int` | No | an unsigned word
`sw1` | `int` | No | a signed word
`uw2` | `unsigned long long` | No | an unsigned doubleword
`sw2` | `long long` | No | a signed doubleword
`const` | `int` | Yes | an integer constant
`acc` | `int` | Yes | an ACC register number
`iacc` | `int` | Yes | an IACC register number

These pseudo types are not defined by GCC, they are simply a notational convenience used in this manual.

Arguments of type `uh`, `uw1`, `sw1`, `uw2` and `sw2` are evaluated at run time. They correspond to register operands in the underlying FR-V instructions.

`const` arguments represent immediate operands in the underlying FR-V instructions. They must be compile-time constants.

`acc` arguments are evaluated at compile time and specify the number of an accumulator register. For example, an `acc` argument of 2 will select the ACC2 register.

`iacc` arguments are similar to `acc` arguments but specify the number of an IACC register. See see Other Built-in Functions for more details.