aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@cygnus.com>1999-02-22 14:11:58 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>1999-02-22 14:11:58 +0000
commit89d3d4424947aa2328d79659144f3bbad6998255 (patch)
treecf2aec9a50f27da3426d83aa75ac8d37004224c7 /gcc/rtlanal.c
parenta4c6502a661a4d0a6e157e118c7be4178176f743 (diff)
downloadgcc-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.c10
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;