diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2004-02-12 18:25:09 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2004-02-12 13:25:09 -0500 |
commit | a5e9c8103348cb036a6f29773fd9e08ec925ffcb (patch) | |
tree | 7b4a430fb294344fe468f64ca7e6d902b0ac2a90 /gcc/expr.c | |
parent | 2e9a1f6b05e79f1b7de15d5ae64f3222d989e7e5 (diff) | |
download | gcc-a5e9c8103348cb036a6f29773fd9e08ec925ffcb.zip gcc-a5e9c8103348cb036a6f29773fd9e08ec925ffcb.tar.gz gcc-a5e9c8103348cb036a6f29773fd9e08ec925ffcb.tar.bz2 |
emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous MEM_VOLATILE in REF.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
previous MEM_VOLATILE in REF.
* function.c (fixup_var_refs): Save volatile_ok and set to 1.
* expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
From-SVN: r77718
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -1417,6 +1417,7 @@ static bool emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) { rtx opalign = GEN_INT (align / BITS_PER_UNIT); + int save_volatile_ok = volatile_ok; enum machine_mode mode; /* Since this is a move insn, we don't care about volatility. */ @@ -1466,7 +1467,7 @@ emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) if (pat) { emit_insn (pat); - volatile_ok = 0; + volatile_ok = save_volatile_ok; return true; } else @@ -1474,7 +1475,7 @@ emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) } } - volatile_ok = 0; + volatile_ok = save_volatile_ok; return false; } |