diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-06 08:01:49 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-06 08:01:49 -0500 |
commit | 77fc9313162a36f4936fcc3c81d6e68c27dd1500 (patch) | |
tree | d0796c0e97b4da87beeec8c73c3b4e8f9189cd9f /gcc | |
parent | cb778d408ab975f78849d97c9fda137382b8bd1c (diff) | |
download | gcc-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.c | 19 |
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) |