diff options
author | Richard Stallman <rms@gnu.org> | 1993-11-15 00:20:51 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-11-15 00:20:51 +0000 |
commit | 0ba9317ecc6d0bed7027eb52e45cfcf070433527 (patch) | |
tree | bf36f5e311493cc1285b60de67431157d9196224 /gcc | |
parent | b037a230c51759893d294e5e82bce98e199c59c1 (diff) | |
download | gcc-0ba9317ecc6d0bed7027eb52e45cfcf070433527.zip gcc-0ba9317ecc6d0bed7027eb52e45cfcf070433527.tar.gz gcc-0ba9317ecc6d0bed7027eb52e45cfcf070433527.tar.bz2 |
(push_reload): Allow RELOAD_FOR_INPUT with a secondary
reload the same class as the input if the modes differ.
From-SVN: r6089
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index af4ff98..2c03164 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1019,9 +1019,14 @@ push_reload (in, out, inloc, outloc, class, The convention is that secondary input reloads are valid only if the secondary_class is different from class. If you have such a case, you can not use secondary reloads, you must work around - the problem some other way. */ + the problem some other way. - if (type == RELOAD_FOR_INPUT && secondary_class == class) + Allow this when secondary_mode is not inmode and assume that + the generated code handles this case (it does on the Alpha, which + is the only place this currently happens). */ + + if (type == RELOAD_FOR_INPUT && secondary_class == class + && secondary_mode == inmode) abort (); /* If we need a tertiary reload, see if we have one we can reuse |