* mips-tdep.c (is_mips16_addr, mips32_next_pc, add_offset_16):
authorDaniel Jacobowitz <drow@false.org>
Wed, 15 Mar 2006 16:55:05 +0000 (16:55 +0000)
committerDaniel Jacobowitz <drow@false.org>
Wed, 15 Mar 2006 16:55:05 +0000 (16:55 +0000)
Correct arithmetic for 64-bit CORE_ADDR.

gdb/ChangeLog
gdb/mips-tdep.c

index f1e678a3d29e45df3d471de59c797ebbad13ac34..41aeb00546d1ff5a97c599d69d66ecb7e529450b 100644 (file)
@@ -1,3 +1,8 @@
+2006-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * mips-tdep.c (is_mips16_addr, mips32_next_pc, add_offset_16):
+       Correct arithmetic for 64-bit CORE_ADDR.
+
 2006-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * mips-linux-tdep.c: Include "floatformat.h".
index 9b3935f5459930b9634187f9ad5875c944f3f4cb..8ea209f05b0e5a868c1cd1eced514603d8798ad6 100644 (file)
@@ -202,7 +202,7 @@ is_mips16_addr (CORE_ADDR addr)
 static CORE_ADDR
 unmake_mips16_addr (CORE_ADDR addr)
 {
-  return ((addr) & ~1);
+  return ((addr) & ~(CORE_ADDR) 1);
 }
 
 /* Return the contents of register REGNUM as a signed integer.  */
@@ -989,14 +989,14 @@ mips32_next_pc (CORE_ADDR pc)
            unsigned long reg;
            reg = jtype_target (inst) << 2;
            /* Upper four bits get never changed... */
-           pc = reg + ((pc + 4) & 0xf0000000);
+           pc = reg + ((pc + 4) & ~(CORE_ADDR) 0x0fffffff);
          }
          break;
          /* FIXME case JALX : */
          {
            unsigned long reg;
            reg = jtype_target (inst) << 2;
-           pc = reg + ((pc + 4) & 0xf0000000) + 1;     /* yes, +1 */
+           pc = reg + ((pc + 4) & ~(CORE_ADDR) 0x0fffffff) + 1;        /* yes, +1 */
            /* Add 1 to indicate 16 bit mode - Invert ISA mode */
          }
          break;                /* The new PC will be alternate mode */
@@ -1202,7 +1202,7 @@ unpack_mips16 (CORE_ADDR pc,
 static CORE_ADDR
 add_offset_16 (CORE_ADDR pc, int offset)
 {
-  return ((offset << 2) | ((pc + 2) & (0xf0000000)));
+  return ((offset << 2) | ((pc + 2) & (~(CORE_ADDR) 0x0fffffff)));
 }
 
 static CORE_ADDR
This page took 0.031579 seconds and 4 git commands to generate.