#### 6.56.17 RX Built-in Functions

GCC supports some of the RX instructions which cannot be expressed in the C programming language via the use of built-in functions. The following functions are supported:

— Built-in Function: void __builtin_rx_brk (void)

> Generates the `brk` machine instruction.

— Built-in Function: void __builtin_rx_clrpsw (int)

> Generates the `clrpsw` machine instruction to clear the specified bit in the processor status word.

— Built-in Function: void __builtin_rx_int (int)

> Generates the `int` machine instruction to generate an interrupt with the specified value.

— Built-in Function: void __builtin_rx_machi (int, int)

> Generates the `machi` machine instruction to add the result of multiplying the top 16 bits of the two arguments into the accumulator.

— Built-in Function: void __builtin_rx_maclo (int, int)

> Generates the `maclo` machine instruction to add the result of multiplying the bottom 16 bits of the two arguments into the accumulator.

— Built-in Function: void __builtin_rx_mulhi (int, int)

> Generates the `mulhi` machine instruction to place the result of multiplying the top 16 bits of the two arguments into the accumulator.

— Built-in Function: void __builtin_rx_mullo (int, int)

> Generates the `mullo` machine instruction to place the result of multiplying the bottom 16 bits of the two arguments into the accumulator.

— Built-in Function: int __builtin_rx_mvfachi (void)

> Generates the `mvfachi` machine instruction to read the top 32 bits of the accumulator.

— Built-in Function: int __builtin_rx_mvfacmi (void)

> Generates the `mvfacmi` machine instruction to read the middle 32 bits of the accumulator.

— Built-in Function: int __builtin_rx_mvfc (int)

> Generates the `mvfc` machine instruction which reads the control register specified in its argument and returns its value.

— Built-in Function: void __builtin_rx_mvtachi (int)

> Generates the `mvtachi` machine instruction to set the top 32 bits of the accumulator.

— Built-in Function: void __builtin_rx_mvtaclo (int)

> Generates the `mvtaclo` machine instruction to set the bottom 32 bits of the accumulator.

— Built-in Function: void __builtin_rx_mvtc (int reg, int val)

> Generates the `mvtc` machine instruction which sets control register number `reg` to `val`.

— Built-in Function: void __builtin_rx_mvtipl (int)

> Generates the `mvtipl` machine instruction set the interrupt priority level.

— Built-in Function: void __builtin_rx_racw (int)

> Generates the `racw` machine instruction to round the accumulator according to the specified mode.

— Built-in Function: int __builtin_rx_revw (int)

> Generates the `revw` machine instruction which swaps the bytes in the argument so that bits 0–7 now occupy bits 8–15 and vice versa, and also bits 16–23 occupy bits 24–31 and vice versa.

— Built-in Function: void __builtin_rx_rmpa (void)

> Generates the `rmpa` machine instruction which initiates a repeated multiply and accumulate sequence.

— Built-in Function: void __builtin_rx_round (float)

> Generates the `round` machine instruction which returns the floating-point argument rounded according to the current rounding mode set in the floating-point status word register.

— Built-in Function: int __builtin_rx_sat (int)

> Generates the `sat` machine instruction which returns the saturated value of the argument.

— Built-in Function: void __builtin_rx_setpsw (int)

> Generates the `setpsw` machine instruction to set the specified bit in the processor status word.

— Built-in Function: void __builtin_rx_wait (void)

> Generates the `wait` machine instruction.