summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/darwin.md
diff options
context:
space:
mode:
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-22 03:58:15 +0000
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-22 03:58:15 +0000
commit0645b79d6625f5c5f1e34d3b55b0bfbbd41fbc69 (patch)
treed6860081e6a2a506b137d064f1efde41a7f0e3cf /gcc/config/rs6000/darwin.md
parent9ea58440374b24631f156b145b4b98b207a15f85 (diff)
downloadgcc-0645b79d6625f5c5f1e34d3b55b0bfbbd41fbc69.tar.gz
gcc/
* config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL when returning call_cookie. (rs6000_function_ok_for_sibcall): Allow sibcalls via function pointers, to functions with no more vector args than the current function, and some non-local calls for ABI_V4. * config/rs6000/rs6000.md (sibcall_nonlocal_aix32, sibcall_nonlocal_aix64): Combine to .. (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls. (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine.. (sibcall_value_nonlocal_aix<mode>): ..likewise. (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls. (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie operand. * config/rs6000/darwin.md (sibcall_nonlocal_darwin64, sibcall_value_nonlocal_darwin64, sibcall_symbolic_64, sibcall_value_symbolic_64): Delete. gcc/testsuite/ * gcc.target/powerpc/ppc-pow.c: Allow for tail calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172855 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/darwin.md')
-rw-r--r--gcc/config/rs6000/darwin.md72
1 files changed, 1 insertions, 71 deletions
diff --git a/gcc/config/rs6000/darwin.md b/gcc/config/rs6000/darwin.md
index 6b192777945..e811822223a 100644
--- a/gcc/config/rs6000/darwin.md
+++ b/gcc/config/rs6000/darwin.md
@@ -1,5 +1,5 @@
/* Machine description patterns for PowerPC running Darwin (Mac OS X).
- Copyright (C) 2004, 2005, 2007, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007, 2010, 2011 Free Software Foundation, Inc.
Contributed by Apple Computer Inc.
This file is part of GCC.
@@ -370,73 +370,3 @@ You should have received a copy of the GNU General Public License
}
[(set_attr "type" "branch,branch")
(set_attr "length" "4,8")])
-
-(define_insn "*sibcall_nonlocal_darwin64"
- [(call (mem:SI (match_operand:DI 0 "symbol_ref_operand" "s,s"))
- (match_operand 1 "" ""))
- (use (match_operand 2 "immediate_operand" "O,n"))
- (use (reg:SI 65))
- (return)]
- "(DEFAULT_ABI == ABI_DARWIN)
- && (INTVAL (operands[2]) & CALL_LONG) == 0"
-{
- return "b %z0";
-}
- [(set_attr "type" "branch,branch")
- (set_attr "length" "4,8")])
-
-(define_insn "*sibcall_value_nonlocal_darwin64"
- [(set (match_operand 0 "" "")
- (call (mem:SI (match_operand:DI 1 "symbol_ref_operand" "s,s"))
- (match_operand 2 "" "")))
- (use (match_operand:SI 3 "immediate_operand" "O,n"))
- (use (reg:SI 65))
- (return)]
- "(DEFAULT_ABI == ABI_DARWIN)
- && (INTVAL (operands[3]) & CALL_LONG) == 0"
- "*
-{
- return \"b %z1\";
-}"
- [(set_attr "type" "branch,branch")
- (set_attr "length" "4,8")])
-
-
-(define_insn "*sibcall_symbolic_64"
- [(call (mem:SI (match_operand:DI 0 "call_operand" "s,c")) ; 64
- (match_operand 1 "" ""))
- (use (match_operand 2 "" ""))
- (use (reg:SI 65))
- (return)]
- "TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
- "*
-{
- switch (which_alternative)
- {
- case 0: return \"b %z0\";
- case 1: return \"b%T0\";
- default: gcc_unreachable ();
- }
-}"
- [(set_attr "type" "branch")
- (set_attr "length" "4")])
-
-(define_insn "*sibcall_value_symbolic_64"
- [(set (match_operand 0 "" "")
- (call (mem:SI (match_operand:DI 1 "call_operand" "s,c"))
- (match_operand 2 "" "")))
- (use (match_operand:SI 3 "" ""))
- (use (reg:SI 65))
- (return)]
- "TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
- "*
-{
- switch (which_alternative)
- {
- case 0: return \"b %z1\";
- case 1: return \"b%T1\";
- default: gcc_unreachable ();
- }
-}"
- [(set_attr "type" "branch")
- (set_attr "length" "4")])