Re: [wwwdocs] mention AVR additions
On 14.12.2017 21:44, Gerald Pfeifer wrote: Hi Johann, On Wed, 13 Dec 2017, Georg-Johann Lay wrote: This adds AVR improvements to v8 Release Notes. that's quite impressive a set of improvements! Index: changes.html === The new devices are filed under href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3. I'm not sure whether "filed under" is the best choice of wording (and when I say that, I really am not). So perhaps use "listed" under or similar? Ok. features like PROGMEM and __flash are no more needed (as opposed to other AVR families for which "are not needed any more" Ok. that the compiler is used with Binutils2.29 or newer so that read-only data will be located in flash memory, see feature https://sourceware.org/PR21472;>PR21472. How about using "read-only data will be located in flash memory" the text for that link, and omit the "see feature PR..." part? That'll make it easier to read. Ok. A new command line option -mshort-calls is supported. "command-line" Fixed. This option is used internally for multilib selection of the avrxmega3 variants. It is not an optimization option, and you don't need to set it by hand. "do not" to emphasize this more strongly. Ok. The compiler now implements feature href="http://gcc.gnu.org/PR20296;>PR20296 and will generate more efficient interrupt service routine (ISR) prologues and epilogues. Here I suggest "The compiler now generates..." (and perhaps make this a link to the PR, but use https here). Ok. A new command line option -mno-gas-isr-prologues "command-line" Fixed. has been added. It disables the generation of the How about "A new command line option -mno-gas-isr-prologues disable the generation..."? Shorter and easier to read. Ok. Any non-naked ISR will save and restore SREG, tmp_reg and zero_reg, ... around SREG, tmp_reg and zero_reg. Fixed. The feature is turned on per default for all optimization levels except for -O0 and -Og. It can still be enabled by means of option -mgas-isr-prologues. "It is explicitly enabled by..." Ok. Support has been added for a new href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html;>AVR function attribute no_gccisr. Is there something missing after "a new"? "A new" what? ...a new "AVR function attribute" ... where the quoted text is hyper-linked to the documentation of AVR function attributes. Please go ahead and commit (taking the above into account) and just share the final patch here in response. Thank you for taking the time to document all this! Gerald Thank you for the friendly review. Applied as attached. Johann Index: changes.html === RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v retrieving revision 1.22 diff -r1.22 changes.html 179c179,238 < --- > AVR > > > The AVR port now supports the following XMEGA-like devices: > > ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417, > ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617, > ATtiny3214, ATtiny3216, ATtiny3217 > > The new devices are listed under > https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3. > > These devices see flash memory in the RAM address space, so that > features like PROGMEM and __flash > are not needed any more (as opposed to other AVR families for which > read-only data will be located in RAM except special, non-standard > features are used to locate and access such data). This requires > that the compiler is used with Binutils2.29 or newer so that > https://sourceware.org/PR21472;>read-only data will be > located in flash memory. > A new command-line option -mshort-calls is supported. > This option is used internally for multilib selection of the > avrxmega3 variants. It is > not an optimization option. Do not set it by hand. > > > > The compiler now generates > https://gcc.gnu.org/PR20296;> efficient interrupt service routine > (ISR) prologues and epilogues. This is achieved by using the new > https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html;> > AVR pseudo instruction __gcc_isr which is supported > and resolved by the GNU assembler. > > As the __gcc_isr pseudo-instruction will be resolved by > the assembler, inline assembly is transparent to the process. > This means that when inline assembly uses an instruction like > INC that clobbers the condition code, > then the assembler will detect this and generate an appropriate > ISR prologue / epilogue chunk to save / restore SREG as needed. > A new command-line option -mno-gas-isr-prologues > disables the generation of the __gcc_isr
Re: [wwwdocs] mention AVR additions
Hi Johann, On Wed, 13 Dec 2017, Georg-Johann Lay wrote: This adds AVR improvements to v8 Release Notes. that's quite impressive a set of improvements! Index: changes.html === The new devices are filed under https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3. I'm not sure whether "filed under" is the best choice of wording (and when I say that, I really am not). So perhaps use "listed" under or similar? features like PROGMEM and __flash are no more needed (as opposed to other AVR families for which "are not needed any more" that the compiler is used with Binutils2.29 or newer so that read-only data will be located in flash memory, see feature https://sourceware.org/PR21472;>PR21472. How about using "read-only data will be located in flash memory" the text for that link, and omit the "see feature PR..." part? That'll make it easier to read. A new command line option -mshort-calls is supported. "command-line" This option is used internally for multilib selection of the avrxmega3 variants. It is not an optimization option, and you don't need to set it by hand. "do not" to emphasize this more strongly. The compiler now implements feature http://gcc.gnu.org/PR20296;>PR20296 and will generate more efficient interrupt service routine (ISR) prologues and epilogues. Here I suggest "The compiler now generates..." (and perhaps make this a link to the PR, but use https here). A new command line option -mno-gas-isr-prologues "command-line" has been added. It disables the generation of the How about "A new command line option -mno-gas-isr-prologues disable the generation..."? Shorter and easier to read. Any non-naked ISR will save and restore SREG, tmp_reg and zero_reg, ... around SREG, tmp_reg and zero_reg. The feature is turned on per default for all optimization levels except for -O0 and -Og. It can still be enabled by means of option -mgas-isr-prologues. "It is explicitly enabled by..." Support has been added for a new https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html;>AVR function attribute no_gccisr. Is there something missing after "a new"? "A new" what? Please go ahead and commit (taking the above into account) and just share the final patch here in response. Thank you for taking the time to document all this! Gerald
[wwwdocs] mention AVR additions
This adds AVR improvements to v8 Release Notes. Ok? Johann Index: changes.html === RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v retrieving revision 1.22 diff -r1.22 changes.html 179c179,240 < --- > AVR > > > The avr port now supports the following XMEGA-like devices: > > ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417, > ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617, > ATtiny3214, ATtiny3216, ATtiny3217 > > The new devices are filed under > https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html;>-mmcu=avrxmega3. > > These devices see flash memory in the RAM address space, so that > features like PROGMEM and __flash > are no more needed (as opposed to other AVR families for which > read-only data will be located in RAM except special, non-standard > features are used to locate and access such data). This requires > that the compiler is used with Binutils2.29 or newer so that > read-only data will be located in flash memory, see feature > https://sourceware.org/PR21472;>PR21472. > A new command line option -mshort-calls is supported. > This option is used internally for multilib selection of the > avrxmega3 variants. > It is not an optimization option, and you don't need to set > it by hand. > > > > The compiler now implements feature http://gcc.gnu.org/PR20296;>PR20296 > and will generate more efficient interrupt service routine (ISR) > prologues and epilogues. This is achieved by using the new pseudo > instruction __gcc_isr which is supported and resolved by > the GNU assembler. > > As the __gcc_isr pseudo-instruction will be resolved by > the assembler, inline assembly is transparent to the process. > This means that when inline assembly uses an instruction like > INC that clobbers the condition code, > then the assembler will detect this and generate an appropriate > ISR prologue / epilogue chunk to save / restore SREG as needed. > A new command line option -mno-gas-isr-prologues > has been added. It disables the generation of the > __gcc_isr pseudo instruction. > Any non-naked ISR will save and restore SREG, tmp_reg and zero_reg, > no matter whether the respective register is clobbered or used. > The feature is turned on per default for all optimization levels > except for -O0 and -Og. It can still be > enabled by means of option -mgas-isr-prologues. > Support has been added for a new > https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html;>AVR function attribute > no_gccisr. It can be used to disable > __gcc_isr pseudo instruction generation for > individual ISRs. > This optimization is only available if GCC is configured with > GNU Binutils2.29; or at least with a version of Binutils that > implements feature > https://sourceware.org/PR21683;>PR21683. > For technical details and an example, see the > https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html;>GNU AVR assembler manual. > > >