aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1995-05-03 18:49:09 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1995-05-03 18:49:09 +0000
commit3595d104fa983e9760fe9c4de303993f400aca18 (patch)
treed1535e066aba822693fe48974c675972e40e28a5 /gcc
parenta5a799d19cddafd70e64691c58229b9e85bf7882 (diff)
downloadgcc-3595d104fa983e9760fe9c4de303993f400aca18.zip
gcc-3595d104fa983e9760fe9c4de303993f400aca18.tar.gz
gcc-3595d104fa983e9760fe9c4de303993f400aca18.tar.bz2
Fix abs not to use powerpc instructions on -mcpu=common
From-SVN: r9569
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.md14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index a7c28a4..629eeec 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -1044,7 +1044,12 @@
(abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0")))
(clobber (match_scratch:SI 2 "=&r,&r"))]
"!TARGET_POWER"
- "{srai|srawi} %2,%1,31\;xor %0,%2,%1\;subf %0,%2,%0"
+ "*
+{
+ return (TARGET_POWERPC)
+ ? \"{srai|srawi} %2,%1,31\;xor %0,%2,%1\;subf %0,%2,%0\"
+ : \"{srai|srawi} %2,%1,31\;xor %0,%2,%1\;{sf|subfc} %0,%2,%0\";
+}"
[(set_attr "length" "12")])
(define_split
@@ -1068,7 +1073,12 @@
(neg:SI (abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0"))))
(clobber (match_scratch:SI 2 "=&r,&r"))]
"!TARGET_POWER"
- "{srai|srawi} %2,%1,31\;xor %0,%2,%1\;subf %0,%0,%2"
+ "*
+{
+ return (TARGET_POWERPC)
+ ? \"{srai|srawi} %2,%1,31\;xor %0,%2,%1\;subf %0,%0,%2\"
+ : \"{srai|srawi} %2,%1,31\;xor %0,%2,%1\;{sf|subfc} %0,%0,%2\";
+}"
[(set_attr "length" "12")])
(define_split