ubsan: d30v: negation of -2147483648
[deliverable/binutils-gdb.git] / opcodes / xgate-dis.c
index da9ab6c9f1e7181cc80b0a4b3c58dbe8689240b9..61eeb9971c6c94123a7af3ef4e4de076f47fe45c 100644 (file)
@@ -1,5 +1,5 @@
 /* xgate-dis.c -- Freescale XGATE disassembly
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2020 Free Software Foundation, Inc.
    Written by Sean Keys (skeys@ipdatasys.com)
 
    This file is part of the GNU opcodes library.
@@ -21,7 +21,7 @@
 
 #include "sysdep.h"
 #include <assert.h>
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opintl.h"
 #include "libiberty.h"
 #include "ansidecl.h"
@@ -169,8 +169,8 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
             }
           else if (!strcmp (decodePTR->opcodePTR->constraints, XGATE_OP_DYA))
             {
-                 operandOne = ripBits (&operMaskReg, 3, opcodePTR, raw_code);
-                 operandTwo = ripBits (&operMaskReg, 3, opcodePTR, raw_code);
+                 operandOne = ripBits (&operMaskReg, 3, decodePTR->opcodePTR, raw_code);
+                 operandTwo = ripBits (&operMaskReg, 3, decodePTR->opcodePTR, raw_code);
                 ( *info->fprintf_func)(info->stream, " R%x, R%x", operandOne,
                      operandTwo);
             }
@@ -193,12 +193,12 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
                   relAddr = XGATE_NINE_BITS >> 1; /* Clip sign bit.  */
                   relAddr = ~relAddr; /* Make signed.  */
                   relAddr |= (raw_code & 0xFF) + 1; /* Apply our value.  */
-                  relAddr <<= 1; /* Multiply by two as per processor docs.  */
+                  relAddr *= 2; /* Multiply by two as per processor docs.  */
                 }
               else
                 {
                   relAddr = raw_code & 0xff;
-                  relAddr = (relAddr << 1) + 2;
+                  relAddr = relAddr * 2 + 2;
                 }
              (*info->fprintf_func)(info->stream, " *%d", relAddr);
              (*info->fprintf_func)(info->stream, "  Abs* 0x");
@@ -212,12 +212,12 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
                   relAddr = XGATE_TEN_BITS >> 1; /* Clip sign bit.  */
                   relAddr = ~relAddr; /* Make signed.  */
                   relAddr |= (raw_code & 0x1FF) + 1; /* Apply our value.  */
-                  relAddr <<= 1; /* Multiply by two as per processor docs.  */
+                  relAddr *= 2; /* Multiply by two as per processor docs.  */
                 }
               else
                 {
                   relAddr = raw_code & 0x1FF;
-                  relAddr = (relAddr << 1) + 2;
+                  relAddr = relAddr * 2 + 2;
                 }
               (*info->fprintf_func)(info->stream, " *%d", relAddr);
               (*info->fprintf_func)(info->stream, "  Abs* 0x");
@@ -259,7 +259,7 @@ print_insn (bfd_vma memaddr, struct disassemble_info* info)
           else
             {
               (*info->fprintf_func)(info->stream, " unhandled mode %s",
-                opcodePTR->constraints);
+                                   decodePTR->opcodePTR->constraints);
             }
           perviousBin = raw_code;
         }
@@ -299,12 +299,12 @@ ripBits (unsigned int *operandBitsRemaining,
         unsigned int memory)
 {
   unsigned int currentBit;
-  int operand;
+  unsigned int operand = 0;
   int numBitsFound;
 
-  for (operand = 0, numBitsFound = 0, currentBit = 1
-        << ((opcodePTR->size * 8) - 1);
-       (numBitsFound < numBitsRequested) && currentBit; currentBit >>= 1)
+  for (numBitsFound = 0, currentBit = 1u << ((opcodePTR->size * 8) - 1);
+       numBitsFound < numBitsRequested && currentBit != 0;
+       currentBit >>= 1)
     {
       if (currentBit & *operandBitsRemaining)
        {
This page took 0.024458 seconds and 4 git commands to generate.