diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-19 23:24:43 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-19 23:24:43 +0000 |
commit | 3d8785bcc7373fb8f4c3bfd46a96ded7aa2c2818 (patch) | |
tree | 06566dbc082fed23428c52e95c555fa28d3ed791 /gcc/reload1.c | |
parent | bf407987e98b89c9ca10bb23128fec627bfca434 (diff) | |
download | gcc-3d8785bcc7373fb8f4c3bfd46a96ded7aa2c2818.tar.gz |
PR inline-asm/30505
* reload1.c (reload): Do invalid ASM checking after
cleanup_subreg_operands.
* gcc.target/i386/pr30505.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123072 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 2aad6b0c15a..9a56fc40bd0 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1173,20 +1173,6 @@ reload (rtx first, int global) { rtx *pnote; - /* Clean up invalid ASMs so that they don't confuse later passes. - See PR 21299. */ - if (asm_noperands (PATTERN (insn)) >= 0) - { - extract_insn (insn); - if (!constrain_operands (1)) - { - error_for_asm (insn, - "%<asm%> operand has impossible constraints"); - delete_insn (insn); - continue; - } - } - if (CALL_P (insn)) replace_pseudos_in (& CALL_INSN_FUNCTION_USAGE (insn), VOIDmode, CALL_INSN_FUNCTION_USAGE (insn)); @@ -1245,8 +1231,22 @@ reload (rtx first, int global) add_auto_inc_notes (insn, PATTERN (insn)); #endif - /* And simplify (subreg (reg)) if it appears as an operand. */ + /* Simplify (subreg (reg)) if it appears as an operand. */ cleanup_subreg_operands (insn); + + /* Clean up invalid ASMs so that they don't confuse later passes. + See PR 21299. */ + if (asm_noperands (PATTERN (insn)) >= 0) + { + extract_insn (insn); + if (!constrain_operands (1)) + { + error_for_asm (insn, + "%<asm%> operand has impossible constraints"); + delete_insn (insn); + continue; + } + } } /* If we are doing stack checking, give a warning if this function's |