From 77fc9313162a36f4936fcc3c81d6e68c27dd1500 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Mon, 6 Dec 1993 08:01:49 -0500 Subject: [PATCH] (hppa_legitimize_address): If we can't legitimize, do nothing; don't call abort. From-SVN: r6191 --- gcc/config/pa/pa.c | 19 +++++++++---------- 1 file 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) -- 2.7.4