reload.c (push_reload): If WORD_REGISTER_OPERATIONS...
* reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the SUBREG_REG if the word count is unchanged, also in the input reload case. Disable non-applicable sanity checks. From-SVN: r17541
This commit is contained in:
parent
90ad3ab77d
commit
d2c92f5a43
|
@ -1,3 +1,9 @@
|
|||
Wed Jan 28 20:11:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the
|
||||
SUBREG_REG if the word count is unchanged, also in the input reload
|
||||
case. Disable non-applicable sanity checks.
|
||||
|
||||
Wed Jan 28 20:08:26 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config/t-svr4 (TARGET_LIBGCC2_CFLAGS): Add -fPIC.
|
||||
|
|
11
gcc/reload.c
11
gcc/reload.c
|
@ -885,6 +885,13 @@ push_reload (in, out, inloc, outloc, class,
|
|||
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))))
|
||||
&& INTEGRAL_MODE_P (GET_MODE (SUBREG_REG (in)))
|
||||
&& LOAD_EXTEND_OP (GET_MODE (SUBREG_REG (in))) != NIL)
|
||||
#endif
|
||||
#ifdef WORD_REGISTER_OPERATIONS
|
||||
|| ((GET_MODE_SIZE (inmode)
|
||||
< GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))))
|
||||
&& ((GET_MODE_SIZE (inmode) - 1) / UNITS_PER_WORD ==
|
||||
((GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) - 1)
|
||||
/ UNITS_PER_WORD)))
|
||||
#endif
|
||||
))
|
||||
|| (GET_CODE (SUBREG_REG (in)) == REG
|
||||
|
@ -923,7 +930,7 @@ push_reload (in, out, inloc, outloc, class,
|
|||
in_subreg_loc = inloc;
|
||||
inloc = &SUBREG_REG (in);
|
||||
in = *inloc;
|
||||
#ifndef LOAD_EXTEND_OP
|
||||
#if ! defined (LOAD_EXTEND_OP) && ! defined (WORD_REGISTER_OPERATIONS)
|
||||
if (GET_CODE (in) == MEM)
|
||||
/* This is supposed to happen only for paradoxical subregs made by
|
||||
combine.c. (SUBREG (MEM)) isn't supposed to occur other ways. */
|
||||
|
@ -1027,7 +1034,7 @@ push_reload (in, out, inloc, outloc, class,
|
|||
out_subreg_loc = outloc;
|
||||
outloc = &SUBREG_REG (out);
|
||||
out = *outloc;
|
||||
#ifndef LOAD_EXTEND_OP
|
||||
#if ! defined (LOAD_EXTEND_OP) && ! defined (WORD_REGISTER_OPERATIONS)
|
||||
if (GET_CODE (out) == MEM
|
||||
&& GET_MODE_SIZE (GET_MODE (out)) > GET_MODE_SIZE (outmode))
|
||||
abort ();
|
||||
|
|
Loading…
Reference in New Issue