OSDN Git Service

* config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Oct 2009 15:12:00 +0000 (15:12 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Oct 2009 15:12:00 +0000 (15:12 +0000)
*lea_2_rex64): Move before *add<mode>_1 pattern.

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

gcc/ChangeLog
gcc/config/i386/i386.md

index 78ae6dd..2893556 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
+       *lea_2_rex64): Move before *add<mode>_1 pattern.
+
 2009-10-07  Jan Hubicka  <jh@suse.cz>
 
        * collect2.c (main): Add -fno-whole-program.
@@ -87,7 +92,7 @@
        (maybe_add_dllexport) New function.
        (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
        to class members.
-       
+
 2009-10-07  Ben Elliston  <bje@au.ibm.com>
 
        * config/rs6000/a2.md: Remove duplicated lines.
index d6816ce..d24f7ec 100644 (file)
   [(set_attr "type" "alu")
    (set_attr "mode" "<MODE>")])
 
+(define_insn "*lea_1_rex64"
+  [(set (match_operand:DI 0 "register_operand" "=r")
+       (match_operand:DI 1 "no_seg_address_operand" "p"))]
+  "TARGET_64BIT"
+  "lea{q}\t{%a1, %0|%0, %a1}"
+  [(set_attr "type" "lea")
+   (set_attr "mode" "DI")])
+
+(define_insn "*lea_1"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (match_operand:SI 1 "no_seg_address_operand" "p"))]
+  "!TARGET_64BIT"
+  "lea{l}\t{%a1, %0|%0, %a1}"
+  [(set_attr "type" "lea")
+   (set_attr "mode" "SI")])
+
+(define_insn "*lea_1_zext"
+  [(set (match_operand:DI 0 "register_operand" "=r")
+       (zero_extend:DI
+        (subreg:SI (match_operand:DI 1 "no_seg_address_operand" "p") 0)))]
+  "TARGET_64BIT"
+  "lea{l}\t{%a1, %k0|%k0, %a1}"
+  [(set_attr "type" "lea")
+   (set_attr "mode" "SI")])
+
+(define_insn "*lea_2_rex64"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (subreg:SI (match_operand:DI 1 "no_seg_address_operand" "p") 0))]
+  "TARGET_64BIT"
+  "lea{l}\t{%a1, %0|%0, %a1}"
+  [(set_attr "type" "lea")
+   (set_attr "mode" "SI")])
+
 (define_insn "*add<mode>_1"
   [(set (match_operand:SWI48 0 "nonimmediate_operand" "=r,rm,r,r")
        (plus:SWI48
   [(set_attr "type" "alu")
    (set_attr "mode" "QI")])
 
-(define_insn "*lea_1_rex64"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (match_operand:DI 1 "no_seg_address_operand" "p"))]
-  "TARGET_64BIT"
-  "lea{q}\t{%a1, %0|%0, %a1}"
-  [(set_attr "type" "lea")
-   (set_attr "mode" "DI")])
-
-(define_insn "*lea_1"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (match_operand:SI 1 "no_seg_address_operand" "p"))]
-  "!TARGET_64BIT"
-  "lea{l}\t{%a1, %0|%0, %a1}"
-  [(set_attr "type" "lea")
-   (set_attr "mode" "SI")])
-
-(define_insn "*lea_1_zext"
-  [(set (match_operand:DI 0 "register_operand" "=r")
-       (zero_extend:DI
-        (subreg:SI (match_operand:DI 1 "no_seg_address_operand" "p") 0)))]
-  "TARGET_64BIT"
-  "lea{l}\t{%a1, %k0|%k0, %a1}"
-  [(set_attr "type" "lea")
-   (set_attr "mode" "SI")])
-
-(define_insn "*lea_2_rex64"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (subreg:SI (match_operand:DI 1 "no_seg_address_operand" "p") 0))]
-  "TARGET_64BIT"
-  "lea{l}\t{%a1, %0|%0, %a1}"
-  [(set_attr "type" "lea")
-   (set_attr "mode" "SI")])
-
 ;; The lea patterns for non-Pmodes needs to be matched by
 ;; several insns converted to real lea by splitters.