OSDN Git Service

* config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Mar 2004 04:13:39 +0000 (04:13 +0000)
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Mar 2004 04:13:39 +0000 (04:13 +0000)
        for little endian.
        ("ashrdi3_no_power"): Disable for little endian.
(ashrdi3): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79092 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 6608c99..e41b0c9 100644 (file)
@@ -1,3 +1,10 @@
+2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
+        * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
+        for little endian.
+        ("ashrdi3_no_power"): Disable for little endian.
+       (ashrdi3): Same.
+
 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
index 29b36d6..4acf056 100644 (file)
   [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
        (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
                     (match_operand:SI 2 "const_int_operand" "M,i")))]
-  "TARGET_32BIT && !TARGET_POWERPC64 && !TARGET_POWER"
+  "TARGET_32BIT && !TARGET_POWERPC64 && !TARGET_POWER && WORDS_BIG_ENDIAN"
   "@
    {srai|srawi} %0,%1,31\;{srai|srawi} %L0,%1,%h2
    {sri|srwi} %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;{srai|srawi} %0,%1,%h2"
   [(set (match_operand:DI 0 "gpc_reg_operand" "")
        (ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "")
                     (match_operand:SI 2 "reg_or_cint_operand" "")))]
-  ""
+  "WORDS_BIG_ENDIAN"
   "
 {
   if (TARGET_POWERPC64)
       emit_insn (gen_ashrdi3_power (operands[0], operands[1], operands[2]));
       DONE;
     }
-  else if (TARGET_32BIT && GET_CODE (operands[2]) == CONST_INT)
+  else if (TARGET_32BIT && GET_CODE (operands[2]) == CONST_INT
+          && WORDS_BIG_ENDIAN)
     {
       emit_insn (gen_ashrdi3_no_power (operands[0], operands[1], operands[2]));
       DONE;