]> git.ipfire.org Git - thirdparty/gcc.git/blob
dad2caefe8d5bc973cd07aeedcde8d201bd2a9cf
[thirdparty/gcc.git] /
1 ..
2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
5
6 .. _s-390-function-attributes:
7
8 S/390 Function Attributes
9 ^^^^^^^^^^^^^^^^^^^^^^^^^
10
11 These function attributes are supported on the S/390:
12
13 .. index:: hotpatch function attribute, S/390
14
15 .. s-390-fn-attr:: hotpatch (halfwords-before-function-label,halfwords-after-function-label)
16
17 On S/390 System z targets, you can use this function attribute to
18 make GCC generate a 'hot-patching' function prologue. If the
19 :option:`-mhotpatch=` command-line option is used at the same time,
20 the ``hotpatch`` attribute takes precedence. The first of the
21 two arguments specifies the number of halfwords to be added before
22 the function label. A second argument can be used to specify the
23 number of halfwords to be added after the function label. For
24 both arguments the maximum allowed value is 1000000.
25
26 If both arguments are zero, hotpatching is disabled.
27
28 .. index:: target function attribute
29
30 .. s-390-fn-attr:: target (options)
31
32 As discussed in :ref:`common-function-attributes`, this attribute
33 allows specification of target-specific compilation options.
34
35 On S/390, the following options are supported:
36
37 :samp:`arch=` :samp:`tune=` :samp:`stack-guard=` :samp:`stack-size=` :samp:`branch-cost=`
38 :samp:`warn-framesize=` :samp:`backchain` :samp:`no-backchain` :samp:`hard-dfp`
39 :samp:`no-hard-dfp` :samp:`hard-float` :samp:`soft-float` :samp:`htm` :samp:`no-htm`
40 :samp:`vx` :samp:`no-vx` :samp:`packed-stack` :samp:`no-packed-stack` :samp:`small-exec`
41 :samp:`no-small-exec` :samp:`mvcle` :samp:`no-mvcle` :samp:`warn-dynamicstack`
42 :samp:`no-warn-dynamicstack`
43
44 The options work exactly like the S/390 specific command line
45 options (without the prefix :samp:`-m`) except that they do not
46 change any feature macros. For example,
47
48 .. code-block:: c++
49
50 target("no-vx")
51
52 does not undefine the ``__VEC__`` macro.