summaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-20 08:06:03 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-20 08:06:03 +0000
commit8be6418a183e7dfd7ef630cd7bca01b6cd1ba4dc (patch)
tree9b49007667dfc5c56e9b32efbd8e34309b1823d3 /gcc/reg-stack.c
parentd8a228c351372347dc2dfc9c131243ae6be6b78a (diff)
downloadgcc-8be6418a183e7dfd7ef630cd7bca01b6cd1ba4dc.tar.gz
* reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
"=u" is used together with "st" resp. "st(1)" clobber. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41446 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 43bedebd90a..6327b24e96e 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;
+ }
}