Using hardware built-in functions

This section assumes the user has knowledge of assembler opcodes and assembler programming.

A built-in function is inline code that is generated in place of an actual function call. The hardware built-in functions send requests to the compiler to use instructions that are not typically generated by the compiler. Extra instructions are generated to load the parameters for the operation and to store the result. These functions require that the LANGLVL not be set to ANSI. For more information about a given instruction, refer to the z/Architecture® Principles of Operation.

Notes:
  1. Using a built-in hardware instruction does not guarantee that a hardware instruction will be generated. The compiler can decide that it is not necessary to generate the code.
  2. In some cases, the instruction will be generated as data before it is executed via an EX instruction. This occurs whenever a parameter:
    • Must be put in a mask or displacement field.
    • Is specified as a non-literal instead of a literal.
    It is more efficient to execute the target instruction for a hardware built-in function without generating an EX instruction. If possible, some parameters of the built-in functions should be specified as literal for better performance. For examples, see Table 1.