This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

tidy ppc-opc.c


These are all overkill, since the insert/extract functions are just used
by the assembler/disassembler rather than user code.  We can always pass
a non-NULL address.

	* ppc-opc.c: Remove NULL pointer checks.  Formatting.  Remove
	extraneous ATTRIBUTE_UNUSED.
	* ppc-dis.c (print_insn_powerpc): Always pass a valid address to
	operand->extract.

Index: opcodes/ppc-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/ppc-dis.c,v
retrieving revision 1.12
diff -u -p -r1.12 ppc-dis.c
--- opcodes/ppc-dis.c	12 Nov 2002 04:03:31 -0000	1.12
+++ opcodes/ppc-dis.c	7 Jul 2003 01:26:28 -0000
@@ -214,7 +214,7 @@ print_insn_powerpc (memaddr, info, bigen
 
 	  /* Extract the value from the instruction.  */
 	  if (operand->extract)
-	    value = (*operand->extract) (insn, dialect, (int *) NULL);
+	    value = (*operand->extract) (insn, dialect, &invalid);
 	  else
 	    {
 	      value = (insn >> operand->shift) & ((1 << operand->bits) - 1);
Index: opcodes/ppc-opc.c
===================================================================
RCS file: /cvs/src/src/opcodes/ppc-opc.c,v
retrieving revision 1.52
diff -u -p -r1.52 ppc-opc.c
--- opcodes/ppc-opc.c	4 Jul 2003 15:27:25 -0000	1.52
+++ opcodes/ppc-opc.c	5 Jul 2003 02:01:05 -0000
@@ -563,8 +563,7 @@ extract_bat (unsigned long insn,
 	     int dialect ATTRIBUTE_UNUSED,
 	     int *invalid)
 {
-  if (invalid != NULL
-      && ((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f))
+  if (((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f))
     *invalid = 1;
   return 0;
 }
@@ -590,8 +589,7 @@ extract_bba (unsigned long insn,
 	     int dialect ATTRIBUTE_UNUSED,
 	     int *invalid)
 {
-  if (invalid != NULL
-      && ((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
+  if (((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
     *invalid = 1;
   return 0;
 }
@@ -658,20 +656,18 @@ extract_bdm (unsigned long insn,
 	     int dialect,
 	     int *invalid)
 {
-  if (invalid != NULL)
+  if ((dialect & PPC_OPCODE_POWER4) == 0)
     {
-      if ((dialect & PPC_OPCODE_POWER4) == 0)
-	{
-	  if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
-	    *invalid = 1;
-	}
-      else
-	{
-	  if ((insn & (0x17 << 21)) != (0x06 << 21)
-	      && (insn & (0x1d << 21)) != (0x18 << 21))
-	    *invalid = 1;
-	}
+      if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
+	*invalid = 1;
     }
+  else
+    {
+      if ((insn & (0x17 << 21)) != (0x06 << 21)
+	  && (insn & (0x1d << 21)) != (0x18 << 21))
+	*invalid = 1;
+    }
+
   return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
 }
 
@@ -706,20 +702,18 @@ extract_bdp (unsigned long insn,
 	     int dialect,
 	     int *invalid)
 {
-  if (invalid != NULL)
+  if ((dialect & PPC_OPCODE_POWER4) == 0)
     {
-      if ((dialect & PPC_OPCODE_POWER4) == 0)
-	{
-	  if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
-	    *invalid = 1;
-	}
-      else
-	{
-	  if ((insn & (0x17 << 21)) != (0x07 << 21)
-	      && (insn & (0x1d << 21)) != (0x19 << 21))
-	    *invalid = 1;
-	}
+      if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
+	*invalid = 1;
     }
+  else
+    {
+      if ((insn & (0x17 << 21)) != (0x07 << 21)
+	  && (insn & (0x1d << 21)) != (0x19 << 21))
+	*invalid = 1;
+    }
+
   return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
 }
 
@@ -783,8 +777,7 @@ insert_bo (unsigned long insn,
 	   int dialect,
 	   const char **errmsg)
 {
-  if (errmsg != NULL
-      && ! valid_bo (value, dialect))
+  if (!valid_bo (value, dialect))
     *errmsg = _("invalid conditional option");
   return insn | ((value & 0x1f) << 21);
 }
@@ -797,8 +790,7 @@ extract_bo (unsigned long insn,
   long value;
 
   value = (insn >> 21) & 0x1f;
-  if (invalid != NULL
-      && ! valid_bo (value, dialect))
+  if (!valid_bo (value, dialect))
     *invalid = 1;
   return value;
 }
@@ -813,13 +805,11 @@ insert_boe (unsigned long insn,
 	    int dialect,
 	    const char **errmsg)
 {
-  if (errmsg != NULL)
-    {
-      if (! valid_bo (value, dialect))
-	*errmsg = _("invalid conditional option");
-      else if ((value & 1) != 0)
-	*errmsg = _("attempt to set y bit when using + or - modifier");
-    }
+  if (!valid_bo (value, dialect))
+    *errmsg = _("invalid conditional option");
+  else if ((value & 1) != 0)
+    *errmsg = _("attempt to set y bit when using + or - modifier");
+
   return insn | ((value & 0x1f) << 21);
 }
 
@@ -831,23 +821,22 @@ extract_boe (unsigned long insn,
   long value;
 
   value = (insn >> 21) & 0x1f;
-  if (invalid != NULL
-      && ! valid_bo (value, dialect))
+  if (!valid_bo (value, dialect))
     *invalid = 1;
   return value & 0x1e;
 }
 
-  /* The DQ field in a DQ form instruction.  This is like D, but the
-     lower four bits are forced to zero. */
+/* The DQ field in a DQ form instruction.  This is like D, but the
+   lower four bits are forced to zero. */
 
 /*ARGSUSED*/
 static unsigned long
 insert_dq (unsigned long insn,
 	   long value,
 	   int dialect ATTRIBUTE_UNUSED,
-	   const char ** errmsg ATTRIBUTE_UNUSED)
+	   const char **errmsg)
 {
-  if ((value & 0xf) != 0 && errmsg != NULL)
+  if ((value & 0xf) != 0)
     *errmsg = _("offset not a multiple of 16");
   return insn | (value & 0xfff0);
 }
@@ -865,11 +854,11 @@ static unsigned long
 insert_ev2 (unsigned long insn,
 	    long value,
 	    int dialect ATTRIBUTE_UNUSED,
-	    const char ** errmsg ATTRIBUTE_UNUSED)
+	    const char **errmsg)
 {
-  if ((value & 1) != 0 && errmsg != NULL)
+  if ((value & 1) != 0)
     *errmsg = _("offset not a multiple of 2");
-  if ((value > 62) != 0 && errmsg != NULL)
+  if ((value > 62) != 0)
     *errmsg = _("offset greater than 62");
   return insn | ((value & 0x3e) << 10);
 }
@@ -886,11 +875,11 @@ static unsigned long
 insert_ev4 (unsigned long insn,
 	    long value,
 	    int dialect ATTRIBUTE_UNUSED,
-	    const char **errmsg ATTRIBUTE_UNUSED)
+	    const char **errmsg)
 {
-  if ((value & 3) != 0 && errmsg != NULL)
+  if ((value & 3) != 0)
     *errmsg = _("offset not a multiple of 4");
-  if ((value > 124) != 0 && errmsg != NULL)
+  if ((value > 124) != 0)
     *errmsg = _("offset greater than 124");
   return insn | ((value & 0x7c) << 9);
 }
@@ -907,11 +896,11 @@ static unsigned long
 insert_ev8 (unsigned long insn,
 	    long value,
 	    int dialect ATTRIBUTE_UNUSED,
-	    const char **errmsg ATTRIBUTE_UNUSED)
+	    const char **errmsg)
 {
-  if ((value & 7) != 0 && errmsg != NULL)
+  if ((value & 7) != 0)
     *errmsg = _("offset not a multiple of 8");
-  if ((value > 248) != 0 && errmsg != NULL)
+  if ((value > 248) != 0)
     *errmsg = _("offset greater than 248");
   return insn | ((value & 0xf8) << 8);
 }
@@ -919,7 +908,7 @@ insert_ev8 (unsigned long insn,
 static long
 extract_ev8 (unsigned long insn,
 	     int dialect ATTRIBUTE_UNUSED,
-	     int * invalid ATTRIBUTE_UNUSED)
+	     int *invalid ATTRIBUTE_UNUSED)
 {
   return (insn >> 8) & 0xf8;
 }
@@ -934,7 +923,7 @@ insert_ds (unsigned long insn,
 	   int dialect ATTRIBUTE_UNUSED,
 	   const char **errmsg)
 {
-  if ((value & 3) != 0 && errmsg != NULL)
+  if ((value & 3) != 0)
     *errmsg = _("offset not a multiple of 4");
   return insn | (value & 0xfffc);
 }
@@ -957,7 +946,7 @@ insert_de (unsigned long insn,
 	   int dialect ATTRIBUTE_UNUSED,
 	   const char **errmsg)
 {
-  if ((value > 2047 || value < -2048) && errmsg != NULL)
+  if (value > 2047 || value < -2048)
     *errmsg = _("offset not between -2048 and 2047");
   return insn | ((value << 4) & 0xfff0);
 }
@@ -980,9 +969,9 @@ insert_des (unsigned long insn,
 	    int dialect ATTRIBUTE_UNUSED,
 	    const char **errmsg)
 {
-  if ((value > 8191 || value < -8192) && errmsg != NULL)
+  if (value > 8191 || value < -8192)
     *errmsg = _("offset not between -8192 and 8191");
-  else if ((value & 3) != 0 && errmsg != NULL)
+  else if ((value & 3) != 0)
     *errmsg = _("offset not a multiple of 4");
   return insn | ((value << 2) & 0xfff0);
 }
@@ -1019,8 +1008,7 @@ insert_fxm (unsigned long insn,
   /* Any other value on mfcr is an error.  */
   else if ((insn & (0x3ff << 1)) == 19 << 1)
     {
-      if (errmsg != NULL)
-	*errmsg = _("ignoring invalid mfcr mask");
+      *errmsg = _("ignoring invalid mfcr mask");
       value = 0;
     }
 
@@ -1038,14 +1026,11 @@ extract_fxm (unsigned long insn,
   if ((insn & (1 << 20)) != 0)
     {
       if ((dialect & PPC_OPCODE_POWER4) == 0)
-	{
-	  if (invalid != NULL)
-	    *invalid = 1;
-	}
+	*invalid = 1;
       else
 	{
 	  /* Exactly one bit of MASK should be set.  */
-	  if ((mask == 0 || (mask & -mask) != mask) && invalid != NULL)
+	  if (mask == 0 || (mask & -mask) != mask)
 	    *invalid = 1;
 	}
     }
@@ -1053,7 +1038,7 @@ extract_fxm (unsigned long insn,
   /* Check that non-power4 form of mfcr has a zero MASK.  */
   else if ((insn & (0x3ff << 1)) == 19 << 1)
     {
-      if (mask != 0 && invalid != NULL)
+      if (mask != 0)
 	*invalid = 1;
     }
 
@@ -1070,7 +1055,7 @@ insert_li (unsigned long insn,
 	   int dialect ATTRIBUTE_UNUSED,
 	   const char **errmsg)
 {
-  if ((value & 3) != 0 && errmsg != NULL)
+  if ((value & 3) != 0)
     *errmsg = _("ignoring least significant bits in branch offset");
   return insn | (value & 0x3fffffc);
 }
@@ -1102,8 +1087,7 @@ insert_mbe (unsigned long insn,
 
   if (uval == 0)
     {
-      if (errmsg != NULL)
-	*errmsg = _("illegal bitmask");
+      *errmsg = _("illegal bitmask");
       return insn;
     }
 
@@ -1138,10 +1122,7 @@ insert_mbe (unsigned long insn,
     me = 32;
 
   if (count != 2 && (count != 0 || ! last))
-    {
-      if (errmsg != NULL)
-	*errmsg = _("illegal bitmask");
-    }
+    *errmsg = _("illegal bitmask");
 
   return insn | (mb << 6) | ((me - 1) << 1);
 }
@@ -1155,8 +1136,7 @@ extract_mbe (unsigned long insn,
   int mb, me;
   int i;
 
-  if (invalid != NULL)
-    *invalid = 1;
+  *invalid = 1;
 
   mb = (insn >> 6) & 0x1f;
   me = (insn >> 1) & 0x1f;
@@ -1167,12 +1147,12 @@ extract_mbe (unsigned long insn,
 	ret |= 1 << (31 - i);
     }
   else if (mb == me + 1)
-    ret = -1;
+    ret = ~0;
   else /* (mb > me + 1) */
     {
       ret = ~0;
       for (i = me + 1; i < mb; i++)
-	ret &= ~ (1 << (31 - i));
+	ret &= ~(1 << (31 - i));
     }
   return ret;
 }
@@ -1249,8 +1229,7 @@ extract_nsi (unsigned long insn,
 	     int dialect ATTRIBUTE_UNUSED,
 	     int *invalid)
 {
-  if (invalid != NULL)
-    *invalid = 1;
+  *invalid = 1;
   return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
 }
 
@@ -1284,8 +1263,8 @@ insert_ram (unsigned long insn,
   return insn | ((value & 0x1f) << 16);
 }
 
-  /* The RA field in the DQ form lq instruction, which has special 
-     value restrictions.  */
+/* The RA field in the DQ form lq instruction, which has special 
+   value restrictions.  */
 
 /*ARGSUSED*/
 static unsigned long
@@ -1296,7 +1275,7 @@ insert_raq (unsigned long insn,
 {
   long rtvalue = (insn & RT_MASK) >> 21;
 
-  if (value == rtvalue && errmsg != NULL)
+  if (value == rtvalue)
     *errmsg = _("source and target register operands must be different");
   return insn | ((value & 0x1f) << 16);
 }
@@ -1337,14 +1316,13 @@ extract_rbs (unsigned long insn,
 	     int dialect ATTRIBUTE_UNUSED,
 	     int *invalid)
 {
-  if (invalid != NULL
-      && ((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))
+  if (((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))
     *invalid = 1;
   return 0;
 }
 
-  /* The RT field of the DQ form lq instruction, which has special
-     value restrictions.  */
+/* The RT field of the DQ form lq instruction, which has special
+   value restrictions.  */
 
 /*ARGSUSED*/
 static unsigned long
@@ -1353,13 +1331,13 @@ insert_rtq (unsigned long insn,
 	    int dialect ATTRIBUTE_UNUSED,
 	    const char **errmsg)
 {
-  if ((value & 1) != 0 && errmsg != NULL)
+  if ((value & 1) != 0)
     *errmsg = _("target register operand must be even");
   return insn | ((value & 0x1f) << 21);
 }
 
-  /* The RS field of the DS form stq instruction, which has special 
-     value restrictions.  */
+/* The RS field of the DS form stq instruction, which has special 
+   value restrictions.  */
 
 /*ARGSUSED*/
 static unsigned long
@@ -1368,7 +1346,7 @@ insert_rsq (unsigned long insn,
 	    int dialect ATTRIBUTE_UNUSED,
 	    const char **errmsg)
 {
-  if ((value & 1) != 0 && errmsg != NULL)
+  if ((value & 1) != 0)
     *errmsg = _("source register operand must be even");
   return insn | ((value & 0x1f) << 21);
 }

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]