re PR c/24414 (Old-style asms don't clobber memory)
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 6 Jun 2016 12:31:59 +0000 (12:31 +0000)
committerBernd Edlinger <edlinger@gcc.gnu.org>
Mon, 6 Jun 2016 12:31:59 +0000 (12:31 +0000)
commit93671519e202e3bc5ab592bb6318aa738e4ae58f
tree4c408260aa6953423d714fd94976bb8529014f19
parent690f24b7754826f08fc19119dd3a30a6c07e9919
re PR c/24414 (Old-style asms don't clobber memory)

gcc/
2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c/24414
        * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
        Implicitly clobber memory for basic asm with non-empty assembler
        string.  Use targetm.md_asm_adjust also here.
        * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
        * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
        * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
        non-empty assembler string.
        * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
        * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
        (decode_asm_operands): Handle basic asm in PARALLEL block.
        (extract_insn): Handle basic asm in PARALLEL block.
        * doc/extend.texi: Mention new behavior of basic asm.
        * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
        * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
        branch_needs_nop_p): Use asm_noperands.

gcc/testsuite/
2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c/24414
        * gcc.target/i386/pr24414.c: New test.

From-SVN: r237133
12 files changed:
gcc/ChangeLog
gcc/cfgexpand.c
gcc/compare-elim.c
gcc/config/ia64/ia64.c
gcc/config/pa/pa.c
gcc/doc/extend.texi
gcc/final.c
gcc/gimple.c
gcc/ira.c
gcc/recog.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr24414.c [new file with mode: 0644]