]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/52496 (avr-specific built-ins missing memory barrier)
authorGeorg-Johann Lay <avr@gjlay.de>
Thu, 8 Mar 2012 11:14:05 +0000 (11:14 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Thu, 8 Mar 2012 11:14:05 +0000 (11:14 +0000)
commitd93417c86a355886015684eb5c43a45b09423d7a
tree07960c4f7d30e858b4b8ea747176e674755b2a8e
parentd8dd52a990a5aefa3a865333a077873c3e5d14be
re PR target/52496 (avr-specific built-ins missing memory barrier)

PR target/52496
* config/avr/avr.c (avr_mem_clobber): New static function.
(avr_expand_delay_cycles): Add memory clobber operand to
delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
* config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
(enable_interrupt, disable_interrupt): New expander.
(nopv, sleep, wdr): New expanders.
(delay_cycles_1): Add memory clobber.
(delay_cycles_2): Add memory clobber.
(delay_cycles_3): Add memory clobber.
(delay_cycles_4): Add memory clobber.
(cli_sei): New insn from former "enable_interrupt",
"disable_interrupt" with memory clobber.
(*wdt): New insn from former "wdt" with memory clobber.
(*nopv): Similar, but for "nopv".
(*sleep): Similar, but for "sleep".

From-SVN: r185100
gcc/ChangeLog
gcc/config/avr/avr.c
gcc/config/avr/avr.md