(gen_highpart): If arg is function value hard reg,
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Nov 1993 06:56:12 +0000 (06:56 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Nov 1993 06:56:12 +0000 (06:56 +0000)
return a subreg of it (as in gen_lowpart_common).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6005 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/emit-rtl.c

index cc98831..3f1e995 100644 (file)
@@ -891,6 +891,9 @@ gen_highpart (mode, x)
                / UNITS_PER_WORD);
 #endif
       if (REGNO (x) < FIRST_PSEUDO_REGISTER
+         /* integrate.c can't handle parts of a return value register. */
+         && (! REG_FUNCTION_VALUE_P (x)
+             || ! rtx_equal_function_value_matters)
          /* We want to keep the stack, frame, and arg pointers special.  */
          && REGNO (x) != FRAME_POINTER_REGNUM
 #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM