--- a/gcc/config/sh/sh.md (revision 233324) +++ b/gcc/config/sh/sh.md (working copy) @@ -10476,7 +10476,7 @@ (call (mem:SI (match_operand:SI 1 "symbol_ref_operand" "")) (match_operand 2 "" ""))) (use (reg:SI FPSCR_MODES_REG)) - (clobber (match_scratch:SI 3 "=&k")) + (clobber (reg:SI R1_REG)) (return)] "TARGET_SH2 && !TARGET_FDPIC" "#" @@ -10491,6 +10495,8 @@ rtx lab = PATTERN (gen_call_site ()); rtx call_insn; + operands[3] = gen_rtx_REG (SImode, R1_REG); + sh_expand_sym_label2reg (operands[3], operands[1], lab, true); call_insn = emit_call_insn (gen_sibcall_valuei_pcrel (operands[0], operands[3], @@ -10511,7 +10519,7 @@ (match_operand 2))) (use (reg:SI FPSCR_MODES_REG)) (use (reg:SI PIC_REG)) - (clobber (match_scratch:SI 3 "=k")) + (clobber (reg:SI R1_REG)) (return)] "TARGET_SH2 && TARGET_FDPIC" "#" @@ -10520,6 +10528,8 @@ { rtx lab = PATTERN (gen_call_site ()); + operands[3] = gen_rtx_REG (SImode, R1_REG); + sh_expand_sym_label2reg (operands[3], operands[1], lab, true); rtx i = emit_call_insn (gen_sibcall_valuei_pcrel_fdpic (operands[0], operands[3],