diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-04-20 10:06:03 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2001-04-20 10:06:03 +0200 |
commit | d40cd80a97bc42595464cce6b13835a7451c1129 (patch) | |
tree | 9b49007667dfc5c56e9b32efbd8e34309b1823d3 /gcc/reg-stack.c | |
parent | c0230f37445c0e90dc5569c1bec23184c9b9cbed (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r-- | gcc/reg-stack.c | 15 |
1 files changed, 14 insertions, 1 deletions
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; + } } |