aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1998-06-30 21:27:39 -0700
committerRichard Henderson <rth@gcc.gnu.org>1998-06-30 21:27:39 -0700
commit1eac9f59f2a15474966ffa2fe591119cc5a4360b (patch)
tree81ca73988a2a059869278eb2fa759e0c49b14d7f /gcc
parent822a3443ec9bf4bc2d8cc424d837cb89ce8504b4 (diff)
downloadgcc-1eac9f59f2a15474966ffa2fe591119cc5a4360b.zip
gcc-1eac9f59f2a15474966ffa2fe591119cc5a4360b.tar.gz
gcc-1eac9f59f2a15474966ffa2fe591119cc5a4360b.tar.bz2
sparc.c (function_arg_record_value): Take a MODE arg with which to create the PARALLEL.
* sparc.c (function_arg_record_value): Take a MODE arg with which to create the PARALLEL. Update all callers. From-SVN: r20866
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sparc/sparc.c11
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7fba7a8..f468786b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 1 04:22:23 1998 Richard Henderson <rth@cygnus.com>
+
+ * sparc.c (function_arg_record_value): Take a MODE arg with which to
+ create the PARALLEL. Update all callers.
+
Wed Jul 1 04:10:35 1998 Richard Henderson <rth@cygnus.com>
* expr.c (expand_assignment, store_constructor, expand_expr): Use
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 343fac8..92b2049 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -4223,8 +4223,9 @@ function_arg_record_value_2 (type, startbitpos, parms)
}
static rtx
-function_arg_record_value (type, slotno, named, regbase)
+function_arg_record_value (type, mode, slotno, named, regbase)
tree type;
+ enum machine_mode mode;
int slotno, named, regbase;
{
HOST_WIDE_INT typesize = int_size_in_bytes (type);
@@ -4266,7 +4267,7 @@ function_arg_record_value (type, slotno, named, regbase)
anyway so the rest of gcc doesn't go nuts. Returning a PARALLEL
leads to breakage due to the fact that there are zero bytes to
load. */
- return gen_rtx_REG (DImode, regbase);
+ return gen_rtx_REG (mode, regbase);
}
else
{
@@ -4280,7 +4281,7 @@ function_arg_record_value (type, slotno, named, regbase)
if (nregs == 0)
abort();
- parms.ret = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (nregs));
+ parms.ret = gen_rtx_PARALLEL (mode, rtvec_alloc (nregs));
/* Fill in the entries. */
parms.nregs = 0;
@@ -4412,7 +4413,7 @@ function_arg (cum, mode, type, named, incoming_p)
if (int_size_in_bytes (type) > 16)
abort (); /* shouldn't get here */
- return function_arg_record_value (type, slotno, named, regbase);
+ return function_arg_record_value (type, mode, slotno, named, regbase);
}
else if (type && TREE_CODE (type) == UNION_TYPE)
{
@@ -4642,7 +4643,7 @@ function_value (type, mode, incoming_p)
if (int_size_in_bytes (type) > 32)
abort (); /* shouldn't get here */
- return function_arg_record_value (type, 0, 1, regbase);
+ return function_arg_record_value (type, mode, 0, 1, regbase);
}
else if (TREE_CODE (type) == UNION_TYPE)
{