fix sign extension problem with d30v
authorMichael Meissner <gnu@the-meissners.org>
Thu, 2 Mar 2000 22:18:12 +0000 (22:18 +0000)
committerMichael Meissner <gnu@the-meissners.org>
Thu, 2 Mar 2000 22:18:12 +0000 (22:18 +0000)
gas/ChangeLog
gas/config/tc-d30v.c

index 2eca96e5074175da91a11c6e2d65e76ca14ad9de..ee7089fbe1011f8254b17b086b3d176230409cae 100644 (file)
@@ -1,3 +1,8 @@
+2000-03-02  Michael Meissner  <meissner@redhat.com>
+
+       * config/tc-d30v.c (check_range): Remove code that incorrectly
+       sign extended values where bits < 32.
+
 2000-03-02  H.J. Lu  (hjl@gnu.org)
 
        * configure.in: Support --enable-targets=all on ia32.
index c894e2bd1ed11b16bcbdb379a2561fb6727a4d32..c95a8d2b4c5b61385c66ab03b8bc048cc0419aba 100644 (file)
@@ -247,10 +247,6 @@ check_range (num, bits, flags)
   if (bits == 32 && sizeof(unsigned long) * CHAR_BIT == 32)
     return 0;
 
-  /* Sign extend signed values to unsigned long */
-  if ((flags & OPERAND_SIGNED) && (num & ((unsigned long)1 << (bits - 1))))
-    num |= ((long)-1 << (bits - 1));
-
   if (flags & OPERAND_SHIFT)
     {
       /* We know that all shifts are right by three bits.... */