i386.c (output_387_binary_op, [...]): Fix is_sse condition.
[gcc.git] / gcc / ChangeLog
index 7542d680cc59fff55da232914f01954ed1a7d127..52a8b929fb27aac2184abafd0d79a527b910c539 100644 (file)
@@ -1,3 +1,83 @@
+2004-12-08  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.c (output_387_binary_op,
+       ix86_prepare_fp_compare_args): Fix is_sse condition.
+
+2004-12-07  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
+       argument.
+
+       * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
+       Use EFLAGS_P only when fcomi insn should be used. Fix handling
+       of eflags_p variable. Change alt table accordingly. For non-fcomi
+       compare insn always use trailing fnstsw insn. Fix intmode
+       calculation for ficom insn.
+       (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
+       ix86_free_from_memory when "pushed" is specified.
+       (ix86_expand_branch): Change call to ix86_split_fp_branch.
+
+       * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
+       Change eflags_p parameter in call to output_fp_compare.
+       (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
+       (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
+       *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf.  Change eflags_p
+       parameter in call to output_fp_compare.
+       (*cmpfp_2_u): Remove.
+       (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
+       in call to output_fp_compare.
+       (*ficom_1): Remove insn definition and corresponding define_split.
+       (*cmpfp_si): New insn definition.
+       (*fp_jcc_8): New insn definition. Add new splitters for
+       "memory_operand" and "register_operand".
+       (define_split): Add new parameter in call to ix86_split_fp_branch.
+
+       config/i386/predicates.md (float_operator): New predicate.
+
+2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-common.c (verify_tree): Don't check code length if we know
+       we are handling tcc_unary.
+       * print_tree.c (print_node): Remove code to handle RTL
+       appearing as a part of a tree node.
+       * tree-gimple.c (recalculate_side_effects): Rename fro as len.
+       * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
+       (PROCESS_ARG): Don't refer to fro.
+       (build2_stat, build3_stat, build4_stat): Don't compute fro.
+
+2004-12-07  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/18293
+       * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
+       (expand_mult): Special case powers of two to avoid synth_mult.
+       * loop.c (product_cheap_p): Handle case where expand_mult does
+       require/generate any instructions (i.e. multiplication by zero).
+
+2004-12-07  Richard Henderson  <rth@redhat.com>
+
+       * tree-pretty-print.c (dump_array_domain): Split out from
+       dump_generic_node; fix off-by-one error on zero-based array bounds.
+       (dump_generic_node): Use it.
+       (print_declaration): Likewise.
+
+2004-12-08  Richard Guenther <richard.guenther@uni-tuebingen.de>
+
+       * doc/invoke.texi: Adjust default values for
+       large-function-growth and inline-unit-growth to match
+       params.def.  Clarify used algorithm.
+
+2004-12-07  David Mosberger  <davidm@hpl.hp.com>
+
+        PR target/18443
+        * config/ia64/ia64.c (ia64_assemble_integer): Add support for
+        emitting unaligned pointer-sized integers.
+
+2004-12-07  Steven Bosscher  <stevenb@suse.de>
+
+       PR c/18867
+       * c-typeck.c (c_start_case): Set orig_type to error_mark_node
+       when the type of the controlling expression is not a valid type.
+
 2004-12-07  Steven Bosscher  <stevenb@suse.de>
 
        PR tree-optimization/17340