aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-04 17:12:27 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-04 17:12:27 -0400
commitd94d2abc865dfc8e5e90bd5f9b8b035296df3353 (patch)
tree22c9d8835346edd22655cfaf310692b3dc94ddca /gcc/reload.c
parent17a0a76dd417ee148083fd7bbf805153d86f1930 (diff)
downloadgcc-d94d2abc865dfc8e5e90bd5f9b8b035296df3353.zip
gcc-d94d2abc865dfc8e5e90bd5f9b8b035296df3353.tar.gz
gcc-d94d2abc865dfc8e5e90bd5f9b8b035296df3353.tar.bz2
(push_secondary_reload): Use TYPE for secondary type if it is
RELOAD_FOR_{INPUT,OUTPUT}_ADDRESS. From-SVN: r7211
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 8d7141b..254867e 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -343,11 +343,15 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
enum reg_class t_class = NO_REGS;
enum machine_mode t_mode = VOIDmode;
enum insn_code t_icode = CODE_FOR_nothing;
- enum reload_type secondary_type
- = in_p ? RELOAD_FOR_INPUT_ADDRESS : RELOAD_FOR_OUTPUT_ADDRESS;
+ enum reload_type secondary_type;
int i;
int s_reload, t_reload = -1;
+ if (type == RELOAD_FOR_INPUT_ADDRESS || type == RELOAD_FOR_OUTPUT_ADDRESS)
+ secondary_type = type;
+ else
+ secondary_type = in_p ? RELOAD_FOR_INPUT_ADDRESS : RELOAD_FOR_OUTPUT_ADDRESS;
+
*picode = CODE_FOR_nothing;
/* If X is a pseudo-register that has an equivalent MEM (actually, if it