* m32r.opc (parse_hi16): Do not assume a 32-bit host word size.
authorAlan Modra <amodra@gmail.com>
Wed, 26 Oct 2005 07:49:05 +0000 (07:49 +0000)
committerAlan Modra <amodra@gmail.com>
Wed, 26 Oct 2005 07:49:05 +0000 (07:49 +0000)
cpu/ChangeLog
cpu/m32r.opc
opcodes/ChangeLog
opcodes/m32r-asm.c

index 48311b21b3fbc71d43aec2124238d2aac7327ebd..407b6bf714715d11919b6bb9dd668c2dbd699d04 100644 (file)
@@ -1,3 +1,7 @@
+2005-10-26  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+       * m32r.opc (parse_hi16): Do not assume a 32-bit host word size.
+
 2005-10-25  DJ Delorie  <dj@redhat.com>
 
        * m32c.cpu (add16-bQ-sp,add16-wQ-sp): Fix to allow either width by
index f2351b106a68571f1287748eeff98a7f078fe570..ab69d078c8648bfdae89ebc77197c38c8ef16308 100644 (file)
@@ -127,7 +127,10 @@ parse_hi16 (CGEN_CPU_DESC cd,
       ++*strp;
       if (errmsg == NULL
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
-       value >>= 16;
+       {
+         value >>= 16;
+         value &= 0xffff;
+       }
       *valuep = value;
       return errmsg;
     }
@@ -142,8 +145,9 @@ parse_hi16 (CGEN_CPU_DESC cd,
       if (errmsg == NULL
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
         {
-          value = value + (value & 0x8000 ? 0x10000 : 0);
+          value += 0x8000;
           value >>= 16;
+         value &= 0xffff;
         }
       *valuep = value;
       return errmsg;
index 89ca63d51e7e075cda23fd92b4112eb9a22ba1fe..42c6fe9bf4768ae3da4533f1d87e687a2dc0b385 100644 (file)
@@ -1,3 +1,7 @@
+2005-10-26  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+       * m32r-asm.c: Regenerate.
+
 2005-10-25  DJ Delorie  <dj@redhat.com>
 
        * m32c-asm.c: Regenerate.
index 50f1363e77797939fdce552ac7cf630adfcf0a0c..a5bd363316820879121a30bbb99f594a5ac1fe3c 100644 (file)
@@ -89,7 +89,10 @@ parse_hi16 (CGEN_CPU_DESC cd,
       ++*strp;
       if (errmsg == NULL
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
-       value >>= 16;
+       {
+         value >>= 16;
+         value &= 0xffff;
+       }
       *valuep = value;
       return errmsg;
     }
@@ -104,8 +107,9 @@ parse_hi16 (CGEN_CPU_DESC cd,
       if (errmsg == NULL
          && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER)
         {
-          value = value + (value & 0x8000 ? 0x10000 : 0);
+          value += 0x8000;
           value >>= 16;
+         value &= 0xffff;
         }
       *valuep = value;
       return errmsg;