summaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-19 23:24:43 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-19 23:24:43 +0000
commit3d8785bcc7373fb8f4c3bfd46a96ded7aa2c2818 (patch)
tree06566dbc082fed23428c52e95c555fa28d3ed791 /gcc/reload1.c
parentbf407987e98b89c9ca10bb23128fec627bfca434 (diff)
downloadgcc-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.c30
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