m68hc11.c (m68hc11_addr_mode): New variable.
[platform/upstream/gcc.git] / gcc / ChangeLog
index a16b583..8bc1d5a 100644 (file)
@@ -1,3 +1,407 @@
+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.
+       (NUM_SYMBOL_TYPES): Likewise.
+       (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
+       (mips_unspec_address): Declare.
+       (mips_gotoff_page, mips_gotoff_global): Delete.
+       * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
+       * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
+       (mips_symbolic_constant_p, mips_symbolic_address_p)
+       (mips_symbol_insns): Handle new symbol types.
+       (general_symbolic_operand): New predicate.
+       (mips_unspec_address): Make extern.
+       (mips_gotoff_page, mips_gotoff_global): Delete.
+       (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
+       Handle new symbol types.
+       * config/mips/mips.md (*lea_high64, *lea64): New patterns.
+       (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
+       mips_unspec_address directly.
+       * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
+       the documentation of -mexplicit-relocs.
+
+2004-03-01  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (fold): An equality comparison of a non-weak object
+       against zero has a known result.  Similarly an equality comparison
+       of the address of two non-weak, unaliased symbols has a known result.
+       * ggc-page.c (struct page_entry): New field PREV.
+       (ggc_alloc): Update PREV field appropriately.
+       (sweep_pages): Likewise.
+       (ggc_free): Likewise.  Use PREV field rather than loop to
+       improve ggc_free performance.
+2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_output_division): Use the division
+       instruction to fill the delay slot of a zero check.
+       (mips_idiv_insns): Adjust accordingly.
+
+2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config.gcc: Create a default tmake_file for linux, and use
+       it in all but two linux clauses.  Comment those two.
+
+2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       * combine.c (try_combine):  Do not refer to is_replaced.
+       (gen_lowpart_for_combine):  Perverse subregs now have a
+       more politically correct name.
+       * cse.c (cse_insn): Likewise.
+       * jump.c: Fix bogus reference to delete_insn.
+
+2004-02-29  Mark Mitchell  <mark@codesourcery.com>
+
+       PR debug/14328
+       * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
+       constants as signed values.
+
+       PR middle-end/13448
+       * c-tree.h (readonly_warning): Rename to ...
+       (readonly_error): ... this.
+       * c-typeck.c (build_unary_op): Adjust accordingly.
+       (readonly_warning): Rename to ...
+       (readonly_error): ... this and issue errors, not warnings.
+       (build_modify_expr): Call readonly_error, not readonly_warning.
+       (c_expand_asm_operands): Likewise.
+       * tree-inline.c (optimize_inline_calls): Do not inline functions
+       after errors have occurred.
+
+2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Rearrange some threading code for clarity;
+       add section comment.
+       * configure: Regenerate.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
+       typos.
+       * doc/cppopts.texi: Fix a typo.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/i386/i386.md: Fix formatting.
+
+2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Add some comments delineating sections of code.
+
+       * doc/install.texi: Note that libada uses autoconf 2.57 also.
+
+       * doc/install.texi: Fix idiot typo in previous commit.
+
+       * doc/install.texi: Update for conversion of intl to autoconf 2.57.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Add comments about peephole2's.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Tweak operand numbers of some
+       peephole2's.
+
+2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md: Tweak comments about peephole2's.
+
+2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
+
+       PR middle-end/14203
+       * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
+       instead of testing whether DECL_RTL is not NULL.
+
+2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/sh/sh.c: Fix formatting.
+
+2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/sh/sh.c: Convert to ISO-C.
+
+2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
+       
+       * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
+       my previous patch.
+
+       * config/darwin.h (machopic_finish): Output stub even if the
+       symbol is already defined.
+
+2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
+
+2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * genattr.c (main): Don't define
+       TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
+       * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
+       (DFA_PIPELINE_INTERFACE): Likewise.
+       * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
+       (DFA_PIPELINE_INTERFACE): Likewise.
+
+2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (tstsi, tstdi): Delete.
+
+2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+       * config/mips/mips.c (override_options): Remove an obsolete 
+       duplicate definition of the "e" constraint.
+       * config/mips/mips.h: Update a comment accordingly.
+
+2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+       * config/mips/mips.md: Complete the unfinished R4000
+       multiply/shift errata workaround.  Improve documentation.
+       (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
+       has a hilo hazard.
+       (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
+       (muldi3, muldi3_internal): Likewise.
+       (muldi3_internal2): Remove, replacing with...
+       (muldi3_mult3, muldi3_r4000): ...these new patterns.
+       (mulsidi3): Take the errata into account.
+       (mulsidi3_32bit): Remove, replacing with...
+       (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
+       (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
+       (umulsidi3): Take the errata into account.
+       (umulsidi3_32bit): Remove, replacing with..
+       (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
+       (umulsi3_highpart, umulsi3_highpart_internal): Disable if
+       TARGET_FIX_R4000.
+       (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
+       (smuldi3_highpart, umuldi3_highpart): Likewise.
+       * doc/invoke.texi: Document the errata workaround.
+
+2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+       * config/mips/mips-protos.h (mips_idiv_insns): Declare.
+       * config/mips/mips.h (MASK_FIX_SB1): Bump.
+       (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
+       (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
+       * config/mips/mips.c (mips_idiv_insns): New function.
+       (override_options): Make -march=r4000 imply -mfix-r4000 by default.
+       (mips_output_division): Add a workaround for the R4000 divide/shift
+       errata.
+       * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
+       the length of an "idiv" instruction.
+       * doc/invoke.texi: Document the new switches.
+
+2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
+       TARGET_SCHED_IS_COSTLY_DEPENDENCE.
+
+2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR optimization/14229
+       * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
+
+2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * fold-const.c (fold): Strip NOPs that change the signedness
+       for RSHIFT too.  Expand comment.
+
+2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       PR optimization/7871
+       * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
+       from or to call insns.
+
+2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR optimization/7871
+       * flow.c (propagate_one_insn): Interpret calls as setting global
+       registers, not merely clobbering them.
+
+2004-02-27  Dale Johannesen  <dalej@apple.com>
+
+       * config/darwin.c (machopic_output_possible_stub_label):  Remove.
+       config/darwin-protos.h:  Ditto.
+       config/darwin.h:  Remove call to it.
+       * combine.c (distribute_notes): Do not place a REG_DEAD note
+       when value is both set and used.
+
 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300