Next: RISC-V Built-in Functions, Previous: PowerPC Matrix-Multiply Assist Built-in Functions, Up: Target Builtins [Contents][Index]

GCC provides a couple of special builtin functions to aid in utilizing special PRU instructions.

The built-in functions supported are:

- Built-in Function:
*void***__delay_cycles***(constant long long*`cycles`) This inserts an instruction sequence that takes exactly

`cycles`cycles (between 0 and 0xffffffff) to complete. The inserted sequence may use jumps, loops, or no-ops, and does not interfere with any other instructions. Note that`cycles`must be a compile-time constant integer - that is, you must pass a number, not a variable that may be optimized to a constant later. The number of cycles delayed by this builtin is exact.

- Built-in Function:
*void***__halt***(void)* This inserts a HALT instruction to stop processor execution.

- Built-in Function:
*unsigned int***__lmbd***(unsigned int*`wordval`, unsigned int`bitval`) This inserts LMBD instruction to calculate the left-most bit with value

`bitval`in value`wordval`. Only the least significant bit of`bitval`is taken into account.