m68hc11.c (m68hc11_addr_mode): New variable.
[platform/upstream/gcc.git] / gcc / ChangeLog
index f439fa0..8bc1d5a 100644 (file)
@@ -1,3 +1,181 @@
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
+       (m68hc11_mov_addr_mode): Likewise.
+       (m68hc11_override_options): Initialize them based on target.
+       (register_indirect_p): Allow a MEM for indirect addressing modes and
+       use flags to control what is allowed.
+       (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
+       supported addressing modes.
+       (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
+       (go_if_legitimate_address_internal): Likewise.
+       (m68hc11_indirect_p): Likewise and check the mode.
+       (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
+       (expand_builtin_setjmp_setup): Use
+       targetm.builtin_setjmp_frame_value instead of
+       BUILTIN_SETJMP_FRAME_VALUE.
+       * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
+       * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
+       (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
+       * target.h (gcc_target): Add builtin_setjmp_frame_value.
+       * targhooks.c (default_builtin_setjmp_frame_value): New.
+       * targhooks.h: Add a prototype for
+       default_builtin_setjmp_frame_value.
+       * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
+       TARGET_BUILTIN_SETJMP_FRAME_VALUE.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
+       sequences of moves.
+       (add peepholes): New peepholes to optimize sequences adding small
+       constants.
+       (bset peepholes): New peepholes to transform an OR in a bset form
+       (bclr peepholes): Likewise for bclr form.
+       (cmp peepholes): New peepholes to avoid register copies when comparing.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
+       to separate push from moves.
+       ("*pushdf_internal"): Likewise.
+       ("*pushsf_internal"): Likewise.
+       ("*pushsi_internal"): Likewise.
+       ("movdi_internal"): Use define_insn_and_split; non push operand.
+       ("movdf_internal"): Likewise.
+       ("movsf_internal"): Likewise.
+       ("movsi_internal"): Likewise.
+       ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
+       ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
+       ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
+       ("cmphi_z_used", "cmpqi_z_used"): Likewise.
+       ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
+       ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
+       ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
+       ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
+       ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
+       ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
+       ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
+       ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
+       ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
+       (SOFT_XY_REGNUM): Define.
+       (cmp split): Use the above instead of hard coded numbers.
+       (8-bit op split): No need to check the mode; allow Q_REG.
+       (ashift split): Adjust the first operand if it uses the SP and we
+       are pushing the shifted value.
+       (plus shift split): Fix when a source is in register D+X.
+       ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
+
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
+       comparing with Z register.
+
+2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * cfgloop.h (struct loop_desc): Removed.
+       (struct loop): Fields simple, desc and has_desc removed.
+       (simple_loop_p, count_loop_iterations): Declaration removed.
+       * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
+       (unmark_altered, blocks_invariant_registers, unmark_altered_insn
+       blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
+       invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
+       simple_loop_exit_p, variable_initial_value, variable_initial_values,
+       simple_condition_p, simple_increment, count_strange_loop_iterations,
+       inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
+       Removed.
+       * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * genattrtab.c: Don't handle MATCH_INSN.
+       * genrecog.c: Likewise.
+       * gensupport.c: Likewise.
+       * rtl.def (match_insn): Remove.
+       * doc/md.texi (match_insn, match_insn2): Remove.
+
+2004-03-02  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
+       macro results in memory allocation.
+
+2004-03-02  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
+       * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
+       %(fbsd_dynamic_linker),
+       (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
+       config/i386/freebsd.h
+       * config/arm/freebsd.h: Ditto.
+       * config/i386/freebsd.h: Ditto.
+       * config/i386/freebsd64.h: Ditto.
+       * config/ia64/freebsd.h: Ditto.
+       * config/rs6000/sysv4.h: Ditto.
+       * config/sparc/freebsd.h: Ditto.
+
+2004-03-02  Loren James Rittle  <ljrittle@acm.org>
+
+       * gcc/doc/install.texi (*-*-freebsd*): Update target information.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * rtl.def (define_combine): Remove.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Tweak formatting.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (*cmphi_h8300): Rename to
+       *cmphi_h8300_znvc.
+       (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
+
+2004-03-01  Mark Mitchell  <mark@codesourcery.com>
+
+       PR bootstrap/14356
+       * gcc.c (process_command): Remove const-qualification from argv.
+       (main): Likewise.
+
+2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
+       pushqi1_h8300hs_advanced.  Adjust its caller.
+       (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
+       Adjust its caller.
+
+2004-03-02  Nicolas Roche  <roche@act-europe.fr>
+
+       * Makefile.in (install-libgcc, install-multilib): Pass
+       mkinstalldirs var to libgcc.mk.
+
+2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
+       * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
+
+2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
+       * config/h8300/h8300.md: Split several peephole2's, each into
+       two.
+
+2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * dominance.c (recount_dominator): Handle postdominators.
+
 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.