summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/reload.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2002-10-10 04:50:29 +0000
committerkan <kan@FreeBSD.org>2002-10-10 04:50:29 +0000
commit029dcab170879d3b9e9bb90bbf64e4b03a919917 (patch)
tree1d13663ad373dd43118a9b088472ac82acc3829d /contrib/gcc/reload.c
parent84c8b4559699bd65591ff9651ef6706bb8c031a4 (diff)
downloadFreeBSD-src-029dcab170879d3b9e9bb90bbf64e4b03a919917.zip
FreeBSD-src-029dcab170879d3b9e9bb90bbf64e4b03a919917.tar.gz
Use the stock 3.2.1-prerelease file.
Approved by: obrien
Diffstat (limited to 'contrib/gcc/reload.c')
-rw-r--r--contrib/gcc/reload.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/contrib/gcc/reload.c b/contrib/gcc/reload.c
index 4b331f0..bbb1f94 100644
--- a/contrib/gcc/reload.c
+++ b/contrib/gcc/reload.c
@@ -1287,12 +1287,17 @@ push_reload (in, out, inloc, outloc, class,
So add an additional reload. */
#ifdef SECONDARY_MEMORY_NEEDED
- /* If a memory location is needed for the copy, make one. */
- if (in != 0 && GET_CODE (in) == REG
- && REGNO (in) < FIRST_PSEUDO_REGISTER
- && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (REGNO (in)),
- class, inmode))
- get_secondary_mem (in, inmode, opnum, type);
+ {
+ int regnum;
+
+ /* If a memory location is needed for the copy, make one. */
+ if (in != 0
+ && ((regnum = true_regnum (in)) >= 0)
+ && regnum < FIRST_PSEUDO_REGISTER
+ && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (regnum),
+ class, inmode))
+ get_secondary_mem (in, inmode, opnum, type);
+ }
#endif
i = n_reloads;
@@ -1318,11 +1323,16 @@ push_reload (in, out, inloc, outloc, class,
n_reloads++;
#ifdef SECONDARY_MEMORY_NEEDED
- if (out != 0 && GET_CODE (out) == REG
- && REGNO (out) < FIRST_PSEUDO_REGISTER
- && SECONDARY_MEMORY_NEEDED (class, REGNO_REG_CLASS (REGNO (out)),
- outmode))
- get_secondary_mem (out, outmode, opnum, type);
+ {
+ int regnum;
+
+ if (out != 0
+ && ((regnum = true_regnum (out)) >= 0)
+ && regnum < FIRST_PSEUDO_REGISTER
+ && SECONDARY_MEMORY_NEEDED (class, REGNO_REG_CLASS (regnum),
+ outmode))
+ get_secondary_mem (out, outmode, opnum, type);
+ }
#endif
}
else
OpenPOWER on IntegriCloud