|
@@ -0,0 +1,39 @@
|
|
|
+--- 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],
|
|
|
+
|