From b3b6c9b3f3dab2f1ae27beeb9ebe5b732411c695 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Fri, 24 Sep 1993 19:54:09 +0000 Subject: [PATCH] rtlanal.c: (rtx_unstable_p): HARD_FRAME_POINTER_REGNUM is not an unstable register. * rtlanal.c: (rtx_unstable_p): HARD_FRAME_POINTER_REGNUM is not an unstable register. (rtx_varies_p, case REG): hard_frame_pointer_rtx is invariant. (rtx_addr_can_trap_p, case REG): hard_frame_pointer_rtx won't trap. From-SVN: r5465 --- gcc/rtlanal.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 82ac3afd3df..2ef3d43cfe6 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -54,6 +54,7 @@ rtx_unstable_p (x) if (code == REG) return ! (REGNO (x) == FRAME_POINTER_REGNUM + || REGNO (x) == HARD_FRAME_POINTER_REGNUM || REGNO (x) == ARG_POINTER_REGNUM || RTX_UNCHANGING_P (x)); @@ -96,7 +97,8 @@ rtx_varies_p (x) and arg pointers and not just the register number in case we have eliminated the frame and/or arg pointer and are using it for pseudos. */ - return ! (x == frame_pointer_rtx || x == arg_pointer_rtx); + return ! (x == frame_pointer_rtx || x == hard_frame_pointer_rtx + || x == arg_pointer_rtx); case LO_SUM: /* The operand 0 of a LO_SUM is considered constant @@ -132,8 +134,8 @@ rtx_addr_can_trap_p (x) case REG: /* As in rtx_varies_p, we have to use the actual rtx, not reg number. */ - return ! (x == frame_pointer_rtx || x == stack_pointer_rtx - || x == arg_pointer_rtx); + return ! (x == frame_pointer_rtx || x == hard_frame_pointer_rtx + || x == stack_pointer_rtx || x == arg_pointer_rtx); case CONST: return rtx_addr_can_trap_p (XEXP (x, 0)); -- 2.30.2