* config/tc-m68k.c (m68k_ip): Reject immediate operands for '|'.
authorIan Lance Taylor <ian@airs.com>
Tue, 19 Sep 1995 19:33:48 +0000 (19:33 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 19 Sep 1995 19:33:48 +0000 (19:33 +0000)
Replace 'P' with '0', '1', and '2'.

gas/ChangeLog
gas/config/tc-m68k.c

index 426e5d56da797e6fed1c4d5a5c9d25334218d6fa..d7f472ad324fc4241b3e07fa90bc564f728dfaf0 100644 (file)
@@ -1,5 +1,8 @@
 Tue Sep 19 11:31:31 1995  Ian Lance Taylor  <ian@cygnus.com>
 
+       * config/tc-m68k.c (m68k_ip): Reject immediate operands for '|'.
+       Replace 'P' with '0', '1', and '2'.
+
        * config/tc-m68k.c (parse_mri_control_operand): Change leftstop
        and rightstop to not be const.
        (parse_mri_control_expression): Likewise.
index 01200f0243c828d80643fed49d31aa5b17c7b85c..4c0fd6d690dd1e32d436bbb6911637789d7e1153 100644 (file)
@@ -1227,6 +1227,12 @@ m68k_ip (instring)
                      || opP->mode == AREG
                      || opP->mode == REGLST)
                    losing++;
+                 /* We should accept immediate operands, but they
+                     supposedly have to be quad word, and we don't
+                     handle that.  I would like to see what a Motorola
+                     assembler does before doing something here.  */
+                 if (opP->mode == IMMED)
+                   losing++;
                  break;
 
                case 'f':
@@ -1235,13 +1241,21 @@ m68k_ip (instring)
                    losing++;
                  break;
 
-               case 'P':
+               case '0':
+                 if (opP->mode != CONTROL || opP->reg != TC)
+                   losing++;
+                 break;
+
+               case '1':
+                 if (opP->mode != CONTROL || opP->reg != AC)
+                   losing++;
+                 break;
+
+               case '2':
                  if (opP->mode != CONTROL
-                     || (opP->reg != TC
-                         && opP->reg != CAL
+                     || (opP->reg != CAL
                          && opP->reg != VAL
-                         && opP->reg != SCC
-                         && opP->reg != AC))
+                         && opP->reg != SCC))
                    losing++;
                  break;
 
@@ -2258,7 +2272,9 @@ m68k_ip (instring)
          install_operand (s[1], tmpreg);
          break;
 
-       case 'P':
+       case '0':
+       case '1':
+       case '2':
          switch (opP->reg)
            {
            case TC: