Commit 65e8fe02 by Richard Kenner

(gen_lowpart_common...

(gen_lowpart_common, gen_highpart, operand_subword): Test input
against RTX for FP, AP, and SP, not same register number.

From-SVN: r6795
parent d6a5ac33
...@@ -625,11 +625,11 @@ gen_lowpart_common (mode, x) ...@@ -625,11 +625,11 @@ gen_lowpart_common (mode, x)
|| ! rtx_equal_function_value_matters) || ! rtx_equal_function_value_matters)
/* We want to keep the stack, frame, and arg pointers /* We want to keep the stack, frame, and arg pointers
special. */ special. */
&& REGNO (x) != FRAME_POINTER_REGNUM && x != frame_pointer_rtx
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
&& REGNO (x) != ARG_POINTER_REGNUM && x != arg_pointer_rtx
#endif #endif
&& REGNO (x) != STACK_POINTER_REGNUM) && x != stack_pointer_rtx)
return gen_rtx (REG, mode, REGNO (x) + word); return gen_rtx (REG, mode, REGNO (x) + word);
else else
return gen_rtx (SUBREG, mode, x, word); return gen_rtx (SUBREG, mode, x, word);
...@@ -935,11 +935,11 @@ gen_highpart (mode, x) ...@@ -935,11 +935,11 @@ gen_highpart (mode, x)
&& (! REG_FUNCTION_VALUE_P (x) && (! REG_FUNCTION_VALUE_P (x)
|| ! rtx_equal_function_value_matters) || ! rtx_equal_function_value_matters)
/* We want to keep the stack, frame, and arg pointers special. */ /* We want to keep the stack, frame, and arg pointers special. */
&& REGNO (x) != FRAME_POINTER_REGNUM && x != frame_pointer_rtx
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
&& REGNO (x) != ARG_POINTER_REGNUM && x != arg_pointer_rtx
#endif #endif
&& REGNO (x) != STACK_POINTER_REGNUM) && x != stack_pointer_rtx)
return gen_rtx (REG, mode, REGNO (x) + word); return gen_rtx (REG, mode, REGNO (x) + word);
else else
return gen_rtx (SUBREG, mode, x, word); return gen_rtx (SUBREG, mode, x, word);
...@@ -1026,11 +1026,11 @@ operand_subword (op, i, validate_address, mode) ...@@ -1026,11 +1026,11 @@ operand_subword (op, i, validate_address, mode)
&& rtx_equal_function_value_matters) && rtx_equal_function_value_matters)
/* We want to keep the stack, frame, and arg pointers /* We want to keep the stack, frame, and arg pointers
special. */ special. */
|| REGNO (op) == FRAME_POINTER_REGNUM || op == frame_pointer_rtx
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
|| REGNO (op) == ARG_POINTER_REGNUM || op == arg_pointer_rtx
#endif #endif
|| REGNO (op) == STACK_POINTER_REGNUM) || op == stack_pointer_rtx)
return gen_rtx (SUBREG, word_mode, op, i); return gen_rtx (SUBREG, word_mode, op, i);
else else
return gen_rtx (REG, word_mode, REGNO (op) + i); return gen_rtx (REG, word_mode, REGNO (op) + i);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment