From 89d3d4424947aa2328d79659144f3bbad6998255 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 22 Feb 1999 14:11:58 +0000 Subject: loop.c (libcall_other_regs): Make extern. * loop.c (libcall_other_regs): Make extern. * rtl.h (find_last_value): Add parameter to prototype. (libcall_other_reg): Add extern declaration. * rtlanal.c (find_last_value): Add another parameter to allow a definition using a hardware register to be found as well. From-SVN: r25378 --- gcc/rtlanal.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gcc/rtlanal.c') diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 41744d7..1dabc36 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -740,13 +740,15 @@ multiple_sets (insn) /* Return the last thing that X was assigned from before *PINSN. Verify that the object is not modified up to VALID_TO. If it was, if we hit a partial assignment to X, or hit a CODE_LABEL first, return X. If we - found an assignment, update *PINSN to point to it. */ + found an assignment, update *PINSN to point to it. + ALLOW_HWREG is set to 1 if hardware registers are allowed to be the src. */ rtx -find_last_value (x, pinsn, valid_to) +find_last_value (x, pinsn, valid_to, allow_hwreg) rtx x; rtx *pinsn; rtx valid_to; + int allow_hwreg; { rtx p; @@ -767,8 +769,8 @@ find_last_value (x, pinsn, valid_to) if (! modified_between_p (src, PREV_INSN (p), valid_to) /* Reject hard registers because we don't usually want to use them; we'd rather use a pseudo. */ - && ! (GET_CODE (src) == REG - && REGNO (src) < FIRST_PSEUDO_REGISTER)) + && (! (GET_CODE (src) == REG + && REGNO (src) < FIRST_PSEUDO_REGISTER) || allow_hwreg)) { *pinsn = p; return src; -- cgit v1.1