OSDN Git Service

* i386.md (tablejump): Sign extend the operand.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Aug 2002 10:50:02 +0000 (10:50 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Aug 2002 10:50:02 +0000 (10:50 +0000)
* i386.c (classify_argument): Fix missed case from previous patch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56231 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md

index e5ec930..360b4a7 100644 (file)
@@ -1,3 +1,8 @@
+Mon Aug 12 12:48:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (tablejump): Sign extend the operand.
+       * i386.c (classify_argument): Fix missed case from previous patch.
+
 2002-08-12  Neil Booth  <neil@daikokuya.co.uk>
 
        * c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
index 1010bb8..663e767 100644 (file)
@@ -1727,7 +1727,7 @@ classify_argument (mode, type, classes, bit_offset)
                     return 0;
                   for (i = 0; i < num; i++)
                     {
-                      int pos = (offset + bit_offset) / 8 / 8;
+                      int pos = (offset + (bit_offset % 64)) / 8 / 8;
                       classes[i + pos] =
                         merge_classes (subclasses[i], classes[i + pos]);
                     }
index 653583b..01e03c3 100644 (file)
          op1 = operands[0];
        }
 
-      operands[0] = expand_simple_binop (Pmode, code, op0, op1, NULL_RTX, 1,
+      operands[0] = expand_simple_binop (Pmode, code, op0, op1, NULL_RTX, 0,
                                         OPTAB_DIRECT);
     }
 })