From: Ulrich Weigand Date: Fri, 13 Jun 2003 13:04:34 +0000 (+0000) Subject: s390.c (s390_va_arg): Fix alignment when retrieving non-integral types from integer... X-Git-Tag: releases/gcc-3.4.0~5874 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=c873e11f46a1fee89d9205052fc4455276ab723c;p=gcc.git s390.c (s390_va_arg): Fix alignment when retrieving non-integral types from integer register save... * config/s390/s390.c (s390_va_arg): Fix alignment when retrieving non-integral types from integer register save area slots. From-SVN: r67894 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 86a03b857827..0c120196879f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-13 Ulrich Weigand + + * config/s390/s390.c (s390_va_arg): Fix alignment when retrieving + non-integral types from integer register save area slots. + 2003-06-13 Nathanael Nerode * config/i386/svr3dbx.h: GNU CC -> GCC; Intel 385 -> Intel 386. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 6b42699bc202..9ca394f8dd6c 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -6073,13 +6073,8 @@ s390_va_arg (valist, type) reg = gpr; n_reg = (size + UNITS_PER_WORD - 1) / UNITS_PER_WORD; sav_ofs = 2 * UNITS_PER_WORD; - if (TARGET_64BIT) - sav_ofs += TYPE_MODE (type) == SImode ? 4 : - TYPE_MODE (type) == HImode ? 6 : - TYPE_MODE (type) == QImode ? 7 : 0; - else - sav_ofs += TYPE_MODE (type) == HImode ? 2 : - TYPE_MODE (type) == QImode ? 3 : 0; + if (size < UNITS_PER_WORD) + sav_ofs += UNITS_PER_WORD - size; sav_scale = UNITS_PER_WORD; if (n_reg > 1)