diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-03-18 16:58:30 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-03-18 16:58:30 -0500 |
commit | 94bafba74145e6735ecad4e0ee5651c70aea0201 (patch) | |
tree | e2dca88fa122653f178d8e4787957fb24295f532 /gcc/reload.c | |
parent | 64bf47a22d930b3bf5422bffb6b0f9ab395f52a9 (diff) | |
download | gcc-94bafba74145e6735ecad4e0ee5651c70aea0201.zip gcc-94bafba74145e6735ecad4e0ee5651c70aea0201.tar.gz gcc-94bafba74145e6735ecad4e0ee5651c70aea0201.tar.bz2 |
(push_reload): Reload a SUBREG if paradoxical and class is
CLASS_CANNOT_CHANGE_SIZE.
From-SVN: r9207
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 4ba5627..12dfc49 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -800,6 +800,9 @@ push_reload (in, out, inloc, outloc, class, and M1 is not the same size as M2. */ if (in != 0 && GET_CODE (in) == SUBREG +#ifdef CLASS_CANNOT_CHANGE_SIZE + && class != CLASS_CANNOT_CHANGE_SIZE +#endif && (CONSTANT_P (SUBREG_REG (in)) || GET_CODE (SUBREG_REG (in)) == PLUS || strict_low @@ -895,6 +898,9 @@ push_reload (in, out, inloc, outloc, class, (except in the case of STRICT_LOW_PART, and in that case the constraint should label it input-output.) */ if (out != 0 && GET_CODE (out) == SUBREG +#ifdef CLASS_CANNOT_CHANGE_SIZE + && class != CLASS_CANNOT_CHANGE_SIZE +#endif && (CONSTANT_P (SUBREG_REG (out)) || strict_low || (((GET_CODE (SUBREG_REG (out)) == REG |