OSDN Git Service

(cmpxf*): Allow for (compare (reg:XF) (mem:XF)).
authorcoxs <coxs@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Feb 1996 16:47:21 +0000 (16:47 +0000)
committercoxs <coxs@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Feb 1996 16:47:21 +0000 (16:47 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11383 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/i386/i386.md

index d8b7522..a83e1e7 100644 (file)
 (define_insn ""
   [(set (cc0)
        (match_operator 2 "VOIDmode_compare_op"
-                       [(match_operand:XF 0 "register_operand" "f")
-                        (match_operand:XF 1 "register_operand" "f")]))
-   (clobber (match_scratch:HI 3 "=a"))]
+                       [(match_operand:XF 0 "nonimmediate_operand" "f,fm")
+                        (match_operand:XF 1 "nonimmediate_operand" "fm,f")]))
+   (clobber (match_scratch:HI 3 "=a,a"))]
   "TARGET_80387
    && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
   "* return output_float_compare (insn, operands);")
@@ -5605,10 +5605,12 @@ to memory, but better safe than sorry.  */
 
 (define_expand "casesi"
   [(set (match_dup 5)
-       (minus:SI (match_operand:SI 0 "general_operand" "")
+       (match_operand:SI 0 "general_operand" ""))
+   (set (match_dup 6)
+       (minus:SI (match_dup 5)
                  (match_operand:SI 1 "general_operand" "")))
    (set (cc0)
-       (compare:CC (match_dup 5)
+       (compare:CC (match_dup 6)
                    (match_operand:SI 2 "general_operand" "")))
    (set (pc)
        (if_then_else (gtu (cc0)
@@ -5618,14 +5620,15 @@ to memory, but better safe than sorry.  */
    (parallel
     [(set (pc)
          (minus:SI (reg:SI 3)
-                   (mem:SI (plus:SI (mult:SI (match_dup 5)
+                   (mem:SI (plus:SI (mult:SI (match_dup 6)
                                              (const_int 4))
                                     (label_ref (match_operand 3 "" ""))))))
-     (clobber (match_scratch:SI 6 ""))])]
+     (clobber (match_scratch:SI 7 ""))])]
   "flag_pic"
   "
 {
   operands[5] = gen_reg_rtx (SImode);
+  operands[6] = gen_reg_rtx (SImode);
   current_function_uses_pic_offset_table = 1;
 }")