]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
authorJakub Jelinek <jakub@redhat.com>
Fri, 20 Apr 2001 08:06:03 +0000 (10:06 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 20 Apr 2001 08:06:03 +0000 (10:06 +0200)
* 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

gcc/ChangeLog
gcc/reg-stack.c

index 6de127a3dccd996a5191e1f9adebd0743fb07380..002d84494d47e8739a18c6f880b6d4c55d3520e8 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 43bedebd90a6b70ee89691d0aad2891f9ecb87ab..6327b24e96e6759facb032357ef0013b3e3564e6 100644 (file)
@@ -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;
+         }
       }