mirror of git://gcc.gnu.org/git/gcc.git
sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1.
* sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1. * sh.md (load_ra): Change insn predicate to TARGET_SH1. From-SVN: r70410
This commit is contained in:
parent
bc5ad3e6c4
commit
dce20bbc11
|
|
@ -1,3 +1,8 @@
|
||||||
|
2003-08-13 J"orn Rennecke <joern.rennecke@superh.com>
|
||||||
|
|
||||||
|
* sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1.
|
||||||
|
* sh.md (load_ra): Change insn predicate to TARGET_SH1.
|
||||||
|
|
||||||
2003-08-13 Dale Johannesen <dalej@apple.com>
|
2003-08-13 Dale Johannesen <dalej@apple.com>
|
||||||
|
|
||||||
* config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable
|
* config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable
|
||||||
|
|
|
||||||
|
|
@ -8865,9 +8865,13 @@ sh_get_pr_initial_val (void)
|
||||||
then, we end in trouble if we didn't use the register in the same
|
then, we end in trouble if we didn't use the register in the same
|
||||||
basic block before. So call get_hard_reg_initial_val now and wrap it
|
basic block before. So call get_hard_reg_initial_val now and wrap it
|
||||||
in an unspec if we might need to replace it. */
|
in an unspec if we might need to replace it. */
|
||||||
|
/* ??? We also must do this for TARGET_SH1 in general, because otherwise
|
||||||
|
combine can put the pseudo returned by get_hard_reg_initial_val into
|
||||||
|
instructions that need a general purpose registers, which will fail to
|
||||||
|
be recognized when the pseudo becomes allocated to PR. */
|
||||||
val
|
val
|
||||||
= get_hard_reg_initial_val (Pmode, TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG);
|
= get_hard_reg_initial_val (Pmode, TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG);
|
||||||
if (TARGET_SHCOMPACT && rtx_equal_function_value_matters)
|
if (TARGET_SH1)
|
||||||
return gen_rtx_UNSPEC (SImode, gen_rtvec (1, val), UNSPEC_RA);
|
return gen_rtx_UNSPEC (SImode, gen_rtvec (1, val), UNSPEC_RA);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3475,13 +3475,13 @@
|
||||||
(define_insn_and_split "load_ra"
|
(define_insn_and_split "load_ra"
|
||||||
[(set (match_operand:SI 0 "general_movdst_operand" "")
|
[(set (match_operand:SI 0 "general_movdst_operand" "")
|
||||||
(unspec:SI [(match_operand 1 "register_operand" "")] UNSPEC_RA))]
|
(unspec:SI [(match_operand 1 "register_operand" "")] UNSPEC_RA))]
|
||||||
"TARGET_SHCOMPACT"
|
"TARGET_SH1"
|
||||||
"#"
|
"#"
|
||||||
"&& ! rtx_equal_function_value_matters"
|
"&& ! rtx_equal_function_value_matters"
|
||||||
[(set (match_dup 0) (match_dup 1))]
|
[(set (match_dup 0) (match_dup 1))]
|
||||||
"
|
"
|
||||||
{
|
{
|
||||||
if (current_function_has_nonlocal_label)
|
if (TARGET_SHCOMPACT && current_function_has_nonlocal_label)
|
||||||
operands[1] = gen_rtx_MEM (SImode, return_address_pointer_rtx);
|
operands[1] = gen_rtx_MEM (SImode, return_address_pointer_rtx);
|
||||||
}")
|
}")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue