summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/altivec.md
diff options
context:
space:
mode:
authorfjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-18 16:33:10 +0000
committerfjahanian <fjahanian@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-18 16:33:10 +0000
commitb3a89f0605112c924550fcc581a7fa302f9b9e54 (patch)
treee13da96e33e66d0dea4fc8d0f78c6229bda50900 /gcc/config/rs6000/altivec.md
parent7150d7021c13afe1b8373a462a851037263fda2f (diff)
downloadgcc-b3a89f0605112c924550fcc581a7fa302f9b9e54.tar.gz
save_world/rest_world for ppc-darwin.
Approved by Geoff Keating. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86191 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/altivec.md')
-rw-r--r--gcc/config/rs6000/altivec.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index 6d127b4e204..ff58d8e3fa8 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -295,6 +295,28 @@
}"
[(set_attr "type" "*")])
+(define_insn "*save_world"
+ [(match_parallel 0 "save_world_operation"
+ [(clobber (match_operand:SI 1 "register_operand" "=l"))
+ (use (match_operand:SI 2 "call_operand" "s"))])]
+ "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && TARGET_32BIT"
+ {
+ return "bl %z2";
+ }
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+
+(define_insn "*restore_world"
+ [(match_parallel 0 "restore_world_operation"
+ [(return)
+ (use (match_operand:SI 1 "register_operand" "l"))
+ (use (match_operand:SI 2 "call_operand" "s"))
+ (clobber (match_operand:SI 3 "gpc_reg_operand" "=r"))])]
+ "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && TARGET_32BIT"
+ {
+ return "b %z2";
+ })
+
;; Simple binary operations.
(define_insn "addv16qi3"