From 4349a1fa86c2680eb1bb8fbf21b4caa440a3413d Mon Sep 17 00:00:00 2001 From: gjl Date: Thu, 22 Mar 2012 13:17:16 +0000 Subject: [PATCH] PR target/52496 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER. (unspecv): Add UNSPECV_MEMORY_BARRIER. (cli_sei): Use unspec_volatile instead of unspec for memory barrier. (delay_cycles_1, delay_cycles_2): Ditto. (delay_cycles_3, delay_cycles_4): Ditto. (nopv, *nopv): Ditto. (sleep, *sleep): Ditto. (wdr, *wdr): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185692 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 12 ++++++++++++ gcc/config/avr/avr.md | 27 +++++++++++++++------------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ec46e4..f2da615 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2012-03-22 Georg-Johann Lay + + PR target/52496 + * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER. + (unspecv): Add UNSPECV_MEMORY_BARRIER. + (cli_sei): Use unspec_volatile instead of unspec for memory barrier. + (delay_cycles_1, delay_cycles_2): Ditto. + (delay_cycles_3, delay_cycles_4): Ditto. + (nopv, *nopv): Ditto. + (sleep, *sleep): Ditto. + (wdr, *wdr): Ditto. + 2012-03-22 Richard Guenther PR tree-optimization/52548 diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index 85a0f28..3fe06da 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -70,7 +70,6 @@ UNSPEC_COPYSIGN UNSPEC_IDENTITY UNSPEC_INSERT_BITS - UNSPEC_MEMORY_BARRIER ]) (define_c_enum "unspecv" @@ -79,6 +78,7 @@ UNSPECV_WRITE_SP UNSPECV_GOTO_RECEIVER UNSPECV_ENABLE_IRQS + UNSPECV_MEMORY_BARRIER UNSPECV_NOP UNSPECV_SLEEP UNSPECV_WDR @@ -5291,7 +5291,7 @@ [(unspec_volatile [(match_operand:QI 0 "const_int_operand" "L,P")] UNSPECV_ENABLE_IRQS) (set (match_operand:BLK 1 "" "") - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER))] + (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))] "" "@ cli @@ -5403,7 +5403,7 @@ (const_int 1)] UNSPECV_DELAY_CYCLES) (set (match_operand:BLK 1 "" "") - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER)) + (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER)) (clobber (match_scratch:QI 2 "=&d"))] "" "ldi %2,lo8(%0) @@ -5417,7 +5417,7 @@ (const_int 2)] UNSPECV_DELAY_CYCLES) (set (match_operand:BLK 1 "" "") - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER)) + (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER)) (clobber (match_scratch:HI 2 "=&w"))] "" "ldi %A2,lo8(%0) @@ -5432,7 +5432,7 @@ (const_int 3)] UNSPECV_DELAY_CYCLES) (set (match_operand:BLK 1 "" "") - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER)) + (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER)) (clobber (match_scratch:QI 2 "=&d")) (clobber (match_scratch:QI 3 "=&d")) (clobber (match_scratch:QI 4 "=&d"))] @@ -5452,7 +5452,7 @@ (const_int 4)] UNSPECV_DELAY_CYCLES) (set (match_operand:BLK 1 "" "") - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER)) + (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER)) (clobber (match_scratch:QI 2 "=&d")) (clobber (match_scratch:QI 3 "=&d")) (clobber (match_scratch:QI 4 "=&d")) @@ -5855,7 +5855,8 @@ [(parallel [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "")] UNSPECV_NOP) (set (match_dup 1) - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER))])] + (unspec_volatile:BLK [(match_dup 1)] + UNSPECV_MEMORY_BARRIER))])] "" { operands[1] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)); @@ -5866,7 +5867,7 @@ [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "P,K")] UNSPECV_NOP) (set (match_operand:BLK 1 "" "") - (unspec:BLK [(match_dup 1)] UNSPEC_MEMORY_BARRIER))] + (unspec_volatile:BLK [(match_dup 1)] UNSPECV_MEMORY_BARRIER))] "" "@ nop @@ -5878,7 +5879,8 @@ (define_expand "sleep" [(parallel [(unspec_volatile [(const_int 0)] UNSPECV_SLEEP) (set (match_dup 0) - (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))])] + (unspec_volatile:BLK [(match_dup 0)] + UNSPECV_MEMORY_BARRIER))])] "" { operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)); @@ -5888,7 +5890,7 @@ (define_insn "*sleep" [(unspec_volatile [(const_int 0)] UNSPECV_SLEEP) (set (match_operand:BLK 0 "" "") - (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))] + (unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMORY_BARRIER))] "" "sleep" [(set_attr "length" "1") @@ -5898,7 +5900,8 @@ (define_expand "wdr" [(parallel [(unspec_volatile [(const_int 0)] UNSPECV_WDR) (set (match_dup 0) - (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))])] + (unspec_volatile:BLK [(match_dup 0)] + UNSPECV_MEMORY_BARRIER))])] "" { operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)); @@ -5908,7 +5911,7 @@ (define_insn "*wdr" [(unspec_volatile [(const_int 0)] UNSPECV_WDR) (set (match_operand:BLK 0 "" "") - (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))] + (unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMORY_BARRIER))] "" "wdr" [(set_attr "length" "1") -- 2.7.4