OSDN Git Service

Undo cvs entry 1.4 "Reorg sethi_{hi,si} patterns." and add comment why.
authordevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Oct 1997 16:46:47 +0000 (16:46 +0000)
committerdevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Oct 1997 16:46:47 +0000 (16:46 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16080 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/sparc/sparc.md

index 2aac850..f45612e 100644 (file)
 \f
 ;; Esoteric move insns (lo_sum, high, pic).
 
-(define_insn "*sethi_hi"
-  [(set (match_operand:HI 0 "register_operand" "=r")
-       (high:HI (match_operand 1 "" "")))]
-  "check_pic (1)"
-  "sethi %%hi(%a1),%0"
-  [(set_attr "type" "move")
-   (set_attr "length" "1")])
-
-(define_insn "*sethi_si"
-  [(set (match_operand:SI 0 "register_operand" "=r")
-       (high:SI (match_operand 1 "" "")))]
-  "check_pic (1)"
-  "sethi %%hi(%a1),%0"
-  [(set_attr "type" "move")
-   (set_attr "length" "1")])
-
 (define_insn "*lo_sum_si"
   [(set (match_operand:SI 0 "register_operand" "=r")
        (lo_sum:SI (match_operand:SI 1 "register_operand" "r")
                                      (const_int 2)
                                      (const_int 5)))])
 
+(define_insn "*sethi_hi"
+  [(set (match_operand:HI 0 "register_operand" "=r")
+       (high:HI (match_operand 1 "" "")))]
+  "check_pic (1)"
+  "sethi %%hi(%a1),%0"
+  [(set_attr "type" "move")
+   (set_attr "length" "1")])
+
+;; This must appear after the PIC sethi so that the PIC unspec will not
+;; be matched as part of the operand.
+(define_insn "*sethi_si"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (high:SI (match_operand 1 "" "")))]
+  "check_pic (1)"
+  "sethi %%hi(%a1),%0"
+  [(set_attr "type" "move")
+   (set_attr "length" "1")])
+
 (define_insn "*lo_sum_di_sp32"
   [(set (match_operand:DI 0 "register_operand" "=r")
        (lo_sum:DI (match_operand:DI 1 "register_operand" "0")