opcodes/
authorAlan Modra <amodra@gmail.com>
Mon, 30 Apr 2007 00:27:57 +0000 (00:27 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 30 Apr 2007 00:27:57 +0000 (00:27 +0000)
PR 4436
* ppc-opc.c (powerpc_operands): Correct bitm for second entry of MBE.
gas/
PR 4436
* config/tc-ppc.c (ppc_insert_operand): Disable range check if
min > max.

gas/ChangeLog
gas/config/tc-ppc.c
opcodes/ChangeLog
opcodes/ppc-opc.c

index 6a7deecc5047927fa0e54ceb7013a670adeb1a90..4d5bf6ae1bcf2bd1b93b7af14a5439443748dec1 100644 (file)
@@ -1,3 +1,9 @@
+2007-04-30  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 4436
+       * config/tc-ppc.c (ppc_insert_operand): Disable range check if
+       min > max.
+
 2007-04-28  Thiemo Seufer  <ths@networkno.de>
 
        * config/tc-mips.c: Fix comment.
index 978f0f3dd8b3ef2d10684c06d4d28dc30c3d8b43..4fe9f5aec80a17136f4777dff0aa7024ecd3bae6 100644 (file)
@@ -1516,7 +1516,7 @@ ppc_insert_operand (insn, operand, val, file, line)
 {
   long min, max, right;
   offsetT test;
-  
+
   max = operand->bitm;
   right = max & -max;
   min = 0;
@@ -1554,8 +1554,7 @@ ppc_insert_operand (insn, operand, val, file, line)
   else
     test = val;
 
-  if (test < (offsetT) min
-      || test > (offsetT) max
+  if ((min <= max && (test < (offsetT) min || test > (offsetT) max))
       || (test & (right - 1)) != 0)
     as_bad_value_out_of_range (_("operand"),
                               test, (offsetT) min, (offsetT) max, file, line);
index a3849e538fe0dab1c5854179c4c2a6e16609740c..0fa39c13a0116d586f300326401ccf652c0be787 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-30  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 4436
+       * ppc-opc.c (powerpc_operands): Correct bitm for second entry of MBE.
+
 2007-04-27  H.J. Lu  <hongjiu.lu@intel.com>
 
        * i386-dis.c (modrm): Put reg before rm.
index 50a33f3ce98c392885dece5ad09ff1ede80b0313..5e2fb281ad4b05b44dec1f31cd4e25be3cf747b4 100644 (file)
@@ -317,7 +317,7 @@ const struct powerpc_operand powerpc_operands[] =
      description in opcode/ppc.h for what this means.  */
 #define MBE ME + 1
   { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
-  { 0xff, 0, insert_mbe, extract_mbe, 0 },
+  { -1, 0, insert_mbe, extract_mbe, 0 },
 
   /* The MB or ME field in an MD or MDS form instruction.  The high
      bit is wrapped to the low end.  */