diff options
author | Andrew MacLeod <amacleod@cygnus.com> | 1999-02-22 14:11:58 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 1999-02-22 14:11:58 +0000 |
commit | 89d3d4424947aa2328d79659144f3bbad6998255 (patch) | |
tree | cf2aec9a50f27da3426d83aa75ac8d37004224c7 /gcc/rtlanal.c | |
parent | a4c6502a661a4d0a6e157e118c7be4178176f743 (diff) | |
download | gcc-89d3d4424947aa2328d79659144f3bbad6998255.zip gcc-89d3d4424947aa2328d79659144f3bbad6998255.tar.gz gcc-89d3d4424947aa2328d79659144f3bbad6998255.tar.bz2 |
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
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 10 |
1 files changed, 6 insertions, 4 deletions
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; |