From c816db88c31a93b91dfeed2431b0928eefc89e08 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 14 Jun 1995 17:03:45 -0400 Subject: [PATCH] (expand_builtin_apply_args): Put back original register save and restore order. From-SVN: r9952 --- gcc/expr.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/gcc/expr.c b/gcc/expr.c index 1bf40c8ce88..828916cc395 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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; -- 2.30.2