diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1994-02-06 12:55:34 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1994-02-06 12:55:34 -0800 |
commit | dc55be0e841ab755d4f9c09adf4b2349cfe4b9c1 (patch) | |
tree | 5acd233c7e1483196324526b123b95408a3409ac /gcc | |
parent | 704a7f6e546b23f18b0b87671c973b2f48f0d4d4 (diff) | |
download | gcc-dc55be0e841ab755d4f9c09adf4b2349cfe4b9c1.zip gcc-dc55be0e841ab755d4f9c09adf4b2349cfe4b9c1.tar.gz gcc-dc55be0e841ab755d4f9c09adf4b2349cfe4b9c1.tar.bz2 |
(function_arg): When soft-float, don't add bias for
second SFmode argument.
From-SVN: r6489
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/mips/mips.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 04097ef..d296af6 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -2819,13 +2819,16 @@ function_arg (cum, mode, type, named) switch (mode) { case SFmode: - if (cum->gp_reg_found || cum->arg_number >= 2) + if (cum->gp_reg_found || cum->arg_number >= 2 || TARGET_SOFT_FLOAT) regbase = GP_ARG_FIRST; - else { - regbase = (TARGET_SOFT_FLOAT) ? GP_ARG_FIRST : FP_ARG_FIRST; - if (cum->arg_words == 1) /* first arg was float */ - bias = 1; /* use correct reg */ - } + else + { + regbase = FP_ARG_FIRST; + /* If the first arg was a float in a floating point register, + then set bias to align this float arg properly. */ + if (cum->arg_words == 1) + bias = 1; + } break; |