summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-27 16:01:34 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-27 16:01:34 +0000
commit10b1bedbd12e9bd282e4a036c34e894c55796bbb (patch)
tree03b2a31b52dd0b9beca20734a7fa454dc53feebd
parentab55c58f550bb26325c54af5de564f67b00b18e7 (diff)
downloadppe42-gcc-10b1bedbd12e9bd282e4a036c34e894c55796bbb.tar.gz
ppe42-gcc-10b1bedbd12e9bd282e4a036c34e894c55796bbb.zip
* i386.c (classify_argument): Properly compute word size of the analyzed object.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56602 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bb1ab0855a8..4d0a4eb2ecd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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,
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 2f66a01230b..7635037215d 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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))
{
OpenPOWER on IntegriCloud