Fix %hi() operator for 64-bit hosts.
authorNick Clifton <nickc@redhat.com>
Fri, 10 Feb 2006 12:05:12 +0000 (12:05 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 10 Feb 2006 12:05:12 +0000 (12:05 +0000)
cpu/ChangeLog
cpu/iq2000.opc
opcodes/ChangeLog
opcodes/iq2000-asm.c

index 358e366..baefa5c 100644 (file)
@@ -1,3 +1,7 @@
+2006-02-10  Nick Clifton  <nickc@redhat.com>
+
+       * iq2000.opc (parse_hi16): Truncate shifted values to 16 bits.
+
 2006-01-06  DJ Delorie  <dj@redhat.com>
 
        * m32c.cpu (mov.w:q): Fix mode.
index 63ef076..5287506 100644 (file)
@@ -218,6 +218,7 @@ parse_hi16 (CGEN_CPU_DESC cd,
          if (value & 0x8000)
            value += 0x10000;
          value >>= 16;
+         value &= 0xffff;
        }
       *valuep = value;
 
@@ -243,6 +244,7 @@ parse_hi16 (CGEN_CPU_DESC cd,
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
        value >>= 16;
 
+      value &= 0xffff;
       *valuep = value;
 
       return errmsg;
index 51bbb1c..9de01b6 100644 (file)
@@ -1,3 +1,7 @@
+2006-02-10  Nick Clifton  <nickc@redhat.com>
+
+       * iq2000-asm.c: Regenerate.
+
 2006-02-07  Nathan Sidwell  <nathan@codesourcery.com>
 
        * m68k-dis.c (print_insn_m68k): Use bfd_m68k_mach_to_features.
index caab54f..0ec59ce 100644 (file)
@@ -213,6 +213,7 @@ parse_hi16 (CGEN_CPU_DESC cd,
             1 to the resultant %hi value.  */
          if (value & 0x8000)
            value += 0x10000;
+         value &= 0xffff;
          value >>= 16;
        }
       *valuep = value;
@@ -239,6 +240,7 @@ parse_hi16 (CGEN_CPU_DESC cd,
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
        value >>= 16;
 
+      value &= 0xffff;
       *valuep = value;
 
       return errmsg;