S/390 Attributes (Using the GNU Compiler Collection (GCC))

#### 6.4.2.25 S/390 Attributes ¶

These attributes are supported on the S/390:

`hotpatch (halfwords-before-function-label,halfwords-after-function-label)` ¶

  This attribute applies to functions.

  On S/390 System z targets, you can use this attribute to make GCC generate a “hot-patching” function prologue. If the `-mhotpatch=` command-line option is used at the same time, the `hotpatch` attribute takes precedence. The first of the two arguments specifies the number of halfwords to be added before the function label. A second argument can be used to specify the number of halfwords to be added after the function label. For both arguments the maximum allowed value is 1000000.

  If both arguments are zero, hotpatching is disabled.

`target (options)` ¶

  This attribute applies to functions.

  As discussed in Common Attributes, this attribute allows specification of target-specific compilation options.

  On S/390, the following options are supported:

  ‘`arch=`’
  ‘`tune=`’
  ‘`stack-guard=`’
  ‘`stack-size=`’
  ‘`branch-cost=`’
  ‘`warn-framesize=`’
  ‘`backchain`’
  ‘`no-backchain`’
  ‘`hard-dfp`’
  ‘`no-hard-dfp`’
  ‘`hard-float`’
  ‘`soft-float`’
  ‘`htm`’
  ‘`no-htm`’
  ‘`vx`’
  ‘`no-vx`’
  ‘`packed-stack`’
  ‘`no-packed-stack`’
  ‘`small-exec`’
  ‘`no-small-exec`’
  ‘`mvcle`’
  ‘`no-mvcle`’
  ‘`warn-dynamicstack`’
  ‘`no-warn-dynamicstack`’

  The options work exactly like the S/390 specific command line options (without the prefix `-m`) except that they do not change any feature macros. For example,

      target("no-vx")

  does not undefine the `__VEC__` macro.