Downgrade powerpc register error to warning
authorAlan Modra <amodra@gmail.com>
Mon, 20 Feb 2017 01:36:52 +0000 (12:06 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 20 Feb 2017 03:02:02 +0000 (13:32 +1030)
PR 21118
* NEWS: Revise powerpc register check.
* config/tc-ppc.c (ppc_optimize_expr, md_assemble): Make "invalid
register expression" a warning.

gas/ChangeLog
gas/NEWS
gas/config/tc-ppc.c

index a15f92e5e3bcc97de4ab42fd85b21246d9fa097b..9f7ce60e85f870f580ae5cbe2a4abf3424281312 100644 (file)
@@ -1,3 +1,10 @@
+2017-02-20  Alan Modra  <amodra@gmail.com>
+
+       PR 21118
+       * NEWS: Revise powerpc register check.
+       * config/tc-ppc.c (ppc_optimize_expr, md_assemble): Make "invalid
+       register expression" a warning.
+
 2017-02-17  Maciej W. Rozycki  <macro@imgtec.com>
 
        * ecoff.c (ecoff_directive_ent, add_procedure): Handle `.aent'.
index ef0780dd590e40390a4cbf0ef78d61a94aaae613..aee38525d75940696cd9694dc1fd158b92ac695c 100644 (file)
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,8 +1,8 @@
 -*- text -*-
 
 * PowerPC gas now checks that the correct register class is used in
-  instructions.  For instance, "addi %f4,%cr3,%r31" is now rejected
-  rather than silently producing "addi r4,r3,31".
+  instructions.  For instance, "addi %f4,%cr3,%r31" warns three times
+  that the registers are invalid.
 
 * Add support for the Texas Instruments PRU processor.
 
index fd5cc35cd26ec47e29b22394c7f5c3d8d996d4e1..d52850c58128333afb6da95ed75b015662f12d59 100644 (file)
@@ -974,7 +974,7 @@ ppc_optimize_expr (expressionS *left, operatorT op, expressionS *right)
   /* Accept reg +/- constant.  */
   if (left->X_op == O_register
       && !((op == O_add || op == O_subtract) && right->X_op == O_constant))
-    as_bad (_("invalid register expression"));
+    as_warn (_("invalid register expression"));
 
   /* Accept constant + reg.  */
   if (right->X_op == O_register)
@@ -982,7 +982,7 @@ ppc_optimize_expr (expressionS *left, operatorT op, expressionS *right)
       if (op == O_add && left->X_op == O_constant)
        left->X_md = right->X_md;
       else
-       as_bad (_("invalid register expression"));
+       as_warn (_("invalid register expression"));
     }
 
   return 0;
@@ -2976,7 +2976,7 @@ md_assemble (char *str)
              && !((ex.X_md & PPC_OPERAND_GPR) != 0
                   && ex.X_add_number != 0
                   && (operand->flags & PPC_OPERAND_GPR_0) != 0))
-           as_bad (_("invalid register expression"));
+           as_warn (_("invalid register expression"));
          insn = ppc_insert_operand (insn, operand, ex.X_add_number & 0xff,
                                     ppc_cpu, (char *) NULL, 0);
        }
This page took 0.03509 seconds and 4 git commands to generate.