diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2004-02-02 13:20:52 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-02-02 12:20:52 +0000 |
commit | d560b0aa2ab4f07365674f3a7d2e4a4626c363c5 (patch) | |
tree | 762a44f8ce2364a2c1a05d1beb19c3b6dfa48f3a /gcc/config | |
parent | 6f626d1bdf012ca311c77ec48194d1add0e5e052 (diff) | |
download | gcc-d560b0aa2ab4f07365674f3a7d2e4a4626c363c5.zip gcc-d560b0aa2ab4f07365674f3a7d2e4a4626c363c5.tar.gz gcc-d560b0aa2ab4f07365674f3a7d2e4a4626c363c5.tar.bz2 |
sparc.c (function_arg_slotno): Align TImode arguments on a 16-byte boundary in the parameter array if ARCH64.
* config/sparc/sparc.c (function_arg_slotno): Align TImode
arguments on a 16-byte boundary in the parameter array if ARCH64.
Split handling of TFmode.
From-SVN: r77107
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/sparc/sparc.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 369f11a..e7dd4fa 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4979,19 +4979,27 @@ function_arg_slotno (const struct sparc_args *cum, enum machine_mode mode, See emit_call_1. */ return -1; + case TImode : case CTImode : + if (TARGET_ARCH64 && (slotno & 1) != 0) + slotno++, *ppadding = 1; + /* fallthrough */ + case QImode : case CQImode : case HImode : case CHImode : case SImode : case CSImode : case DImode : case CDImode : - case TImode : case CTImode : if (slotno >= SPARC_INT_ARG_MAX) return -1; regno = regbase + slotno; break; + case TFmode : case TCmode : + if (TARGET_ARCH64 && (slotno & 1) != 0) + slotno++, *ppadding = 1; + /* fallthrough */ + case SFmode : case SCmode : case DFmode : case DCmode : - case TFmode : case TCmode : if (TARGET_ARCH32) { if (slotno >= SPARC_INT_ARG_MAX) @@ -5000,9 +5008,6 @@ function_arg_slotno (const struct sparc_args *cum, enum machine_mode mode, } else { - if ((mode == TFmode || mode == TCmode) - && (slotno & 1) != 0) - slotno++, *ppadding = 1; if (TARGET_FPU && named) { if (slotno >= SPARC_FP_ARG_MAX) |