This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PowerPC PIC code addressibility tweak


	The PowerPC architecture recommends a preferred form for a
branch-and-link instruction that will not return, but used to obtain
addressibility for PIC code.  This form does not corrupt the link register
history stack.  Darwin already uses this form.  This patch converts SVR4
PIC code to use this form as well, as pointed out by Tege.

David


	* config/rs6000/rs6000.md (load_toc_v4_PIC_1): Use preferred form
	for addressibility.
	(load_toc_v4_PIC_1b): Same.

Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.218
diff -c -p -r1.218 rs6000.md
*** rs6000.md	19 Oct 2002 04:36:30 -0000	1.218
--- rs6000.md	30 Oct 2002 15:52:10 -0000
***************
*** 10272,10278 ****
  	(match_operand:SI 1 "immediate_operand" "s"))
     (unspec [(match_dup 1)] 7)]
    "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2"
!   "bl %1\\n%1:"
    [(set_attr "type" "branch")
     (set_attr "length" "4")])
  
--- 10272,10278 ----
  	(match_operand:SI 1 "immediate_operand" "s"))
     (unspec [(match_dup 1)] 7)]
    "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2"
!   "bcl 20,31,%1\\n%1:"
    [(set_attr "type" "branch")
     (set_attr "length" "4")])
  
***************
*** 10281,10287 ****
  	(match_operand:SI 1 "immediate_operand" "s"))
     (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")] 6)]
    "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2"
!   "bl %1\\n\\t.long %2-%1+4\\n%1:"
    [(set_attr "type" "branch")
     (set_attr "length" "8")])
  
--- 10281,10287 ----
  	(match_operand:SI 1 "immediate_operand" "s"))
     (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")] 6)]
    "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2"
!   "bcl 20,31,%1\\n\\t.long %2-%1+4\\n%1:"
    [(set_attr "type" "branch")
     (set_attr "length" "8")])
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]