OSDN Git Service

* config/i386/i386.md (SI_REG, DI_REG): New constants.
authorfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Oct 2007 21:21:28 +0000 (21:21 +0000)
committerfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Oct 2007 21:21:28 +0000 (21:21 +0000)
(strmov): Use defined constants.
(cmpstrnsi): Likewise.
* config/i386/i386.c (decide_alg): Use defined constants.
(ix86_expand_strlen): Likewise.

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

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

index 1100526..5be6f5a 100644 (file)
@@ -1,3 +1,11 @@
+2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/i386/i386.md (SI_REG, DI_REG): New constants.
+       (strmov): Use defined constants.
+       (cmpstrnsi): Likewise.
+       * config/i386/i386.c (decide_alg): Use defined constants.
+       (ix86_expand_strlen): Likewise.
+
 2007-10-12  Richard Sandiford  <rsandifo@nildram.co.uk>
 
        * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
index 681b03b..de15ff7 100644 (file)
@@ -15060,8 +15060,8 @@ decide_alg (HOST_WIDE_INT count, HOST_WIDE_INT expected_size, bool memset,
      additionally, memset wants eax and memcpy wants esi.  Don't
      consider such algorithms if the user has appropriated those
      registers for their own purposes. */
-  bool rep_prefix_usable = !(global_regs[2] || global_regs[5]
-                             || (memset ? global_regs[0] : global_regs[4]));
+  bool rep_prefix_usable = !(global_regs[CX_REG] || global_regs[DI_REG]
+                             || (memset ? global_regs[AX_REG] : global_regs[SI_REG]));
 
 #define ALG_USABLE_P(alg) (rep_prefix_usable                   \
                           || (alg != rep_prefix_1_byte         \
@@ -16022,7 +16022,7 @@ ix86_expand_strlen (rtx out, rtx src, rtx eoschar, rtx align)
       rtx unspec;
 
       /* Can't use this if the user has appropriated eax, ecx, or edi.  */
-      if (global_regs[0] || global_regs[2] || global_regs[5])
+      if (global_regs[AX_REG] || global_regs[CX_REG] || global_regs[DI_REG])
         return false;
 
       scratch2 = gen_reg_rtx (Pmode);
index 145eb95..9f90d7e 100644 (file)
   [(AX_REG                      0)
    (DX_REG                      1)
    (CX_REG                      2)
+   (SI_REG                      4)
+   (DI_REG                      5)
    (BP_REG                      6)
    (SP_REG                      7)
    (FLAGS_REG                  17)
 
   /* Can't use this if the user has appropriated esi or edi.  */
   if ((TARGET_SINGLE_STRINGOP || optimize_size)
-      && !(global_regs[4] || global_regs[5]))
+      && !(global_regs[SI_REG] || global_regs[DI_REG]))
     {
       emit_insn (gen_strmov_singleop (operands[0], operands[1],
                                      operands[2], operands[3],
   rtx addr1, addr2, out, outlow, count, countreg, align;
 
   /* Can't use this if the user has appropriated esi or edi.  */
-  if (global_regs[4] || global_regs[5])
+  if (global_regs[SI_REG] || global_regs[DI_REG])
     FAIL;
 
   out = operands[0];