OSDN Git Service

* expmed.c (extract_fixed_bit_field): Remove unused code.
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Jan 2002 02:37:37 +0000 (02:37 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Jan 2002 02:37:37 +0000 (02:37 +0000)
* system.h: Poison SLOW_ZERO_EXTEND.
* doc/tm.texi: Remove.
* config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
* config/arm/arm.h: Likewise.
* config/avr/avr.h: Likewise.
* config/clipper/clipper.h: Likewise.
* config/convex/convex.h: Likewise.
* config/d30v/d30v.h: Likewise.
* config/dsp16xx/dsp16xx.h: Likewise.
* config/elxsi/elxsi.h: Likewise.
* config/fr30/fr30.h: Likewise.
* config/h8300/h8300.h: Likewise.
* config/i370/i370.h: Likewise.
* config/i386/i386.h: Likewise.
* config/m68k/m68k.h: Likewise.
* config/mips/mips.h: Likewise.
* config/ns32k/ns32k.h: Likewise.
* config/pdp11/pdp11.h: Likewise.
* config/pj/pj.h: Likewise.
* config/s390/s390.h: Likewise.
* config/sh/sh.h: Likewise.
* config/stormy16/stormy16.h: Likewise.
* config/v850/v850.h: Likewise.
* config/vax/vax.h: Likewise.
* config/we32k/we32k.h: Likewise.

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

27 files changed:
gcc/ChangeLog
gcc/config/1750a/1750a.h
gcc/config/arm/arm.h
gcc/config/avr/avr.h
gcc/config/clipper/clipper.h
gcc/config/convex/convex.h
gcc/config/d30v/d30v.h
gcc/config/dsp16xx/dsp16xx.h
gcc/config/elxsi/elxsi.h
gcc/config/fr30/fr30.h
gcc/config/h8300/h8300.h
gcc/config/i370/i370.h
gcc/config/i386/i386.h
gcc/config/m68k/m68k.h
gcc/config/mips/mips.h
gcc/config/ns32k/ns32k.h
gcc/config/pdp11/pdp11.h
gcc/config/pj/pj.h
gcc/config/s390/s390.h
gcc/config/sh/sh.h
gcc/config/stormy16/stormy16.h
gcc/config/v850/v850.h
gcc/config/vax/vax.h
gcc/config/we32k/we32k.h
gcc/doc/tm.texi
gcc/expmed.c
gcc/system.h

index 327da33..00d2102 100644 (file)
@@ -1,3 +1,32 @@
+2002-01-15  Kazu Hirata  <kazu@hxi.com>
+
+       * expmed.c (extract_fixed_bit_field): Remove unused code.
+       * system.h: Poison SLOW_ZERO_EXTEND.
+       * doc/tm.texi: Remove.
+       * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
+       * config/arm/arm.h: Likewise.
+       * config/avr/avr.h: Likewise.
+       * config/clipper/clipper.h: Likewise.
+       * config/convex/convex.h: Likewise.
+       * config/d30v/d30v.h: Likewise.
+       * config/dsp16xx/dsp16xx.h: Likewise.
+       * config/elxsi/elxsi.h: Likewise.
+       * config/fr30/fr30.h: Likewise.
+       * config/h8300/h8300.h: Likewise.
+       * config/i370/i370.h: Likewise.
+       * config/i386/i386.h: Likewise.
+       * config/m68k/m68k.h: Likewise.
+       * config/mips/mips.h: Likewise.
+       * config/ns32k/ns32k.h: Likewise.
+       * config/pdp11/pdp11.h: Likewise.
+       * config/pj/pj.h: Likewise.
+       * config/s390/s390.h: Likewise.
+       * config/sh/sh.h: Likewise.
+       * config/stormy16/stormy16.h: Likewise.
+       * config/v850/v850.h: Likewise.
+       * config/vax/vax.h: Likewise.
+       * config/we32k/we32k.h: Likewise.
+
 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
 
         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
index 21d60e9..d93d81f 100644 (file)
@@ -770,9 +770,6 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA
    move-instruction pairs, we will do a movstr or libcall instead.  */
 #define MOVE_RATIO 4
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index ef07cea..5a7b9b5 100644 (file)
@@ -2385,11 +2385,6 @@ typedef struct
    ((arm_arch4 || (MODE) == QImode) ? ZERO_EXTEND                      \
     : ((BYTES_BIG_ENDIAN && (MODE) == HImode) ? SIGN_EXTEND : NIL)))
 
-/* Define this if zero-extension is slow (more than one real instruction).
-   On the ARM, it is more than one instruction only if not fetching from
-   memory.  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index efa4762..d3a33fa 100644 (file)
@@ -1797,18 +1797,6 @@ do {                                                                         \
    subsequent accesses occur to other fields in the same word of the
    structure, but to different bytes.
 
-   `SLOW_ZERO_EXTEND'
-   Define this macro if zero-extension (of a `char' or `short' to an
-   `int') can be done faster if the destination is a register that is
-   known to be zero.
-
-   If you define this macro, you must have instruction patterns that
-   recognize RTL structures like this:
-
-   (set (strict_low_part (subreg:QI (reg:SI ...) 0)) ...)
-
-   and likewise for `HImode'.
-
    `SLOW_UNALIGNED_ACCESS'
    Define this macro to be the value 1 if unaligned accesses have a
    cost many times greater than aligned accesses, for example if they
index 473cab6..790202b 100644 (file)
@@ -796,9 +796,6 @@ do                                                                        \
 
 #define MOVE_RATIO 20
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index 7f3d41c..7222463 100644 (file)
@@ -1031,9 +1031,6 @@ enum reg_class {
    in one reasonably fast instruction.  */
 #define MOVE_MAX 8
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS (! TARGET_C2)
 
index 6b9d381..a489344 100644 (file)
@@ -3432,17 +3432,6 @@ extern const char *d30v_branch_cost_string;
    same word of the structure, but to different bytes.  */
 #define SLOW_BYTE_ACCESS 1
 
-/* Define this macro if zero-extension (of a `char' or `short' to an `int') can
-   be done faster if the destination is a register that is known to be zero.
-
-   If you define this macro, you must have instruction patterns that recognize
-   RTL structures like this:
-
-        (set (strict_low_part (subreg:QI (reg:SI ...) 0)) ...)
-
-   and likewise for `HImode'.  */
-#define SLOW_ZERO_EXTEND 0
-
 /* Define this macro to be the value 1 if unaligned accesses have a cost many
    times greater than aligned accesses, for example if they are emulated in a
    trap handler.
index a2370cf..ae2f725 100644 (file)
@@ -1565,10 +1565,6 @@ extern struct dsp16xx_frame_info current_frame_info;
    loads.  */
 #define SLOW_BYTE_ACCESS 1
 
-/* Define this macro if zero-extension (of a char or short to an int) can
-   be done faster if the destination is a register that is know to be zero.  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Define this macro if unaligned accesses have a cost many times greater than
    aligned accesses, for example if they are emulated in a trap handler */
 /* define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) */
index 6ff4d3c..d5969d4 100644 (file)
@@ -577,9 +577,6 @@ enum reg_class { NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES };
    in one reasonably fast instruction.  */
 #define MOVE_MAX 8
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index 760ab22..6bda37d 100644 (file)
@@ -1359,17 +1359,6 @@ do                                                                               \
    same word of the structure, but to different bytes.  */
 #define SLOW_BYTE_ACCESS 1
 
-/* Define this macro if zero-extension (of a `char' or `short' to an `int') can
-   be done faster if the destination is a register that is known to be zero.
-
-   If you define this macro, you must have instruction patterns that recognize
-   RTL structures like this:
-
-        (set (strict_low_part (subreg:QI (reg:SI ...) 0)) ...)
-
-   and likewise for `HImode'.  */
-#define SLOW_ZERO_EXTEND 0
-
 /*}}}*/ \f
 /*{{{  Dividing the output into sections.  */ 
 
index 3c782d4..d7d89b0 100644 (file)
@@ -965,9 +965,6 @@ struct cum_arg
 #define MOVE_MAX       (TARGET_H8300H || TARGET_H8300S ? 4 : 2)
 #define MAX_MOVE_MAX   4
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS TARGET_SLOWBYTE
 
index 7c71b0e..c2c7d4a 100644 (file)
@@ -874,10 +874,6 @@ enum reg_class
 
 #define MOVE_MAX 256
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-
-#define SLOW_ZERO_EXTEND 1
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 
 #define SLOW_BYTE_ACCESS 1
index 8f8e208..4f2b903 100644 (file)
@@ -2681,19 +2681,6 @@ do {                                                     \
 /* Nonzero if access to memory by shorts is slow and undesirable.  */
 #define SLOW_SHORT_ACCESS 0
 
-/* Define this macro if zero-extension (of a `char' or `short' to an
-   `int') can be done faster if the destination is a register that is
-   known to be zero.
-
-   If you define this macro, you must have instruction patterns that
-   recognize RTL structures like this:
-
-          (set (strict_low_part (subreg:QI (reg:SI ...) 0)) ...)
-
-   and likewise for `HImode'.  */
-
-/* #define SLOW_ZERO_EXTEND */
-
 /* Define this macro to be the value 1 if unaligned accesses have a
    cost many times greater than aligned accesses, for example if they
    are emulated in a trap handler.
index dc0835a..d97978c 100644 (file)
@@ -1529,9 +1529,6 @@ __transfer_from_trampoline ()                                     \
    in one reasonably fast instruction.  */
 #define MOVE_MAX 4
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-#define SLOW_ZERO_EXTEND
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index a6e572e..2c3588a 100644 (file)
@@ -3378,9 +3378,6 @@ while (0)
 
 #define STORE_FLAG_VALUE 1
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-#define SLOW_ZERO_EXTEND
-
 /* Define this to be nonzero if shift instructions ignore all but the low-order
    few bits.  */
 #define SHIFT_COUNT_TRUNCATED 1
index 40dc12c..159148d 100644 (file)
@@ -1116,9 +1116,6 @@ while (0)
    We have a smart movstrsi insn */
 #define MOVE_RATIO 0
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index 30bb630..2c16aa8 100644 (file)
@@ -888,9 +888,6 @@ extern int may_call_alloca;
 
 #define MOVE_MAX 2
 
-/* Zero extension is faster if the target is known to be zero */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by byte is slow and undesirable. -
 */
 #define SLOW_BYTE_ACCESS 0
index f56564d..655ae0d 100644 (file)
@@ -932,11 +932,6 @@ struct pj_args
 
 #define SHORT_IMMEDIATES_SIGN_EXTEND
 
-/* Define this if zero-extension is slow (more than one real
-   instruction).  */
-
-/* #define SLOW_ZERO_EXTEND  */
-
 /* Nonzero if access to memory by bytes is no faster than for words.  */
 #define SLOW_BYTE_ACCESS 1
 
index b21f4da..57e39aa 100644 (file)
@@ -1061,10 +1061,6 @@ CUMULATIVE_ARGS;
 
 #define MOVE_MAX 256
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-
-#define SLOW_ZERO_EXTEND
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 
 #define SLOW_BYTE_ACCESS 1
index b4b7e8e..98939de 100644 (file)
@@ -1682,10 +1682,6 @@ extern int current_function_anonymous_args;
 /* Define if loading short immediate values into registers sign extends.  */
 #define SHORT_IMMEDIATES_SIGN_EXTEND
 
-/* Define this if zero-extension is slow (more than one real instruction).
-   On the SH, it's only one instruction.  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is no faster than for words.  */
 #define SLOW_BYTE_ACCESS 1
 
index 4b125a7..bffcdfc 100644 (file)
@@ -3193,17 +3193,6 @@ do {                                                     \
    same word of the structure, but to different bytes.  */
 #define SLOW_BYTE_ACCESS 0
 
-/* Define this macro if zero-extension (of a `char' or `short' to an `int') can
-   be done faster if the destination is a register that is known to be zero.
-
-   If you define this macro, you must have instruction patterns that recognize
-   RTL structures like this:
-
-        (set (strict_low_part (subreg:QI (reg:SI ...) 0)) ...)
-
-   and likewise for `HImode'.  */
-#define SLOW_ZERO_EXTEND 0
-
 /* Define this macro to be the value 1 if unaligned accesses have a cost many
    times greater than aligned accesses, for example if they are emulated in a
    trap handler.
index 64bdc20..7e0cdb6 100644 (file)
@@ -1031,9 +1031,6 @@ do {                                                                      \
    than accessing full words.  */
 #define SLOW_BYTE_ACCESS 1
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-#define SLOW_ZERO_EXTEND 
-
 /* According expr.c, a value of around 6 should minimize code size, and
    for the V850 series, that's our primary concern.  */
 #define MOVE_RATIO 6
index 47a0866..26e767d 100644 (file)
@@ -807,9 +807,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
    in one reasonably fast instruction.  */
 #define MOVE_MAX 8
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index 98a29b4..12f105d 100644 (file)
@@ -599,9 +599,6 @@ enum reg_class { NO_REGS, GENERAL_REGS,
    in one reasonably fast instruction.  */
 #define MOVE_MAX 4
 
-/* Define this if zero-extension is slow (more than one real instruction).  */
-/* #define SLOW_ZERO_EXTEND */
-
 /* Nonzero if access to memory by bytes is slow and undesirable.  */
 #define SLOW_BYTE_ACCESS 0
 
index 360198a..c81461d 100644 (file)
@@ -5176,22 +5176,6 @@ faster than word accesses, using word accesses is preferable since it
 may eliminate subsequent memory access if subsequent accesses occur to
 other fields in the same word of the structure, but to different bytes.
 
-@findex SLOW_ZERO_EXTEND
-@item SLOW_ZERO_EXTEND
-Define this macro if zero-extension (of a @code{char} or @code{short}
-to an @code{int}) can be done faster if the destination is a register
-that is known to be zero.
-
-If you define this macro, you must have instruction patterns that
-recognize RTL structures like this:
-
-@smallexample
-(set (strict_low_part (subreg:QI (reg:SI @dots{}) 0)) @dots{})
-@end smallexample
-
-@noindent
-and likewise for @code{HImode}.
-
 @findex SLOW_UNALIGNED_ACCESS
 @item SLOW_UNALIGNED_ACCESS (@var{mode}, @var{alignment})
 Define this macro to be the value 1 if memory accesses described by the
index da9c5a9..56952c7 100644 (file)
@@ -1621,16 +1621,7 @@ extract_fixed_bit_field (tmode, op0, offset, bitsize, bitpos,
       /* Unless the msb of the field used to be the msb when we shifted,
         mask out the upper bits.  */
 
-      if (GET_MODE_BITSIZE (mode) != bitpos + bitsize
-#if 0
-#ifdef SLOW_ZERO_EXTEND
-         /* Always generate an `and' if
-            we just zero-extended op0 and SLOW_ZERO_EXTEND, since it
-            will combine fruitfully with the zero-extend.  */
-         || tmode != mode
-#endif
-#endif
-         )
+      if (GET_MODE_BITSIZE (mode) != bitpos + bitsize)
        return expand_binop (GET_MODE (op0), and_optab, op0,
                             mask_rtx (GET_MODE (op0), 0, bitsize, 0),
                             target, 1, OPTAB_LIB_WIDEN);
index 1cbfe33..08be644 100644 (file)
@@ -604,7 +604,8 @@ typedef char _Bool;
        DOESNT_NEED_UNWINDER EH_TABLE_LOOKUP OBJC_SELECTORS_WITHOUT_LABELS \
        OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR                      \
        LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC      \
-       STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE
+       STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE          \
+       SLOW_ZERO_EXTEND
 
 #endif /* IN_GCC */