This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 2/2] s/390: Implement "target" attribute.
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org, vogt at linux dot vnet dot ibm dot com
- Date: Fri, 4 Dec 2015 15:36:51 +0100
- Subject: Re: [PATCH 2/2] s/390: Implement "target" attribute.
- Authentication-results: sourceware.org; auth=none
- References: <20150925135941 dot GA14892 at linux dot vnet dot ibm dot com> <20150925140229 dot GC14892 at linux dot vnet dot ibm dot com>
On 09/25/2015 04:02 PM, Dominik Vogt wrote:
> On Fri, Sep 25, 2015 at 02:59:41PM +0100, Dominik Vogt wrote:
>> 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
Applied. Thanks!
-Andreas-