aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@redhat.com>2002-02-15 12:18:49 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2002-02-15 12:18:49 +0000
commit05fa709d380403048f551d2e975e9ff6ecb9571e (patch)
tree53efd3dea9d361e817a749601de99f8dd4823f5d /gcc
parent6d010d53c18330c971d818c592cbf789ccaf744b (diff)
downloadgcc-05fa709d380403048f551d2e975e9ff6ecb9571e.zip
gcc-05fa709d380403048f551d2e975e9ff6ecb9571e.tar.gz
gcc-05fa709d380403048f551d2e975e9ff6ecb9571e.tar.bz2
reload.c (find_dummy_reload): Check that an output register is valid for its mode.
* reload.c (find_dummy_reload): Check that an output register is valid for its mode. From-SVN: r49787
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 82649c55..5607a0b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * reload.c (find_dummy_reload): Check that an output register
+ is valid for its mode.
+
2002-02-14 Alexandre Oliva <aoliva@redhat.com>
* combine.c (known_cond): After replacing the REG of a SUBREG, try
diff --git a/gcc/reload.c b/gcc/reload.c
index 9b8cdc9..97db874 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -1879,6 +1879,7 @@ find_dummy_reload (real_in, real_out, inloc, outloc,
*inloc = const0_rtx;
if (regno < FIRST_PSEUDO_REGISTER
+ && HARD_REGNO_MODE_OK (regno, outmode)
&& ! refers_to_regno_for_reload_p (regno, regno + nwords,
PATTERN (this_insn), outloc))
{