Fix bug parsing shigh(0xffff8000)
authorNick Clifton <nickc@redhat.com>
Tue, 30 Mar 2004 09:29:19 +0000 (09:29 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 30 Mar 2004 09:29:19 +0000 (09:29 +0000)
cpu/ChangeLog
cpu/m32r.opc
opcodes/ChangeLog
opcodes/m32r-asm.c

index ce4468bac77e1a7cc43d1b823dd6aa5a29afd912..d8eaa9ec36d8bd089f4b4d8e35dbf8592bddbeec 100644 (file)
@@ -1,3 +1,7 @@
+2004-03-30  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * m32r.opc (parse_hi16): Fixed shigh(0xffff8000) bug.
+
 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
 
        * frv.cpu (define-arch frv): Add fr450 mach.
index 6764223f2bf43b87d47ca33c81aa13b5c25cd67f..78bd0facef4bc869bb392007f02e0bd4bbab8295 100644 (file)
@@ -1,6 +1,6 @@
 /* M32R opcode support.  -*- C -*-
 
-   Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
 
    Contributed by Red Hat Inc; developed under contract from
    Mitsubishi Electric Corporation.
@@ -23,9 +23,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-*/
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* This file is an addendum to m32r.cpu.  Heavy use of C code isn't
    appropriate in .cpu files, so it resides here.  This especially applies
@@ -40,8 +38,7 @@
    <arch>-opc.c additions use: "-- opc.c"
    <arch>-asm.c additions use: "-- asm.c"
    <arch>-dis.c additions use: "-- dis.c"
-   <arch>-ibd.h additions use: "-- ibd.h"
-*/
+   <arch>-ibd.h additions use: "-- ibd.h"  */
 \f
 /* -- opc.h */
 
@@ -153,7 +150,10 @@ parse_hi16 (cd, strp, opindex, valuep)
       ++*strp;
       if (errmsg == NULL
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
-       value = (value >> 16) + (value & 0x8000 ? 1 : 0);
+        {
+          value = value + (value & 0x8000 ? 0x10000 : 0);
+          value >>= 16;
+        }
       *valuep = value;
       return errmsg;
     }
index 2f822032e66dbd0edb3f4d2474b08c62e78631d1..65b0898b0d1543fb1a6379c3ffc06747ad6c2c35 100644 (file)
@@ -1,3 +1,7 @@
+2004-03-30  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * m32r-asm.c: Regenerate.
+
 2004-03-29  Stan Shebs  <shebs@apple.com>
 
        * mpw-config.in, mpw-make.sed: Remove MPW support files, no longer
index 8c2cc81ea892a79f2098cd0b12ac08032f4a9080..87c33f04cd3e00da91d5fc55b5a858ed8eba4bc6 100644 (file)
@@ -4,7 +4,7 @@
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 - the resultant file is machine generated, cgen-asm.in isn't
 
-Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and GDB, the GNU debugger.
 
@@ -111,7 +111,10 @@ parse_hi16 (cd, strp, opindex, valuep)
       ++*strp;
       if (errmsg == NULL
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
-       value = (value >> 16) + (value & 0x8000 ? 1 : 0);
+        {
+          value = value + (value & 0x8000 ? 0x10000 : 0);
+          value >>= 16;
+        }
       *valuep = value;
       return errmsg;
     }