OSDN Git Service

* i386.c (classify_argument): Properly compute word size of the analyzed object.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Aug 2002 16:01:34 +0000 (16:01 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Aug 2002 16:01:34 +0000 (16:01 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56602 138bc75d-0d04-0410-961f-82ee72b054a4

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

index bb1ab08..4d0a4eb 100644 (file)
@@ -1,3 +1,7 @@
+Tue Aug 27 18:00:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (classify_argument): Properly compute word size of the analyzed object.
+
 Tue Aug 27 14:39:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
 
        * sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp,
index 2f66a01..7635037 100644 (file)
@@ -1592,7 +1592,7 @@ classify_argument (mode, type, classes, bit_offset)
 {
   int bytes =
     (mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode);
-  int words = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
+  int words = (bytes + (bit_offset % 64) / 8 + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
 
   if (type && AGGREGATE_TYPE_P (type))
     {