Replace a bunch of magic constants in tc-mips.c with their proper
authorThiemo Seufer <ths@networkno.de>
Tue, 7 Aug 2001 13:22:46 +0000 (13:22 +0000)
committerThiemo Seufer <ths@networkno.de>
Tue, 7 Aug 2001 13:22:46 +0000 (13:22 +0000)
defines from mips.h.

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

index 7de201fd5d58e9be77fb73bc884364a92dcce33b..f49a539c3e166ebebd3d1669a7148e13ece163de 100644 (file)
@@ -1,3 +1,9 @@
+2001-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       /gas/ChangeLog
+       * tc-mips.c (macro_build): Replace magic constants by defines.
+       (mips_ip): Likewise. Typo.
+
 2001-08-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
 
        /gas/ChangeLog
index ecc6ce22bb876f5f6662c27b348e8293d95ce215..6fef6843981c4103a4f0efe579b48be8aa8461a1 100644 (file)
@@ -2559,62 +2559,65 @@ macro_build (place, counter, ep, name, fmt, va_alist)
        case 't':
        case 'w':
        case 'E':
-         insn.insn_opcode |= va_arg (args, int) << 16;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_RT;
          continue;
 
        case 'c':
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_CODE;
+         continue;
+
        case 'T':
        case 'W':
-         insn.insn_opcode |= va_arg (args, int) << 16;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_FT;
          continue;
 
        case 'd':
        case 'G':
-         insn.insn_opcode |= va_arg (args, int) << 11;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_RD;
          continue;
 
        case 'U':
          {
            int tmp = va_arg (args, int);
 
-           insn.insn_opcode |= tmp << 16;
-           insn.insn_opcode |= tmp << 11;
+           insn.insn_opcode |= tmp << OP_SH_RT;
+           insn.insn_opcode |= tmp << OP_SH_RD;
            continue;
          }
 
        case 'V':
        case 'S':
-         insn.insn_opcode |= va_arg (args, int) << 11;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_FS;
          continue;
 
        case 'z':
          continue;
 
        case '<':
-         insn.insn_opcode |= va_arg (args, int) << 6;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_SHAMT;
          continue;
 
        case 'D':
-         insn.insn_opcode |= va_arg (args, int) << 6;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_FD;
          continue;
 
        case 'B':
-         insn.insn_opcode |= va_arg (args, int) << 6;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_CODE20;
          continue;
 
        case 'J':
-         insn.insn_opcode |= va_arg (args, int) << 6;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_CODE19;
          continue;
 
        case 'q':
-         insn.insn_opcode |= va_arg (args, int) << 6;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_CODE2;
          continue;
 
        case 'b':
        case 's':
        case 'r':
        case 'v':
-         insn.insn_opcode |= va_arg (args, int) << 21;
+         insn.insn_opcode |= va_arg (args, int) << OP_SH_RS;
          continue;
 
        case 'i':
@@ -7004,16 +7007,19 @@ mips_ip (str, ip)
                {
                case 'r':
                case 'v':
-                 ip->insn_opcode |= lastregno << 21;
+                 ip->insn_opcode |= lastregno << OP_SH_RS;
                  continue;
 
                case 'w':
+                 ip->insn_opcode |= lastregno << OP_SH_RT;
+                 continue;
+
                case 'W':
-                 ip->insn_opcode |= lastregno << 16;
+                 ip->insn_opcode |= lastregno << OP_SH_FT;
                  continue;
 
                case 'V':
-                 ip->insn_opcode |= lastregno << 11;
+                 ip->insn_opcode |= lastregno << OP_SH_FS;
                  continue;
                }
              break;
@@ -7047,9 +7053,9 @@ mips_ip (str, ip)
                {
                  as_warn (_("Improper shift amount (%ld)"),
                           (long) imm_expr.X_add_number);
-                 imm_expr.X_add_number = imm_expr.X_add_number & 0x1f;
+                 imm_expr.X_add_number &= OP_MASK_SHAMT;
                }
-             ip->insn_opcode |= imm_expr.X_add_number << 6;
+             ip->insn_opcode |= imm_expr.X_add_number << OP_SH_SHAMT;
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7060,7 +7066,7 @@ mips_ip (str, ip)
              if ((unsigned long) imm_expr.X_add_number < 32
                  || (unsigned long) imm_expr.X_add_number > 63)
                break;
-             ip->insn_opcode |= (imm_expr.X_add_number - 32) << 6;
+             ip->insn_opcode |= (imm_expr.X_add_number - 32) << OP_SH_SHAMT;
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7091,9 +7097,9 @@ mips_ip (str, ip)
                {
                  as_warn (_("Illegal break code (%ld)"),
                           (long) imm_expr.X_add_number);
-                 imm_expr.X_add_number &= 0x3ff;
+                 imm_expr.X_add_number &= OP_MASK_CODE;
                }
-             ip->insn_opcode |= imm_expr.X_add_number << 16;
+             ip->insn_opcode |= imm_expr.X_add_number << OP_SH_CODE;
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7105,9 +7111,9 @@ mips_ip (str, ip)
                {
                  as_warn (_("Illegal lower break code (%ld)"),
                           (long) imm_expr.X_add_number);
-                 imm_expr.X_add_number &= 0x3ff;
+                 imm_expr.X_add_number &= OP_MASK_CODE2;
                }
-             ip->insn_opcode |= imm_expr.X_add_number << 6;
+             ip->insn_opcode |= imm_expr.X_add_number << OP_SH_CODE2;
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7115,10 +7121,10 @@ mips_ip (str, ip)
            case 'B':           /* 20-bit syscall/break code.  */
              my_getExpression (&imm_expr, s);
              check_absolute_expr (ip, &imm_expr);
-             if ((unsigned) imm_expr.X_add_number > 0xfffff)
+             if ((unsigned) imm_expr.X_add_number > OP_MASK_CODE20)
                as_warn (_("Illegal 20-bit code (%ld)"),
                         (long) imm_expr.X_add_number);
-             ip->insn_opcode |= imm_expr.X_add_number << 6;
+             ip->insn_opcode |= imm_expr.X_add_number << OP_SH_CODE20;
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7140,10 +7146,10 @@ mips_ip (str, ip)
            case 'J':           /* 19-bit wait code.  */
              my_getExpression (&imm_expr, s);
              check_absolute_expr (ip, &imm_expr);
-             if ((unsigned) imm_expr.X_add_number > 0x7ffff)
+             if ((unsigned) imm_expr.X_add_number > OP_MASK_CODE19)
                as_warn (_("Illegal 19-bit code (%ld)"),
                         (long) imm_expr.X_add_number);
-             ip->insn_opcode |= imm_expr.X_add_number << 6;
+             ip->insn_opcode |= imm_expr.X_add_number << OP_SH_CODE19;
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7153,11 +7159,11 @@ mips_ip (str, ip)
              check_absolute_expr (ip, &imm_expr);
              if (imm_expr.X_add_number != 0 && imm_expr.X_add_number != 1)
                {
-                 as_warn (_("Invalidate performance regster (%ld)"),
+                 as_warn (_("Invalid performance register (%ld)"),
                           (long) imm_expr.X_add_number);
-                 imm_expr.X_add_number &= 1;
+                 imm_expr.X_add_number &= OP_MASK_PERFREG;
                }
-             ip->insn_opcode |= (imm_expr.X_add_number << 1);
+             ip->insn_opcode |= (imm_expr.X_add_number << OP_SH_PERFREG);
              imm_expr.X_op = O_absent;
              s = expr_end;
              continue;
@@ -7282,20 +7288,20 @@ mips_ip (str, ip)
                    case 's':
                    case 'v':
                    case 'b':
-                     ip->insn_opcode |= regno << 21;
+                     ip->insn_opcode |= regno << OP_SH_RS;
                      break;
                    case 'd':
                    case 'G':
-                     ip->insn_opcode |= regno << 11;
+                     ip->insn_opcode |= regno << OP_SH_RD;
                      break;
                    case 'U':
-                     ip->insn_opcode |= regno << 11;
-                     ip->insn_opcode |= regno << 16;
+                     ip->insn_opcode |= regno << OP_SH_RD;
+                     ip->insn_opcode |= regno << OP_SH_RT;
                      break;
                    case 'w':
                    case 't':
                    case 'E':
-                     ip->insn_opcode |= regno << 16;
+                     ip->insn_opcode |= regno << OP_SH_RT;
                      break;
                    case 'x':
                      /* This case exists because on the r3000 trunc
@@ -7326,10 +7332,10 @@ mips_ip (str, ip)
                {
                case 'r':
                case 'v':
-                 ip->insn_opcode |= lastregno << 21;
+                 ip->insn_opcode |= lastregno << OP_SH_RS;
                  continue;
                case 'w':
-                 ip->insn_opcode |= lastregno << 16;
+                 ip->insn_opcode |= lastregno << OP_SH_RT;
                  continue;
                }
              break;
@@ -7382,18 +7388,18 @@ mips_ip (str, ip)
                  switch (c)
                    {
                    case 'D':
-                     ip->insn_opcode |= regno << 6;
+                     ip->insn_opcode |= regno << OP_SH_FD;
                      break;
                    case 'V':
                    case 'S':
-                     ip->insn_opcode |= regno << 11;
+                     ip->insn_opcode |= regno << OP_SH_FS;
                      break;
                    case 'W':
                    case 'T':
-                     ip->insn_opcode |= regno << 16;
+                     ip->insn_opcode |= regno << OP_SH_FT;
                      break;
                    case 'R':
-                     ip->insn_opcode |= regno << 21;
+                     ip->insn_opcode |= regno << OP_SH_FR;
                      break;
                    }
                  lastregno = regno;
@@ -7403,10 +7409,10 @@ mips_ip (str, ip)
              switch (*args++)
                {
                case 'V':
-                 ip->insn_opcode |= lastregno << 11;
+                 ip->insn_opcode |= lastregno << OP_SH_FS;
                  continue;
                case 'W':
-                 ip->insn_opcode |= lastregno << 16;
+                 ip->insn_opcode |= lastregno << OP_SH_FT;
                  continue;
                }
              break;