On Fri, May 20, 2016 at 7:49 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Fri, May 20, 2016 at 10:15 AM, Rainer Orth > <r...@cebitec.uni-bielefeld.de> wrote: >> "H.J. Lu" <hjl.to...@gmail.com> writes: >> >>> On Thu, May 12, 2016 at 10:54 AM, H.J. Lu <hjl.to...@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. >> > > Tested on x86-64. OK for trunk?
No, this is a flag, not a variable. Let's figure out how to extend target flags to more than 63 flags first. Please revert the original patch in the mean time. Thanks, Uros.