aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1992-02-28 10:58:59 -0800
committerJim Wilson <wilson@gcc.gnu.org>1992-02-28 10:58:59 -0800
commit01c0e9dc38f9d8ee04f98e519cbe86e62c9add5a (patch)
tree433c0a0312748b92cb286f73bdb0739f09ee6bb8
parent400fbf9fdbf1661d3adfb124f2ed9d4aa6562979 (diff)
downloadgcc-01c0e9dc38f9d8ee04f98e519cbe86e62c9add5a.zip
gcc-01c0e9dc38f9d8ee04f98e519cbe86e62c9add5a.tar.gz
gcc-01c0e9dc38f9d8ee04f98e519cbe86e62c9add5a.tar.bz2
*** empty log message ***
From-SVN: r365
-rw-r--r--gcc/config/sparc/sparc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index d5b3ba9..38fdad0 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -620,7 +620,7 @@ legitimize_pic_address (orig, mode, reg, scratch)
if (reg == 0)
{
- if (reload_in_progress)
+ if (reload_in_progress || reload_completed)
abort ();
else
reg = gen_reg_rtx (Pmode);
@@ -631,7 +631,8 @@ legitimize_pic_address (orig, mode, reg, scratch)
/* If not during reload, allocate another temp reg here for loading
in the address, so that these instructions can be optimized
properly. */
- rtx temp_reg = (reload_in_progress ? reg : gen_reg_rtx (Pmode));
+ rtx temp_reg = ((reload_in_progress || reload_completed)
+ ? reg : gen_reg_rtx (Pmode));
emit_insn (gen_rtx (SET, VOIDmode, temp_reg,
gen_rtx (HIGH, Pmode, orig)));
@@ -664,7 +665,7 @@ legitimize_pic_address (orig, mode, reg, scratch)
if (reg == 0)
{
- if (reload_in_progress)
+ if (reload_in_progress || reload_completed)
abort ();
else
reg = gen_reg_rtx (Pmode);
@@ -684,7 +685,7 @@ legitimize_pic_address (orig, mode, reg, scratch)
{
if (SMALL_INT (offset))
return plus_constant_for_output (base, INTVAL (offset));
- else if (! reload_in_progress)
+ else if (! reload_in_progress && ! reload_completed)
offset = force_reg (Pmode, offset);
/* We can't create any new registers during reload, so use the
SCRATCH reg provided by the reload_insi pattern. */