diff options
author | Michael Meissner <meissner@gcc.gnu.org> | 1995-05-03 18:49:09 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 1995-05-03 18:49:09 +0000 |
commit | 3595d104fa983e9760fe9c4de303993f400aca18 (patch) | |
tree | d1535e066aba822693fe48974c675972e40e28a5 /gcc | |
parent | a5a799d19cddafd70e64691c58229b9e85bf7882 (diff) | |
download | gcc-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.md | 14 |
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 |