aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-12-06 08:01:49 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-12-06 08:01:49 -0500
commit77fc9313162a36f4936fcc3c81d6e68c27dd1500 (patch)
treed0796c0e97b4da87beeec8c73c3b4e8f9189cd9f /gcc
parentcb778d408ab975f78849d97c9fda137382b8bd1c (diff)
downloadgcc-77fc9313162a36f4936fcc3c81d6e68c27dd1500.zip
gcc-77fc9313162a36f4936fcc3c81d6e68c27dd1500.tar.gz
gcc-77fc9313162a36f4936fcc3c81d6e68c27dd1500.tar.bz2
(hppa_legitimize_address): If we can't legitimize, do nothing; don't
call abort. From-SVN: r6191
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index baddeb1..5ba5a85 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for HPPA.
- Copyright (C) 1992 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1993 Free Software Foundation, Inc.
Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c
This file is part of GNU CC.
@@ -705,15 +705,14 @@ hppa_legitimize_address (x, oldx, mode)
if (GET_CODE (y) == CONST)
y = XEXP (y, 0);
- /* 'y' had better be a PLUS or MINUS expression at this point. */
- if (GET_CODE (y) != PLUS && GET_CODE (y) != MINUS)
- abort();
-
- regx1 = force_reg (Pmode, force_operand (XEXP (x, 0), 0));
- regy1 = force_reg (Pmode, force_operand (XEXP (y, 0), 0));
- regy2 = force_reg (Pmode, force_operand (XEXP (y, 1), 0));
- regx1 = force_reg (Pmode, gen_rtx (GET_CODE (y), Pmode, regx1, regy2));
- return force_reg (Pmode, gen_rtx (PLUS, Pmode, regx1, regy1));
+ if (GET_CODE (y) == PLUS || GET_CODE (y) == MINUS)
+ {
+ regx1 = force_reg (Pmode, force_operand (XEXP (x, 0), 0));
+ regy1 = force_reg (Pmode, force_operand (XEXP (y, 0), 0));
+ regy2 = force_reg (Pmode, force_operand (XEXP (y, 1), 0));
+ regx1 = force_reg (Pmode, gen_rtx (GET_CODE (y), Pmode, regx1, regy2));
+ return force_reg (Pmode, gen_rtx (PLUS, Pmode, regx1, regy1));
+ }
}
if (flag_pic)