diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-06-14 17:03:45 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-06-14 17:03:45 -0400 |
commit | c816db88c31a93b91dfeed2431b0928eefc89e08 (patch) | |
tree | 43730303b796cad5742df5384e76e17fd2153c44 /gcc | |
parent | bacbde186e2ccaf1cbce0d8f5ae52f3f60adac19 (diff) | |
download | gcc-c816db88c31a93b91dfeed2431b0928eefc89e08.zip gcc-c816db88c31a93b91dfeed2431b0928eefc89e08.tar.gz gcc-c816db88c31a93b91dfeed2431b0928eefc89e08.tar.bz2 |
(expand_builtin_apply_args): Put back original register save and
restore order.
From-SVN: r9952
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 16 |
1 files changed, 4 insertions, 12 deletions
@@ -8156,14 +8156,8 @@ expand_builtin_apply_args () if (struct_value_rtx) size += GET_MODE_SIZE (Pmode); - /* Save each register used in calling a function to the block. - Doing this in reverse order makes for much more compact code - for i386 and family. If we do this in reverse order, a simple - series of pops and stores will be generated. If we do this - in ascending order, the pops and stores will be littered with - stack swaps as well. Since the order is largely irrelevant for - all other architectures, we use the optimal order for the i386. */ - for (regno = FIRST_PSEUDO_REGISTER; regno--;) + /* Save each register used in calling a function to the block. */ + for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) if ((mode = apply_args_mode[regno]) != VOIDmode) { rtx tem; @@ -8263,10 +8257,8 @@ expand_builtin_apply (function, arguments, argsize) size += GET_MODE_SIZE (Pmode); /* Restore each of the registers previously saved. Make USE insns - for each of these registers for use in making the call. - Doing this in reverse order makes for much more compact code - for i386 and family. */ - for (regno = FIRST_PSEUDO_REGISTER; regno--; ) + for each of these registers for use in making the call. */ + for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) if ((mode = apply_args_mode[regno]) != VOIDmode) { align = GET_MODE_ALIGNMENT (mode) / BITS_PER_UNIT; |