From: Michael Meissner Date: Fri, 3 Feb 1995 22:41:38 +0000 (+0000) Subject: Do not reload reg2 under V.4 or eabi. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=911f679c133ff9640dae85a901b57f19344e277c;p=gcc.git Do not reload reg2 under V.4 or eabi. From-SVN: r8858 --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index e5ee37c2602..0593a1bbf51 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -4631,16 +4631,26 @@ "bl %z0") ;; Call to function which may be in another module. Restore the TOC -;; pointer (r2) after the call. +;; pointer (r2) after the call unless this is System V. (define_insn "" [(call (mem:SI (match_operand:SI 0 "call_operand" "l,s")) (match_operand 1 "" "fg,fg")) (clobber (match_scratch:SI 2 "=l,l"))] "" - "@ - {brl|blrl}\;{l|lwz} 2,20(1) - bl %z0\;%." + "* +{ + if (GET_CODE (operands[0]) == REG) + { +#ifndef USING_SVR4_H + return \"{brl|blrl}\;{l|lwz} 2,20(1)\"; +#else + return \"{brl|blrl}\"; +#endif + } + + return \"bl %z0\;%.\"; +}" [(set_attr "length" "8")]) (define_insn "" @@ -4657,9 +4667,19 @@ (match_operand 2 "" "fg,fg"))) (clobber (match_scratch:SI 3 "=l,l"))] "" - "@ - {brl|blrl}\;{l|lwz} 2,20(1) - bl %z1\;%." + "* +{ + if (GET_CODE (operands[1]) == REG) + { +#ifndef USING_SVR4_H + return \"{brl|blrl}\;{l|lwz} 2,20(1)\"; +#else + return \"{brl|blrl}\"; +#endif + } + + return \"bl %z1\;%.\"; +}" [(set_attr "length" "8")]) ;; Call subroutine returning any type.