This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: PR target/70738: Add -mgeneral-regs-only option
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Sandra Loosemore <sandra at codesourcery dot com>, "Koval\, Julia" <julia dot koval at intel dot com>, "gcc-patches\ at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, "Lu\, Hongjiu" <hongjiu dot lu at intel dot com>, "vaalfreja\ at gmail dot com" <vaalfreja at gmail dot com>, "ubizjak\ at gmail dot com" <ubizjak at gmail dot com>, "law\ at redhat dot com" <law at redhat dot com>, "Zamyatin\, Igor" <igor dot zamyatin at intel dot com>
- Date: Fri, 20 May 2016 19:15:28 +0200
- Subject: Re: PATCH: PR target/70738: Add -mgeneral-regs-only option
- Authentication-results: sourceware.org; auth=none
- References: <CAMe9rOpaY608q+VZqakMdXnE5dHtgj9dueUigkWNuBKp=CsOsw at mail dot gmail dot com> <5734A53F dot 5030405 at codesourcery dot com> <CAMe9rOrQ0DY+z9aFosFB3mvk5_iixwgqA60AAo0dXkW8vMwH=w at mail dot gmail dot com> <CAMe9rOpeTqvuA-cL8aJi9RBBxtNV-tqS7crskpy3GesuHSHxWA at mail dot gmail dot com>
"H.J. Lu" <hjl.tools@gmail.com> writes:
> On Thu, May 12, 2016 at 10:54 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> Here is a patch to add
>>>> -mgeneral-regs-only option to x86 backend. We can update
>>>> spec for interrupt handle to recommend compiling interrupt handler
>>>> with -mgeneral-regs-only option and add a note for compiler
>>>> implementers.
>>>>
>>>> OK for trunk if there is no regression?
>>>
>>>
>>> I can't comment on the code patch, but for the documentation part:
>>>
>>>> @@ -24242,6 +24242,12 @@ opcodes, to mitigate against certain forms of
>>>> attack. At the moment,
>>>> this option is limited in what it can do and should not be relied
>>>> on to provide serious protection.
>>>>
>>>> +@item -mgeneral-regs-only
>>>> +@opindex mgeneral-regs-only
>>>> +Generate code which uses only the general-purpose registers. This will
>>>
>>>
>>> s/which/that/
>>>
>>>> +prevent the compiler from using floating-point, vector, mask and bound
>>>
>>>
>>> s/will prevent/prevents/
>>>
>>>> +registers, but will not impose any restrictions on the assembler.
>>>
>>>
>>> Maybe you mean to say "does not restrict use of those registers in inline
>>> assembly code"? In any case, please get rid of the future tense here, too.
>>
>> I changed it to
>>
>> ---
>> @item -mgeneral-regs-only
>> @opindex mgeneral-regs-only
>> Generate code that uses only the general-purpose registers. This
>> prevents the compiler from using floating-point, vector, mask and bound
>> registers.
>> ---
>>
>
> Here is the updated patch. Tested on x86-64. OK for trunk?
This patch broke {i386,x86_64}-apple-darwin15.5.0 bootstrap:
In file included from ./tm.h:16:0,
from /vol/gcc/src/hg/trunk/local/gcc/genattrtab.c:108:
./options.h:5443:2: error: #error too many target masks
#error too many target masks
^
Makefile:2497: recipe for target 'build/genattrtab.o' failed
make[3]: *** [build/genattrtab.o] Error 1
options.h has
#define OPTION_MASK_ISA_XSAVES (HOST_WIDE_INT_1 << 62)
#error too many target masks
The tree bootstraps just fine at the previous revision.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University