]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Purge FIXUNS_TRUNC_LIKE_FIX_TRUNC
authorRichard Henderson <rth@redhat.com>
Tue, 24 Jul 2012 22:25:18 +0000 (15:25 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 24 Jul 2012 22:25:18 +0000 (15:25 -0700)
From-SVN: r189826

12 files changed:
gcc/ChangeLog
gcc/config/cris/cris.h
gcc/config/h8300/h8300.h
gcc/config/mn10300/mn10300.h
gcc/config/rs6000/rs6000.h
gcc/config/v850/v850.h
gcc/config/v850/v850.md
gcc/config/vax/vax.h
gcc/config/vax/vax.md
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/system.h

index ee809e011570472716677d08dbcd615d602a13bc..afc2b69d7e11b250a29f0b671c645d7b22057ca7 100644 (file)
@@ -1,3 +1,19 @@
+2012-07-24  Richard Henderson  <rth@redhat.com>
+
+       * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
+       * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
+       * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
+       * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
+       * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
+       comment reference.
+       * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
+       * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
+       (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
+       * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
+       * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
+       * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
+       * doc/tm.texi: Rebuild.
+
 2012-07-24  Richard Henderson  <rth@redhat.com>
 
        * optabs.def: New file.
index 0ed4ced31a3755e20a1507e5560fb17c4f71bcc7..646ba90b4b96f7a35dbc303bda5a867ec88c43d3 100644 (file)
@@ -1055,8 +1055,6 @@ enum cris_pic_symbol_type
 /* FIXME: Investigate CASE_VECTOR_SHORTEN_MODE to make sure HImode is not
    used when broken-.word could possibly fail (plus testcase).  */
 
-#define FIXUNS_TRUNC_LIKE_FIX_TRUNC
-
 /* This is the number of bytes that can be moved in one
    reasonably fast instruction sequence.  For CRIS, this is two
    instructions: mem => reg, reg => mem.  */
index 82e55f6628b68be666607bd9cc7419471a483991..61e0dd2f84614c02a6b7075e53cde70e6b9f389e 100644 (file)
@@ -566,10 +566,6 @@ struct cum_arg
    are unsigned.  */
 #define DEFAULT_SIGNED_CHAR 0
 
-/* This flag, if defined, says the same insns that convert to a signed fixnum
-   also convert validly to an unsigned one.  */
-#define FIXUNS_TRUNC_LIKE_FIX_TRUNC
-
 /* Max number of bytes we can move from memory to memory
    in one reasonably fast instruction.  */
 #define MOVE_MAX       (TARGET_H8300H || TARGET_H8300S ? 4 : 2)
index 79b20f5a4d8b8358465c61abd61eb3b151b8feb7..eb4f2f9f42fcf8410f035dc91f10d9550337bc92 100644 (file)
@@ -703,10 +703,6 @@ do {                                                                            \
 
 #define LOAD_EXTEND_OP(MODE) ZERO_EXTEND
 
-/* This flag, if defined, says the same insns that convert to a signed fixnum
-   also convert validly to an unsigned one.  */
-#define FIXUNS_TRUNC_LIKE_FIX_TRUNC
-
 /* Max number of bytes we can move from memory to memory
    in one reasonably fast instruction.  */
 #define MOVE_MAX       4
index 97d551c2b295b741a0ea774f9c928a346fb59f04..2c8a7dda1f6a1c52dc23ce09bb7b19d4e8a2dd8e 100644 (file)
@@ -1821,11 +1821,6 @@ do {                                                                          \
 /* Define this as 1 if `char' should by default be signed; else as 0.  */
 #define DEFAULT_SIGNED_CHAR 0
 
-/* This flag, if defined, says the same insns that convert to a signed fixnum
-   also convert validly to an unsigned one.  */
-
-/* #define FIXUNS_TRUNC_LIKE_FIX_TRUNC */
-
 /* An integer expression for the size in bits of the largest integer machine
    mode that should actually be used.  */
 
index f5b64deab2bd7c2676dd901d505c040220c85877..10ddd7b13a6f5f5c47ca57014454c3e8640cb10b 100644 (file)
@@ -812,10 +812,6 @@ typedef enum
 /* Byte and short loads sign extend the value to a word.  */
 #define LOAD_EXTEND_OP(MODE) SIGN_EXTEND
 
-/* This flag, if defined, says the same insns that convert to a signed fixnum
-   also convert validly to an unsigned one.  */
-#define FIXUNS_TRUNC_LIKE_FIX_TRUNC
-
 /* Max number of bytes we can move from memory to memory
    in one reasonably fast instruction.  */
 #define MOVE_MAX       4
index 4ac565383cdceae489f748e957cd324ced7ac2a0..f479ff6322e8da54fdec9ce3dcf5532ab412d41d 100644 (file)
 ;; float -> int
 (define_insn "fix_truncsfsi2"
   [(set (match_operand:SI 0 "register_operand" "=r")
-       (fix:SI (fix:SF (match_operand:SF 1 "register_operand" "r"))))]
+       (fix:SI (match_operand:SF 1 "register_operand" "r")))]
   "TARGET_V850E2V3"
   "trncf.sw %1,%0"
   [(set_attr "length" "4")
 
 (define_insn "fix_truncdfsi2"
   [(set (match_operand:SI 0 "register_operand" "=r")
-       (fix:SI (fix:DF (match_operand:DF 1 "even_reg_operand" "r"))))]
+       (fix:SI (match_operand:DF 1 "even_reg_operand" "r")))]
   "TARGET_V850E2V3"
   "trncf.dw %1,%0"
   [(set_attr "length" "4")
    (set_attr "cc" "none_0hit")
    (set_attr "type" "fpu")])
 
+(define_expand "fixuns_truncsfsi2"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (fix:SI (match_operand:SF 1 "register_operand" "r")))]
+  "TARGET_V850E2V3")
+
+(define_expand "fixuns_truncdfsi2"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (fix:SI (match_operand:DF 1 "even_reg_operand" "r")))]
+  "TARGET_V850E2V3")
+
 ;; int -> float
 (define_insn "floatsisf2"
   [(set (match_operand:SF 0 "register_operand" "=r")
index 37e3d108f3fd9aca7efb5f4d20fa06ee7e2eabef..9d23fd058f5f55c6f16837f4fab8c4f29d45f7ce 100644 (file)
@@ -455,10 +455,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
 /* Define this as 1 if `char' should by default be signed; else as 0.  */
 #define DEFAULT_SIGNED_CHAR 1
 
-/* This flag, if defined, says the same insns that convert to a signed fixnum
-   also convert validly to an unsigned one.  */
-#define FIXUNS_TRUNC_LIKE_FIX_TRUNC
-
 /* Max number of bytes we can move from memory to memory
    in one reasonably fast instruction.  */
 #define MOVE_MAX 8
index 32f50fd33679b9e3b4c8bae4b0eeb2102c16a245..afc31293d6dcdaa614dddb39658afa5f6a8e0223 100644 (file)
 
 (define_insn "fix_trunc<VAXfp:mode><VAXint:mode>2"
   [(set (match_operand:VAXint 0 "nonimmediate_operand" "=g")
-       (fix:VAXint (fix:VAXfp (match_operand:VAXfp 1 "general_operand" "gF"))))]
+       (fix:VAXint (match_operand:VAXfp 1 "general_operand" "gF")))]
   ""
   "cvt<VAXfp:fsfx><VAXint:isfx> %1,%0")
+
+(define_expand "fixuns_trunc<VAXfp:mode><VAXint:mode>2"
+  [(set (match_operand:VAXint 0 "nonimmediate_operand" "")
+       (fix:VAXint (match_operand:VAXfp 1 "general_operand")))]
+  "")
 \f
 ;;- All kinds of add instructions.
 
index 9f6b5dd0ff13d00139fea9ecbaac593ebedb02a0..ff743c8f19c0640dc13145444e089405b4913c87 100644 (file)
@@ -10339,12 +10339,6 @@ Define this macro if loading short immediate values into registers sign
 extends.
 @end defmac
 
-@defmac FIXUNS_TRUNC_LIKE_FIX_TRUNC
-Define this macro if the same instructions that convert a floating
-point number to a signed fixed point number also convert validly to an
-unsigned one.
-@end defmac
-
 @deftypefn {Target Hook} {unsigned int} TARGET_MIN_DIVISIONS_FOR_RECIP_MUL (enum machine_mode @var{mode})
 When @option{-ffast-math} is in effect, GCC tries to optimize
 divisions by the same divisor, by turning them into multiplications by
index df597c2a2072973f56c697246ef389998597c29a..85d9d1de0571af73e73fddce296a26e64bf7f662 100644 (file)
@@ -10205,12 +10205,6 @@ Define this macro if loading short immediate values into registers sign
 extends.
 @end defmac
 
-@defmac FIXUNS_TRUNC_LIKE_FIX_TRUNC
-Define this macro if the same instructions that convert a floating
-point number to a signed fixed point number also convert validly to an
-unsigned one.
-@end defmac
-
 @hook TARGET_MIN_DIVISIONS_FOR_RECIP_MUL
 When @option{-ffast-math} is in effect, GCC tries to optimize
 divisions by the same divisor, by turning them into multiplications by
index 572271c3c7065015115edb9b4c1af635294ce1d5..e3a72887e06c21cab040cd41f880f7986da97aae 100644 (file)
@@ -888,7 +888,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
        IDENT_ASM_OP UNALIGNED_SHORT_ASM_OP UNALIGNED_INT_ASM_OP           \
        UNALIGNED_LONG_ASM_OP UNALIGNED_DOUBLE_INT_ASM_OP                  \
        USE_COMMON_FOR_ONE_ONLY IFCVT_EXTRA_FIELDS IFCVT_INIT_EXTRA_FIELDS \
-       CASE_USE_BIT_TESTS
+       CASE_USE_BIT_TESTS FIXUNS_TRUNC_LIKE_FIX_TRUNC
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \