OSDN Git Service

* arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 8526cfb..757d762 100644 (file)
@@ -1,3 +1,232 @@
+2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
+
+2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
+
+       * doc/install.texi: Note status of -fnew-ra.
+
+2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR middle-end/14470
+       * expr.c (store_expr): Call emit_queue before generating the move
+       from the temporary to the original target.  Protect the temporary
+       from emit_queue.
+
+2004-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/14533
+       * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
+       other than UNSPEC_GOTOFF.
+
+2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
+       to arm_legitimate_index_p.  Update all callers with SET as default
+       value.
+       (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
+       range if OUTER is a sign-extend operation on QImode.  Correctly
+       reject shift operations on sign-extended QImode addresses.
+       (bad_signed_byte_operand): Delete.
+       (arm_extendqisi_mem_op): New function.
+       * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
+       (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
+       constraints.
+       (CONSTRAINT_LEN): New.
+       (EXTRA_CONSTRAINT): Delete.  Replace with...
+       (EXTRA_CONSTRAINT_STR): ... this.
+       (PREDICATE_CODES): Remove bad_signed_byte_operand.
+       * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
+       is now always default.
+       (define_splits for bad sign-extend loads): Delete.
+       (arm_extendqisi, arm_extendqisi_v5): Likewise.
+       * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
+       Rework 'U' constraint to 'Uv'.
+       * arm-protos.h: Remove bad_signed_byte_operand.  Add
+       arm_extendqisi_mem_op.
+       * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
+       Add Uq constraint.
+
+2004-03-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
+       with targetm version.
+
+       PR target/14567
+       * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
+       (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
+       * config/rs6000/rs6000.c (rs6000_arg_size): New function.
+       Update all users of RS6000_ARG_SIZE.
+       (function_arg_advance): Count fregno using mode size.
+       (function_arg): Handle long double split over regs and memory.
+       (function_arg_partial_nregs): Likewise.
+       (rs6000_va_arg): Repackage complex args.
+
+2004-03-13  Dean Ferreyra <dferreyra@igc.org>
+
+       PR target/14047
+       * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
+       (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
+       * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
+
+2004-03-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
+       prototype.
+       * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
+       * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
+
+2003-03-12  Andrew Pinski  <apinski@apple.com>
+
+       * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
+       Use ret instead of result. Use addr instead of base.
+
+2004-03-12  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/install.texi (*-ibm-aix*): Document assembler and achiver
+       fixes required by libstdc++ and update installation instructions
+       for libstdc++.a.
+
+2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
+       leading '@' on fastcall symbols before stripping suffix.
+
+2004-03-12  Roger Sayle  <roger@eyesopen.com>
+
+       * combine.c (unmentioned_reg_p): New function to check whether an
+       expression is a "specialization" of another, i.e. that there are
+       no registers or memory references mentioned in the first that don't
+       appear in the second.
+       (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
+       (combine_instructions): Also try combining instructions using the
+       REG_EQUAL note from a preceding log-linked instruction.
+
+2004-03-12  Roger Sayle  <roger@eyesopen.com>
+
+       * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
+
+2004-03-12  Matt Austern  <austern@apple.com>
+
+       * target.h (struct gcc_target): New target hook, unwind_label.
+       * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
+       * output.h (default_emit_unwind_label): New function.
+       * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
+       (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
+       (TARGET_SUPPORTS_HIDDEN): New target macro.
+       * dwarf2out.c (struct dw_fde_struct): Add field for function decl
+       that corresponds to this FDE.
+       (FRAME_BEGIN_LABEL): Allow target to override default label.
+       (output_call_frame_info): If FDEs are linknonce, then use extra
+       indirection for FDE encoding, output a label for each FDE, and
+       output an empty label for each function without an FDE.
+       (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
+       * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
+       decls with DECL_ONE_ONLY set, if that macro is defined.
+       (make_decl_one_only): Don't use DECL_COMMON if we're compiling
+       for a SUPPORTS_ONE_ONLY target.
+       * config/darwin-protos.h (darwin_unique_section): Declare.
+       (darwin_asm_named_section): Likewise.
+       (darwin_section_type_flags): Likewise.
+       (darwin_non_lazy_pcrel): Likewise.
+       (darwin_emit_unwind_label): Likewise.
+       (darwin_make_decl_one_only): Likewise.
+       * config/darwin.c (machopic_finish): Get rid of tweak that
+       eliminate stubs for symbols that are defined.
+       (darwin_encode_section_info): Don't treat weak functions as defined.
+       (darwin_make_decl_one_only): Define.
+       (darwin_asm_named_section): Likewise.
+       (darwin_section_type_flags): Likewise.
+       (darwin_unique_section): Likewise.
+       (darwin_emit_unwind_label): Likewise.
+       (darwin_non_lazy_pcrel): Likewise.
+       (darwin_asm_output_dwarf_delta): Difference between two labels is
+       local only if both labels are local.
+       * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
+       (ASM_MAKE_LABEL_LINKONCE): Likewise.
+       (TARGET_SUPPORTS_HIDDEN): Likewise.
+       (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
+       (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
+       (FRAME_BEGIN_LABEL): Likewise.
+       (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
+       (ASM_DECLARE_FUNCTION_NAME): Likewise.
+       (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
+       (TARGET_ASM_UNIQUE_SECTION): Define.
+       (EH_FRAME_SECTION_NAME): Define.
+       (EH_FRAME_SECTION_ATTR): Likewise.
+       (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
+       (TARGET_ASM_NAMED_SECTION): Likewise.
+       (TARGET_SECTION_TYPE_FLAGS): Likewise.
+       * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
+       TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
+       TARGET_ASM_EMIT_UNWIND_LABEL.
+       
+2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (expand_builtin_mathfn): Add pow10* to the
+       existing exp10* case.
+       (expand_builtin): Likewise.
+
+2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * doc/tm.texi (registers) <Values in Registers>: Add
+       entry for REGMODE_NATURAL_SIZE.
+
+2004-03-12  Richard Henderson  <rth@redhat.com>
+
+       PR target/14547
+       * target.h (struct gcc_target): Move calls substructure before
+       booleans.  Add split_complex_arg.
+       * function.c (assign_parms, split_complex_args): Use it.
+       * calls.c (expand_call): Likewise.
+       (split_complex_values): Likewise.  Check for splittable types
+       before allocating memory.
+       (split_complex_types): Likewise.
+       * system.h (SPLIT_COMPLEX_ARGS): Poison.
+       * expr.h (SPLIT_COMPLEX_ARGS): Remove.
+       * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
+       * config/alpha/alpha.c (alpha_split_complex_arg): New.
+       (TARGET_SPLIT_COMPLEX_ARG): New.
+       * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
+       * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
+       (rs6000_override_options): Zap it for non-AIX.
+       (rs6000_function_value): Use targetm.calls.split_complex_arg.
+       * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
+       * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
+       * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
+       * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
+       SPLIT_COMPLEX_ARGS entry.
+
+2004-03-11  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
+       (alpha_lookup_xfloating_lib_func): Use them, return rtx.
+       (alpha_emit_xfloating_arith): Update to match.
+       (alpha_emit_xfloating_compare): Likewise.
+       (alpha_emit_xfloating_cvt): Likewise.
+       (alpha_emit_xfloating_libcall): Take already built symbol,
+       mark call const.
+       * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
+       op1 in a register.
+
+2004-03-11  Richard Henderson  <rth@redhat.com>
+
+       PR target/14539
+       * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
+
+       * simplify-rtx.c (simplify_relational_operation): Fix typo.
+
+2004-03-11  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/14477
+       * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
+
+2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR target/14262
+       * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
+       defined, pass small BLKmode values in registers in the low-order part.
+
 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * combine.c (if_then_else_cond): Check for NULL return value of
        (set_frame_base_location): Unshare variable if needed.
        (set_variable_part): Init the refcount of new variable.
        Unshare the variables if needed.
-       (delete_variable_part): Unshare the variables if needed. 
+       (delete_variable_part): Unshare the variables if needed.
        (emit_notes_for_differences_1): Init the refcount of new variable.
        (vt_add_function_parameters): Do not add function parameters to
        IN set of ENTRY_BLOCK_PTR because it is unused anyway.
        and gt_pch_use_address.
        * config/host-linux.c, config/host-solaris.c: New files.
        * config/x-linux, config/x-solaris: New files.
-       * config/rs6000/host-darwin.c darwin_rs6000_gt_pch_get_address): 
+       * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address): 
        Update for changed definition.
        (darwin_rs6000_gt_pch_use_address): Likewise.
        * doc/hostconfig.texi: Update docs.
        PR bootstrap/12371
        * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
        (CALL_USED_REGISTERS): Likewise.
-        (REG_CLASS_CONTENTS): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
        (REG_ALLOC_ORDER): New.
        (REGNO_REG_CLASS): Use regno_reg_class.
        * config/m68k/m68k.c: Add regno_reg_class array.
 
        * toplev.c (dump_file_tbl): Rename from dump_file.
        * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
-       cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
+       cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
        config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
        config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
        loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
 
 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
 
-       * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
+       * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
        and restore it to gen_lowpart_general on exit.
        (gen_lowpart_for_combine): Adjust all callers to go through
        gen_lowpart.
 
        * fixinc/inclhack.def (alpha___extern_prefix,
        alpha___extern_prefix_standards): New hacks to obey
-       __PRAGMA_EXTERN_PREFIX.
+       __PRAGMA_EXTERN_PREFIX.
        * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
        test.
        * fixinc/tests/base/standards.h: Likewise.