On Thu, May 12, 2016 at 8:46 AM, Sandra Loosemore <san...@codesourcery.com> wrote: > On 05/11/2016 11:02 AM, H.J. Lu wrote: >> >> On Tue, May 10, 2016 at 1:02 PM, Sandra Loosemore >> <san...@codesourcery.com> wrote: >>> >>> >>> Again, this sounds like implementor-speak, and there are grammatical >>> errors >>> (noun/verb disagreement, missing articles). Do users of this attribute >>> need >>> to know what instructions the compiler is emitting? We already say above >>> that it causes GCC to generate suitable entry and exit sequences. >>> >> >> It was done on purpose since this document is also served as >> the spec for compiler implementers. > > > But readers of the user documentation are users, not compiler implementors, > so the patch for the manual needs to have a different focus.
That is why I suggested to add a note for compiler implementers instead. >> 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. --- Thanks. -- H.J.