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

Reply via email to