The following set of two patches implements the function __attribute__ ((target("..."))) and the corresponding #pragma GCC target("...") on S/390. It comes with certain limitations:
* It is not possible to change any options that affect the ABI or the definition of target macros by using the attribute (vx, htm, zarch and others). Some of them are still supported but unable to change the definition of the corresponding target macros. In these cases, the pragma has to be used. One reason for this is that it is not possible to change the definition of the target macros with the attribute, but the implementation of some features relies on them. * Even with the pragma it is not possible to switch between zarch and esa architecture because internal data typed would have to be changed at Gcc run time. The second patch contains a long term change in the interface with the assembler. Currently, the compiler wrapper passes the same -march= and -mtune= options to the compiler and the assembler. The patch makes this obsolete by emitting ".machine" and ".machinemode" dirctives to the top of the assembly language file. The old way ist still supported but may be removed once the ".machine" feature is supported by all as versions in the field. The second patch depends on the first one, and both require the (latest) change proposed in this thread: https://gcc.gnu.org/ml/gcc-patches/2015-09/msg01546.html Ciao Dominik ^_^ ^_^ -- Dominik Vogt IBM Germany