diff options
author | Richard Henderson <rth@cygnus.com> | 1998-06-30 21:27:39 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-06-30 21:27:39 -0700 |
commit | 1eac9f59f2a15474966ffa2fe591119cc5a4360b (patch) | |
tree | 81ca73988a2a059869278eb2fa759e0c49b14d7f /gcc | |
parent | 822a3443ec9bf4bc2d8cc424d837cb89ce8504b4 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 11 |
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) { |