Use TARGET* macros.
authorStan Cox <coxs@gnu.org>
Sat, 16 Dec 1995 03:06:44 +0000 (03:06 +0000)
committerStan Cox <coxs@gnu.org>
Sat, 16 Dec 1995 03:06:44 +0000 (03:06 +0000)
From-SVN: r10742

gcc/config/i386/i386.md

index ff01196..70f6953 100644 (file)
 ;; actually generating RTL.  The bCOND or sCOND (emitted immediately
 ;; after the tstM or cmp) will actually emit the tstM or cmpM.
 
+;; Processor type -- this attribute must exactly match the processor_type
+;; enumeration in rs6000.h.
+
+(define_attr "cpu" "i386,i486,pentium"
+  (const (symbol_ref "ix86_cpu_attr")))
+
 (define_insn "tstsi_1"
   [(set (cc0)
        (match_operand:SI 0 "nonimmediate_operand" "rm"))]
 (define_insn ""
   [(set (match_operand:SI 0 "push_operand" "=<")
        (match_operand:SI 1 "general_operand" "g"))]
-  "TARGET_386"
+  "TARGET_PUSH_MEMORY"
   "push%L0 %1")
 
-;; On a 486, it is faster to move MEM to a REG and then push, rather than
+;; If not a 386, it is faster to move MEM to a REG and then push, rather than
 ;; push MEM directly.
 
 (define_insn ""
   [(set (match_operand:SI 0 "push_operand" "=<")
        (match_operand:SI 1 "nonmemory_operand" "ri"))]
-  "!TARGET_386 && TARGET_MOVE"
+  "!TARGET_PUSH_MEMORY && TARGET_MOVE"
   "push%L0 %1")
 
 (define_insn ""
   [(set (match_operand:SI 0 "push_operand" "=<")
        (match_operand:SI 1 "general_operand" "ri"))]
-  "!TARGET_386 && !TARGET_MOVE"
+  "!TARGET_PUSH_MEMORY && !TARGET_MOVE"
   "push%L0 %1")
 
 ;; General case of fullword move.
 (define_insn ""
   [(set (match_operand:HI 0 "push_operand" "=<")
        (match_operand:HI 1 "general_operand" "g"))]
-  "TARGET_386"
+  "TARGET_PUSH_MEMORY"
   "push%W0 %1")
 
 (define_insn ""
   [(set (match_operand:HI 0 "push_operand" "=<")
        (match_operand:HI 1 "nonmemory_operand" "ri"))]
-  "!TARGET_386 && TARGET_MOVE"
+  "!TARGET_PUSH_MEMORY && TARGET_MOVE"
   "push%W0 %1")
 
 (define_insn ""
   [(set (match_operand:HI 0 "push_operand" "=<")
        (match_operand:HI 1 "general_operand" "ri"))]
-  "!TARGET_386 && !TARGET_MOVE"
+  "!TARGET_PUSH_MEMORY && !TARGET_MOVE"
   "push%W0 %1")
 
 ;; On i486, an incl and movl are both faster than incw and movw.
   ""
   "*
 {
-  if ((!TARGET_386 || REGNO (operands[0]) == 0)
+  if ((TARGET_ZERO_EXTEND_WITH_AND || REGNO (operands[0]) == 0)
       && REG_P (operands[1]) && REGNO (operands[0]) == REGNO (operands[1]))
     {
       rtx xops[2];
   ""
   "*
 {
-  if ((!TARGET_386 || REGNO (operands[0]) == 0)
+  if ((TARGET_ZERO_EXTEND_WITH_AND || REGNO (operands[0]) == 0)
       && REG_P (operands[1]) && REGNO (operands[0]) == REGNO (operands[1]))
     {
       rtx xops[2];
   ""
   "*
 {
-  if ((!TARGET_386 || REGNO (operands[0]) == 0)
+  if ((TARGET_ZERO_EXTEND_WITH_AND || REGNO (operands[0]) == 0)
       && REG_P (operands[1]) && REGNO (operands[0]) == REGNO (operands[1]))
     {
       rtx xops[2];
       if (INTVAL (operands[2]) == 0xffff && REG_P (operands[0])
          && (! REG_P (operands[1])
              || REGNO (operands[0]) != 0 || REGNO (operands[1]) != 0)
-         && (TARGET_386 || ! rtx_equal_p (operands[0], operands[1])))
+         && (!TARGET_ZERO_EXTEND_WITH_AND || ! rtx_equal_p (operands[0], operands[1])))
        {
          /* ??? tege: Should forget CC_STATUS only if we clobber a
             remembered operand.  Fix that later.  */
          && !(REG_P (operands[1]) && NON_QI_REG_P (operands[1]))
          && (! REG_P (operands[1])
              || REGNO (operands[0]) != 0 || REGNO (operands[1]) != 0)
-         && (TARGET_386 || ! rtx_equal_p (operands[0], operands[1])))
+         && (!TARGET_ZERO_EXTEND_WITH_AND || ! rtx_equal_p (operands[0], operands[1])))
        {
          /* ??? tege: Should forget CC_STATUS only if we clobber a
             remembered operand.  Fix that later.  */
 {
   if (REG_P (operands[0]) && REGNO (operands[0]) != REGNO (operands[1]))
     {
-      if (!TARGET_386 && INTVAL (operands[2]) == 1)
+      if (TARGET_DOUBLE_WITH_ADD && INTVAL (operands[2]) == 1)
        {
          output_asm_insn (AS2 (mov%L0,%1,%0), operands);
          return AS2 (add%L0,%1,%0);
                         (const_int 1)
                         (match_operand:SI 2 "general_operand" "r"))
        (match_operand:SI 3 "const_int_operand" "n"))]
-  "TARGET_386 && GET_CODE (operands[2]) != CONST_INT"
+  "TARGET_BIT_TEST && GET_CODE (operands[2]) != CONST_INT"
   "*
 {
   CC_STATUS_INIT;
        (xor:SI (ashift:SI (const_int 1)
                           (match_operand:SI 1 "general_operand" "r"))
                (match_operand:SI 2 "general_operand" "0")))]
-  "TARGET_386 && GET_CODE (operands[1]) != CONST_INT"
+  "TARGET_BIT_TEST && GET_CODE (operands[1]) != CONST_INT"
   "*
 {
   CC_STATUS_INIT;
        (xor:SI (match_operand:SI 1 "general_operand" "0")
                (ashift:SI (const_int 1)
                           (match_operand:SI 2 "general_operand" "r"))))]
-  "TARGET_386 && GET_CODE (operands[2]) != CONST_INT"
+  "TARGET_BIT_TEST && GET_CODE (operands[2]) != CONST_INT"
   "*
 {
   CC_STATUS_INIT;