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
< <!-- <h3 id="avr">AVR</h3> -->
---
> <h3 id="avr">AVR</h3>
> <ul>
>   <li>
>     The avr port now supports the following XMEGA-like devices:
>     <blockquote>
>       ATtiny212, ATtiny214, ATtiny412, ATtiny414, ATtiny416, ATtiny417,
>       ATtiny814, ATtiny816, ATtiny817, ATtiny1614, ATtiny1616, ATtiny1617,
>       ATtiny3214, ATtiny3216, ATtiny3217
>     </blockquote>
>     The new devices are filed under 
>     <a href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html";><code>-mmcu=avrxmega3</code></a>.
>     <ul>
>       <li>These devices see flash memory in the RAM address space, so that
> 	features like <code>PROGMEM</code> and <code>__flash</code>
> 	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 Binutils&nbsp;2.29 or newer so that
> 	read-only data will be located in flash memory, see feature
> 	<a href="https://sourceware.org/PR21472";>PR21472</a>.</li>
>       <li>A new command line option <code>-mshort-calls</code> is supported.
> 	This option is used internally for multilib selection of the
> 	<code>avrxmega3</code> variants.
> 	It is <em>not an optimization option</em>, and you don't need to set
> 	it by hand.</li>
>     </ul>
>   </li>
>   <li>
>     The compiler now implements feature <a href="http://gcc.gnu.org/PR20296";>PR20296</a>
>     and will generate more efficient interrupt service routine (ISR)
>     prologues and epilogues.  This is achieved by using the new pseudo
>     instruction <code>__gcc_isr</code> which is supported and resolved by
>     the GNU assembler.
>     <ul>
>       <li>As the <code>__gcc_isr</code> 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
> 	<code>INC</code> 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.</li>
>       <li>A new command line option <code>-mno-gas-isr-prologues</code>
> 	has been added.  It disables the generation of the
> 	<code>__gcc_isr</code> 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.</li>
>       <li>The feature is turned on per default for all optimization levels
> 	except for <code>-O0</code> and <code>-Og</code>. It can still be
>       enabled by means of option <code>-mgas-isr-prologues</code>.</li>
>       <li>Support has been added for a new
> 	<a href="https://gcc.gnu.org/onlinedocs/gcc/AVR-Function-Attributes.html";>AVR function attribute</a>
> 	<code>no_gccisr</code>. It can be used to disable
> 	<code>__gcc_isr</code> pseudo instruction generation for
> 	individual ISRs.</li>
>       <li>This optimization is only available if GCC is configured with
> 	GNU Binutils&nbsp;2.29; or at least with a version of Binutils that
> 	implements feature
> 	<a href="https://sourceware.org/PR21683";>PR21683</a>.
> 	For technical details and an example, see the
> 	<a href="https://sourceware.org/binutils/docs-2.29/as/AVR-Pseudo-Instructions.html";>GNU AVR assembler manual</a>.</li>
>     </ul>
>   </li>
> </ul>

Reply via email to