aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2001-04-20 10:06:03 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2001-04-20 10:06:03 +0200
commitd40cd80a97bc42595464cce6b13835a7451c1129 (patch)
tree9b49007667dfc5c56e9b32efbd8e34309b1823d3
parentc0230f37445c0e90dc5569c1bec23184c9b9cbed (diff)
downloadgcc-d40cd80a97bc42595464cce6b13835a7451c1129.zip
gcc-d40cd80a97bc42595464cce6b13835a7451c1129.tar.gz
gcc-d40cd80a97bc42595464cce6b13835a7451c1129.tar.bz2
reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
* reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp. "=u" is used together with "st" resp. "st(1)" clobber. From-SVN: r41446
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reg-stack.c15
2 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6de127a..002d844 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2001-04-20 Jakub Jelinek <jakub@redhat.com>
+ * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
+ "=u" is used together with "st" resp. "st(1)" clobber.
+
+2001-04-20 Jakub Jelinek <jakub@redhat.com>
+
* gcse.c (gcse_main): Fix comment typo.
(delete_null_pointer_check): Likewise.
(hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 43bedeb..6327b24 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -662,7 +662,20 @@ check_asm_stack_operands (insn)
malformed_asm = 1;
}
else
- reg_used_as_output[REGNO (recog_data.operand[i])] = 1;
+ {
+ int j;
+
+ for (j = 0; j < n_clobbers; j++)
+ if (REGNO (recog_data.operand[i]) == REGNO (clobber_reg[j]))
+ {
+ error_for_asm (insn, "Output constraint %d cannot be specified together with \"%s\" clobber",
+ i, reg_names [REGNO (clobber_reg[j])]);
+ malformed_asm = 1;
+ break;
+ }
+ if (j == n_clobbers)
+ reg_used_as_output[REGNO (recog_data.operand[i])] = 1;
+ }
}