Commit Graph

340 Commits

Author SHA1 Message Date
Kazu Hirata 077fc835e5 configure.in (arm-*-linux-gnueabi): Add to noconfigdirs target-libffi...
/
	* configure.in (arm-*-linux-gnueabi): Add to noconfigdirs
	target-libffi, target-qthreads, target-libjava, and
	targetlibobjc.
	* configure: Regenerate.

gcc/
	Merge from csl-arm-branch:
	2005-09-07  Paul Brook  <paul@codesourcery.com>
	* config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
	space to string.

	2005-04-30  Paul Brook  <paul@codesourcery.com>
	* config/arm/bpabi.h (TARGET_DEFAULT): Define.
	* config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.

	2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/arm.c (arm_all_abis): Add aapcs-linux.
	(arm_override_options): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
	(PTRDIFF_TYPE): Use int for AAPCS.
	(DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
	* config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
	(DEFAULT_SHORT_ENUMS): Delete.
	* doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.

	2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
	* config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
	* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.

	2004-12-03  Mark Mitchell  <mark@codesourcery.com>
	* config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.

	2004-11-22  Mark Mitchell  <mark@codesourcery.com>
	* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.

	2004-11-19  Mark Mitchell  <mark@codesourcery.com>
	* config.gcc (arm*-*-linux-gnueabi): Add it.
	* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
	redefining it.
	(TARGET_OS_CPP_BUILTINS): Likeiwse.
	* config/arm/linux-eabi.h: New file.
	* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
	(LINUX_TARET_LINK_SPEC): Likewise.
	(LINK_SPEC): Use it.
	* config/arm/t-linux-eabi: New file.

libcpp/
	* configure.ac: Require 64-bit int for arm*-*-*eabi*.
	* configure: Regenerate.

libstdc++/
	Merge from csl-arm-branch:
	2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
	* libstdc++-v3/config/linker-map.gnu: Add ARM EABI symbols.

From-SVN: r105121
2005-10-08 18:17:20 +00:00
Richard Earnshaw 2591db658c arm.h (arm_stack_offsets): Add locals_base field.
* arm.h (arm_stack_offsets): Add locals_base field.
	* arm.c (arm_get_frame_offsets): Compute it.
	(thumb_compute_initial_elimination offset): Make the Thumb frame
	pointer point to the base of the local variables.
	(thumb_expand_prologue): Update accordingly.
	(thumb_expand_epilogue): Likewise.

	* arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
	mode of clobbered scratch to DImode.  Handle a case that's known to
	need this.

From-SVN: r103301
2005-08-20 10:31:42 +00:00
Richard Earnshaw a132dad65c re PR target/23436 (Insn does not satisfy its constraints (reload_cse_simplify_operands))
PR target/23436
	* arm.c (thumb_legitimize_reload_address): New function.
	* arm-protos.h (thumb_legitimize_reload_address): Add prototype.
	* arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.

From-SVN: r103273
2005-08-19 09:20:31 +00:00
Kazu Hirata a4d0554781 Makefile.in, [...]: Fix comment/doc typos.
* Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
	config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
	tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
	config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
	config/alpha/predicates.md, config/arc/arc.h,
	config/arm/arm.h, config/arm/ieee754-df.S,
	config/arm/ieee754-sf.S, config/bfin/bfin.c,
	config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
	config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
	config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
	config/m68hc11/m68hc11.h, config/mips/mips.c,
	config/mips/mips.h, config/mips/openbsd.h,
	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
	config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
	config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
	config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
	doc/extend.texi, doc/gcov.texi, doc/install.texi,
	doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
	typos.  Follow spelling conventions.

From-SVN: r102809
2005-08-06 13:26:35 +00:00
Paul Brook a14b88bb20 arm-protos.h (arm_canonicalize_comparison): Update prototype.
2005-07-30  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm-protos.h (arm_canonicalize_comparison): Update
	prototype.
	* config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
	value for mode.
	* config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.

From-SVN: r102574
2005-07-30 00:11:27 +00:00
Paul Brook 617a1b7144 Makefile.in: Set and use UNWIND_H.
2005-06-28  Paul Brook  <paul@codesourcery.com>

gcc/
	* Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
	* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
	* except.c (add_ehspec_entry): Generate arm eabi filter lists.
	(assign_filter_values): Ditto.
	(output_ttype): New function.
	(output_function_exception_table): Use output_ttype.  Generate arm
	eabi filter lists.
	(default_init_unwind_resume_libfunc): New function.
	* except.h (default_init_unwind_resume_libfunc): Add prototype.
	* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
	* opts.c (decode_options): Use targetm.unwind_tables_default.
	* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
	(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
	* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
	and arm_eabi_unwinder.
	* unwind-c.c: Support Arm EABI unwinder.
	* unwind.h: Rename ...
	* unwind-generic.h: ... To this.
	* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
	(TARGET_UNWID_TABLES_DEFAULT): Document.

	* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
	* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
	(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
	Define.
	(thumb_pushpop, thumb_output_function_prologue): Output unwinding
	directives.
	(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
	* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
	!TARGET_UNWIND_INFO.
	(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
	* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
	* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
	ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
	* config/arm/lib1funcs.asm: Include libunwind.S.
	* config/arm/libgcc-bpabi.ver: Add unwinding routines.
	* config/arm/libunwind.S: New file.
	* config/arm/pr-support.c: New file.
	* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
	(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
	* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
	* config/arm/unwind-arm.c: New file.
	* config/arm/unwind-arm.h: New file.
	* config/i386/t-netware (USER_H): Remove unwind.h.
	* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.

gcc/cp/
	* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
	* except.c: Include target.h.
	(init_exception_processing): Initialize unwind_resume_libfunc.
	* doc/tm.texi: Document TARGET_ASM_TTYPE
gcc/ada/
	* misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
gcc/java/
	* decl.c (java_init_decl_processing): Call
	default_init_unwind_resume_libfunc.
gcc/objc/
	* objc-act.c (objc_init_exceptions): Call
	default_init_unwind_resume_libfunc.
libstdc++/
	* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Check for
	__cxa_end_cleanup.
	* libsupc++/Makefile.am (sources): Add eh_call.c and eh_arm.c.
	* libsupc++/eh_arm.cc: New file.
	* libsupc++/eh_call.cc: New file.
	* libsupc++/eh_catch.cc (__cxa_get_exception_ptr): Use
	__gxx_caught_object.
	(__cxa_begin_catch): Ditto. Use __is_gxx_exception_class. Call
	_Unwind_Complete when using the ARM EABI.
	(__cxa_end_catch): Use __is_gxx_exception_class.
	* libsupc++/eh_personality.cc: Define NO_SIZE_OF_ENCODED_VALUE when
	using the ARM EABI.
	(save_caught_exception, restore_caught_exception): New functions.
	(_throw_typet): New typedef.
	(get_ttype_entry, get_adjusted_ptr, check_exception_spec): Add ARM
	EABI implementations.
	(PERSONALITY_FUNCTION): Use new functions.  Addd support for ARM EABI
	unwinding libary.
	(__cxa_unexpected): Disable when using the ARM EABI.
	* libsupc++/eh_throw.cc (__cxa_throw): Use __GXX_INIT_EXCEPTION_CLASS.
	(__cxa_rethrow): Use __is_gxx_exception_class.  Call
	_Unwind_RaiseException when using the ARM EABI.
	* libsupc++/unwind-cxx.h (struct __cxa_exception): Add fields for ARM
	EABI semantics.
	(struct __cxa_eh_globals): Ditto.
	(__cxa_call_terminate): Add prototype.
	(__cxa_type_match, __cxa_begin_cleanup, __cxa_end_cleanup): Add
	prototypes.
	(__get_exception_header_from_obj, __get_exception_header_from_ue):
	Move earlier in file.
	(__is_gxx_exception_class, __GXX_INIT_EXCEPTION_CLASS,
	__gxx_caught_object): New functions.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libmath/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* src/Makefie.in: Regenerate.
	* testsuite/makefile.in: Regenerate.

From-SVN: r101385
2005-06-28 19:52:27 +00:00
Jakub Jelinek f62c8a5c79 defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
* defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
	* function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
	instead of preprocessor conditionals.
	(assign_stack_local_1, assign_stack_temp_for_type): Likewise.
	* cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
	depending on if it was or was not defined previously.
	* doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
	definition of FRAME_GROWS_DOWNWARD means frame grows downward.
	* doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
	* config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
	comment.
	* config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
	* config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
	comment.
	* config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
	* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
	* config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.

From-SVN: r101329
2005-06-26 07:18:53 +02:00
R. Kelley Cook 39d14ddaac Update FSF address.
From-SVN: r101314
2005-06-25 01:22:41 +00:00
Richard Earnshaw 49755603e1 arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache unconditional.
* arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
	unconditional.

From-SVN: r99680
2005-05-13 21:56:58 +00:00
Daniel Jacobowitz a15900b51c linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
	* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
	default definition.
	(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.

From-SVN: r99581
2005-05-11 14:59:09 +00:00
Richard Sandiford c54c732251 config.gcc (arm*-wince-pe*, [...]): Add arm/pe.opt to $extra_options.
* config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
	arm/pe.opt to $extra_options.
	* config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
	(target_float_abi_name, target_float_switch, target_abi_name)
	(ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
	(ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
	(ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
	(ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
	(ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
	(THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
	(THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
	(TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
	(TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
	(TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
	(TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
	(TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
	(TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
	(TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
	(arm_pic_register_string): Delete.
	(TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
	TARGET_TPCS_FRAME.
	(TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
	* config/arm/coff.h (TARGET_DEFAULT): Likewise.
	* config/arm/elf.h (TARGET_DEFAULT): Likewise.
	* config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
	* config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
	* config/arm/semi.h (TARGET_DEFAULT): Likewise.
	* config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
	* config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
	* config/arm/pe.h (TARGET_DEFAULT): Likewise.
	(TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
	(SUBTARGET_SWITCHES): Delete.
	* config/arm/arm.c (target_float_switch): Delete.
	(arm_cpu_select): Moved from config/arm/arm.h.
	(target_fpu_name, target_fpe_name, target_float_abi_name)
	(target_abi_name, structure_size_string, arm_pic_register_string)
	(arm_select): Make static.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(arm_handle_option): New function.
	(arm_override_options): Update target_flags checks for new mask names.
	Remove target_float_switch code.
	(arm_expand_prologue, thumb_expand_prologue): Check
	!TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
	* config/arm/arm.opt, config/arm/pe.opt: New files.

From-SVN: r99265
2005-05-05 12:09:00 +00:00
Paul Brook 2a86f5154b arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
2005-01-05  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
	(INITIALIZE_TRAMPOLINE): Use it.
	* config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.

From-SVN: r99068
2005-05-01 15:28:53 +00:00
Mark Mitchell 88c6057f1d arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a definition has already been provided.
* config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
	definition has already been provided.
	(ARM_EABI_DTORS_SECTION_OP): Likewise.
	* config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
	(ARM_EABI_DTORS_SECTION_OP): Likewise.

From-SVN: r98988
2005-04-29 14:22:10 +00:00
Julian Brown 7abc66b142 crtstuff.c: Handle targets that use .init_array.
* crtstuff.c: Handle targets that use .init_array.
	* function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
	that INVOKE__main is set correctly.
	(expand_main_function): Test INVOKE__main.
	* libgcc2.c: Do not define __main when using .init_array.
	* config/arm/arm.c (arm_elf_asm_constructor): New function.
	* config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
	libgcc version.
	(DTORS_SECTION_ASM_OP): Likewise.
	(CTOR_LIST_BEGIN): Define specially when in libgcc.
	(CTOR_LIST_END): Likewise.
	(DTOR_LIST_BEGIN): Likewise.
	(DTOR_LIST_END): Likewise.
	* config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
	(FINI_SECTION_ASM_OP): Likewise.
	(INIT_ARRAY_SECTION_ASM_OP): Define.
	(FINI_ARRAY_SECTION_ASM_OP): Likewise.
	* config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
	(SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
	* doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
	(FINI_ARRAY_SECTION_ASM_OP): Likewise.

Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r98986
2005-04-29 14:09:45 +00:00
Nathan Sidwell 685c9c11b8 arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame pointer when thumb backtracing is on.
* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
	pointer when thumb backtracing is on.

	* config/fp-bit.c (abort): Revert change.

From-SVN: r98872
2005-04-27 18:33:37 +00:00
Nathan Sidwell e6d29d157f arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and gcc_unreachable as appropriate.
* config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
	gcc_unreachable as appropriate.
	(THUMB_PRINT_OPERAND_ADDRESS): Likewise.
	* config/arm/arm.c (arm_override_options, arm_compute_func_type,
	use_return_insn, const_ok_for_op, arm_gen_constant,
	arm_canonicalize_comparison, legitimize_pic_address,
	thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
	arm_cirrus_insn_p, cirrus_reorg, minmax_code,
	load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
	emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
	arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
	move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
	dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
	fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
	output_call, output_mov_long_double_fpa_from_arm,
	output_mov_long_double_arm_from_fpa,
	output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
	output_move_double, arithmetic_instr, shift_op, int_log2,
	output_return_instruction, arm_output_function_prologue,
	arm_output_epilogue, arm_output_function_epilogue,
	emit_multi_reg_push, arm_get_frame_offsets,
	arm_compute_initial_elimination_offset, arm_expand_prologue,
	arm_print_operand, arm_assemble_integer, get_arm_condition_code,
	arm_final_prescan_insn, arm_init_iwmmxt_builtins,
	arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
	thumb_compute_initial_elimination_offset,
	thumb_output_function_prologue, thumb_load_double_from_address,
	thumb_output_move_mem_multiple, thumb_reload_out_hi,
	arm_emit_vector_const, arm_dbx_register_number): Likewise.
	* config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
	* config/arm/arm.md (thumb_extendhisi2,
	*thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
	*thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
	thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
	*arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
	* config/arm/cirrus.md (*cirrus_arm_movdi,
	*cirrus_movdf_hard_insn): Likewise.
	* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.

From-SVN: r98850
2005-04-27 16:09:03 +00:00
Julian Brown 866af8a909 arm.c (arm_return_in_msb): New function.
* config/arm/arm.c (arm_return_in_msb): New function.
	(arm_must_pass_in_stack): New function.
	(TARGET_RETURN_IN_MSB): Define target hook.
	(TARGET_MUST_PASS_IN_STACK): Define target hook.
	(arm_function_value): Pad small aggregate return.
	(arm_pad_arg_upward): New function.
	(arm_pad_reg_upward): New function.
	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
	(FUNCTION_ARG_PADDING): Define macro.
	(BLOCK_REG_PADDING): Define macro.
	(PAD_VARARGS_DOWN): Correct padding for AAPCS.
	* config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
	(arm_pad_reg_upward): Declare function.

From-SVN: r98774
2005-04-26 16:30:37 +00:00
Mark Mitchell 1e73110261 target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
	(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
	(TARGET_CXX): Adjust accordingly.
	* target.h (struct gcc_target): Remove epxort_class_data.  Add
	determine_class_data_visibility and class_data_always_comdat.
	* doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
	* config/arm/arm.c (arm_cxx_export_class_data): Remove.
	(arm_cxx_determine_class_data_visibility): New.
	(arm_cxx_class_data_always_comdat): Likewise.
	(TARGET_CXX_EXPORT_CLASS_DATA): Remove.
	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
	* config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
	* config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
	Define.

	* decl2.c (determine_visibility): Don't use export_class_data.
	(import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
	TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.

	* testsuite/g++.dg/ext/visibility/arm2.C: New test.
	* testsuite/g++.dg/ext/visibility/arm3.C: Likewise.
	* testsuite/g++.dg/ext/visibility/symbian2.C: Likewise.

From-SVN: r98010
2005-04-12 06:33:48 +00:00
Richard Earnshaw abac3b49c2 arm.c (FL_WBUF): Define.
* arm.c (FL_WBUF): Define.
	(arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
	(arm_is_6_or_7): Delete.
	(arm_tune_wbuf): New.
	(arm_override_options): Set arm_tune_wbuf.
	* arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
	(arm_is_6_or_7): Delete declaration.
	(arm_tune_wbuf): New declartion.
	* arm.md (is_strongarm): Derive from arm_tune_strongarm.
	(model_wbuf): Derive from arm_tune_wbuf.
	* arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
	(arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
	(arm740t): Mark CPUs as having a write buffer.

From-SVN: r97894
2005-04-09 12:03:54 +00:00
Richard Earnshaw 9b901d50bb arm.c (arm_const_double_inline_cost): Handle any constant by using gen_lowpart and gen_highpart_mode.
* arm.c (arm_const_double_inline_cost): Handle any constant by
	using gen_lowpart and gen_highpart_mode.
	(note_invalid_constants): All constants in an RTX with a constraint
	that permits memory are now pushed to the constant pool.
	(output_move_double): Delete code to handle reg to reg and
	constant to reg moves.
	(const_double_needs_minipool, output_mov_immediate): Delete.
	* arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
	CONST_INT and CONST_VECTOR.
	* arm.md (ANY64): New mode macro.
	(arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
	(movdf_soft_insn): Split reg-reg and const-reg moves.
	(split patterns for 64-bit constant and register moves): New.
	* cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
	(cirrus_movdf_hard_insn): Likewise.
	* fpa.md (movdf_fpa): Likewise.
	* iwmmxt.md (iwmmxt_arm_movdi): Likewise.
	(movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
	constraints.
	(movv2si_internal_2): Likewise.
	* vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
	(movdf_vfp): Likewise.
	* arm-protos.h (output_mov_immediate): Delete prototype.

From-SVN: r97778
2005-04-07 11:24:11 +00:00
Paul Brook 57ecec5749 arm.c (thumb_call_via_label): Include space for SP.
2005-04-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_call_via_label): Include space for SP.
	(arm_output_function_epilogue): Allow call_via_SP.
	(thumb_call_via_reg, arm_file_end): Ditto.
	* config/arm/arm.h (struct machine_function): Include space for SP.
	(thumb_call_via_label): Update declaration.

From-SVN: r97402
2005-04-01 15:59:09 +00:00
Paul Brook 2fa330b29a arm-protos.h (arm_dbx_register_number): Add prototype.
2005-03-29  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
	* config/arm/arm.c (arm_dbx_register_number): New function.
	* config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.

From-SVN: r97150
2005-03-29 03:00:27 +00:00
Daniel Jacobowitz 119bb233e2 arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear call_used_regs for wCG registers.
* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
	call_used_regs for wCG registers.

From-SVN: r96525
2005-03-15 17:45:55 +00:00
Richard Earnshaw 9f7bf991d0 re PR target/19162 (ICE while building libobjc's sendmsg.c)
* PR target/19162
	* arm.c (arm_apply_result_size): New function.
	* arm.h (APPLY_RESULT_SIZE): Define.
	* arm-protos.h (arm_apply_result_size): Add prototype.
	* arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
	(movxf): New expand.
	(ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
	(call_value_symbol): Remove predicate for operand 0.
	(call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
	(untyped_call): Rework to correclty return values for any type.
	(untyped_return): New expand.
	* fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.

From-SVN: r95119
2005-02-16 21:57:10 +00:00
Kazu Hirata 35fd3193de alias.c, [...]: Fix comment typos.
* alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
	fold-const.c, gimplify.c, params.h, tree-data-ref.c,
	tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
	tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
	config/freebsd-spec.h, config/arm/arm.h,
	config/h8300/h8300.md, config/i386/i386.md,
	config/i386/predicates.md, config/i386/sse.md,
	config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
	config/vax/vax.md: Fix comment typos.  Follow spelling
	conventions.

From-SVN: r94112
2005-01-23 15:05:49 +00:00
Richard Earnshaw b12a00f173 re PR target/7525 ([ARM/Thumb] long calls stubs only in one code section, cannot branch to them from other section)
PR target/7525
* arm.h (struct machine_function): Add call_via field.
(thumb_call_via_label): Declare.
* arm.c (thumb_call_via_label): New variable.
(thumb_call_reg_needed): New variable.
(arm_output_function_epilogue): For Thumb code, output any per-function
call-indirect trampolines.
(thumb_call_via_reg): New function.
(arm_file_end): New function.
(TARGET_ASM_FILE_END): Call arm_file_end.
(aof_file_end): Likewise.
* arm-protos.h (thumb_call_via_reg): Declare.
* arm.md (call_reg_thumb, call_value_reg_thumb): Call
thumb_call_via_reg in normal case.

From-SVN: r93641
2005-01-14 13:58:40 +00:00
Richard Earnshaw 712ecf4dfb arm.h (TARGET_OPTIONS): Correctly record -mhard-float and -msoft-float in target_float_switch.
* arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
-msoft-float in target_float_switch.
* arm.c (arm_override_options): Fix processing of target_float_switch.

From-SVN: r92949
2005-01-05 11:56:24 +00:00
Richard Henderson 78a52f1158 target.h (targetm.calls.arg_partial_bytes): New.
* target.h (targetm.calls.arg_partial_bytes): New.
	* target-def.h (TARGET_ARG_PARTIAL_BYTES): New.
	* calls.c (store_unaligned_arguments_into_pseudos): Update for
	partial in bytes.
	(load_register_parameters): Likewise.
	(store_one_arg): Likewise.
	(initialize_argument_information): Use targetm.calls.arg_partial_bytes.
	(emit_library_call_value_1): Likewise.
	* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
	(emit_push_insn): Update for partial in bytes.
	* expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* function.c (assign_parm_find_entry_rtl): Use
	targetm.calls.arg_partial_bytes.  Update for result in bytes.
	(locate_and_pad_parm): Update for partial in bytes.
	* system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison.
	* targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New.
	* targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare.
	* doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from
	FUNCTION_ARG_PARTIAL_NREGS.

	* config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h,
	config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h,
	config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h,
	config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.

	* config/alpha/alpha.c (alpha_arg_partial_bytes): New.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/alpha/alpha.h, config/alpha/unicosmk.h,
	config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.

	* config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
	* config/arm/arm.c (arm_arg_partial_bytes): ... here.
	(TARGET_ARG_PARTIAL_BYTES): New.

	* config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
	* config/cris/cris.c (cris_arg_partial_bytes): ... here.
	(TARGET_ARG_PARTIAL_BYTES): New.

	* config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from
	fr30_function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/fr30/fr30-protos.h: Update.

	* config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/frv/frv.c (frv_arg_partial_bytes): Rename from
	frv_function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/frv/frv-protos.h: Update.

	* config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from
	ia64_function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/ia64/ia64-protos.h: Update.

	* config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/iq2000/iq2000-protos.h: Update.

	* config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/m32r/m32r-protos.h: Update.

	* config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from
	mcore_function_arg_partial_nregs.  Adjust to return bytes.
        (TARGET_ARG_PARTIAL_BYTES): New.
	* config/mcore/mcore-protos.h: Update.

	* config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/mips/mips.c (mips_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/mips/mips-protos.h: Update.

	* config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/mn10300/mn10300-protos.h: Update.

	* config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
	* config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here.
	(TARGET_ARG_PARTIAL_BYTES): New.

	* config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/pa/pa.c (pa_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Handle 32-bit.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/pa/pa-protos.h: Update.

	* config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Adjust to return bytes.
	(TARGET_ARG_PARTIAL_BYTES): New.
	* config/rs6000/rs6000-protos.h: Update.

	* config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
	* config/sh/sh.c (sh_arg_partial_bytes): ... here.
	(TARGET_ARG_PARTIAL_BYTES): New.

	* config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from
	function_arg_partial_nregs.  Adjust to return bytes.
        (TARGET_ARG_PARTIAL_BYTES): New.
	* config/sparc/sparc-protos.h: Update.

	* config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
	* config/v850/v850.c (v850_arg_partial_bytes): Rename from
        function_arg_partial_nregs.  Adjust to return bytes.
        (TARGET_ARG_PARTIAL_BYTES): New.
	* config/v850/v850-protos.h: Update.

From-SVN: r92726
2004-12-29 19:08:18 -08:00
Richard Earnshaw 2075b05db6 arm.c (arm_override_options): Use arm_ld_sched rather than testing a bit in tune_flags.
* arm.c (arm_override_options): Use arm_ld_sched rather than testing
a bit in tune_flags.
(const_double_needs_minipool): Likewise.  Split most of the code out
into ...
(arm_const_double_inline_cost): ... new function here.
* arm-protos.h (arm_const_double_inline_cost): Add prototype.
* arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
word constants of length 2, 3 and 4 insns respectively.
(CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
* arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
constraints.  Set insn lenghts accordingly.

From-SVN: r90962
2004-11-20 11:21:55 +00:00
Paul Brook 3d8532aa2a arm.c (target_float_switch): New variable..
* config/arm/arm.c (target_float_switch): New variable..
	(arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
	target_float_switch.
	* config/arm/arm.h (target_float_switch): Declare.
	(ARM_FLAG_SOFT_FLOAT): Remove.
	(TARGET_SWITCHES): Remove hard-float and soft-float.
	(TARGET_OPTIONS): Add hard-float and soft-float.
	(TARGET_DEFAULT_FLOAT_ABI): Define.
	* config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
	(TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
	* config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
	* config/arm/netbsd-elf.h: Ditto.
	* config/arm/netbsd.h: Ditto.
	* config/arm/pe.h: Ditto.
	* config/arm/unknown-elf.h: Ditto.
	* config/arm/wince-pe.h: Ditto.
	* config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
	* config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
	* config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.

From-SVN: r90872
2004-11-18 15:59:48 +00:00
Richard Sandiford a25036452a arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and global for -mcaller-super-interworking.
* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
	global for -mcaller-super-interworking.
	(CALLER_INTERWORKING_SLOT_SIZE): New macro.
	* config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
	CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
	not need a frame pointer.
	(arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
	the soft frame pointer offset.
	(thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
	* config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
	_interwork_{r7,r11}_call_via_rN if some arguments are passed on
	the stack.  Use frame_pointer_needed to choose between them.
	* config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
	(interwork_with_frame): New macro.
	(interwork): Add _interwork_{r7,r11}_call_via_rN().

From-SVN: r89031
2004-10-14 07:37:11 +00:00
Daniel Jacobowitz 888d2cd6b5 * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
(MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
	(REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
	* regclass.c (record_address_regs): Remove ifdef.  Use
	REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
	* regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
	definition.
	(scan_rtx_address, replace_oldest_value_addr): Use
	REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
	* reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
	unnecessary definitions.
	(find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
	and MODE_BASE_REG_REG_CLASS.
	* config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
	(MODE_BASE_REG_REG_CLASS): Define.
	(REGNO_MODE_OK_FOR_REG_BASE_P): Define.
	(REG_MODE_OK_FOR_REG_BASE_P): Define.
	* doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
	REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.

From-SVN: r88948
2004-10-12 19:28:56 +00:00
Kazu Hirata 112cdef5e6 darwin-c.c, [...]: Fix comment typos.
* config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
	config/arm/README-interworking, config/arm/arm-cores.def,
	config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
	config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
	config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
	config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
	config/frv/frv.md, config/i386/winnt.c,
	config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
	config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
	config/m68hc11/m68hc11.md, config/m68k/m68k.c,
	config/mcore/mcore.c, config/mips/mips.h,
	config/mn10300/mn10300.md, config/pa/pa.c,
	config/pa/pa64-regs.h, config/pdp11/pdp11.c,
	config/rs6000/rs6000.c, config/sh/symbian.c,
	config/sparc/sparc.h: Fix comment typos.  Follow spelling
	conventions.

From-SVN: r87706
2004-09-18 19:19:40 +00:00
Kazu Hirata c112cf2bca darwin.c, [...]: Fix comment typos.
* config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
	config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
	config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
	config/h8300/h8300.md, config/i386/gmm_malloc.h,
	config/ia64/ia64.md, config/ip2k/libgcc.S,
	config/mips/mips-ps-3d.md, config/mips/mips.c,
	config/rs6000/rs6000.c, config/s390/s390.c,
	config/sh/symbian.c: Fix comment typos.

From-SVN: r87295
2004-09-10 11:55:21 +00:00
Richard Earnshaw d98a72fd4f arm-cores.def (ARM_CORE): Add new field for the real name of the CPU.
* arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
CPU.
(arm7tdmi-s): New CPU name.
* arm/arm.c (ARM_CORE): Update for new format.
* arm/arm.h (ARM_CORE): Likewise.
* arm/gentune.sh: Update for extra field.
* config.gcc: Likewise.
* arm/arm-tune.md: Regenerate.
* doc/invoke.texi: Document the real processor names for ARM cpus.

From-SVN: r86884
2004-09-01 12:49:30 +00:00
Richard Earnshaw 880873be2d arm.h (REVERSE_CONDITION): Define.
* arm.h (REVERSE_CONDITION): Define.
(REVERSIBLE_CC_MODE): All comparisons are now reversible.

From-SVN: r86738
2004-08-29 22:18:25 +00:00
Richard Earnshaw a657c98a58 arm.md: Include predicates.md.
* arm.md: Include predicates.md.
* predicates.md: New file.
* arm.c (s_register_operand, arm_hard_register_operand)
(arm_general_register_operand, f_register_operand, reg_or_int_operand)
(arm_immediate_operand, arm_neg_immediate_operand)
(arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
(arm_add_operand, arm_addimm_operand, arm_not_operand)
(offsettable_memory_operand, alignable_memory_operand)
(arm_reload_memory_operand, arm_float_rhs_operand)
(arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
(index_operand, shiftable_operator, logical_binary_operator)
(shift_operator, equality_operator, arm_comparison_operator)
(minmax_operator, cc_register, dominant_cc_register)
(arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
(di_operand, nonimmediate_soft_df_operand, soft_df_operand)
(const_shift_operand, load_multiple_operation)
(store_multiple_operation, multi_register_push, thumb_cmp_operand)
(thumb_cmpneg_operand, thumb_cbrch_target_operand)
(cirrus_register_operand, cirrus_fp_register)
(cirrus_shift_const): Delete, replaced with equivalents in
predicates.md.
(shift_op): Handle ROTATE.
* arm-protos.h: Delete declarations for above.
* arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
* t-arm (MD_INCLUDES): Add predicates.md.
(s-preds): Depends on MD_INCLUDES.

From-SVN: r86512
2004-08-24 20:16:41 +00:00
Paul Brook 72cdc5438d arm.c (arm_override_options): Update error message.
* config/arm/arm.c (arm_override_options): Update error message.
	* config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
	TARGET_HARD_FLOAT_ABI.
	(TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
	(LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.

From-SVN: r86479
2004-08-24 11:32:53 +00:00
Eric Christopher f676971a92 defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
2004-08-23  Eric Christopher  <echristo@redhat.com>

	* defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
	* system.h (VECTOR_MODE_SUPPORTED_P): Poison.
	* target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
	* target.h: Ditto.
	* hooks.h: Include machmode.h.
	(hook_bool_mode_false): Declare.
	* hooks.c (hook_bool_mode_false): Define.
	* expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
	* stor-layout.c (layout_type): Ditto.
	* config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
	Define to target macro.
	* config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
	* config/arm/arm.c: Ditto. Use.
	* config/arm/arm.h: Ditto.
	* config/arm/arm-protos.h: Ditto.
	* config/i386/i386.c: Ditto.
	* config/i386/i386.h: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rs6000/rs6000.h: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh.h: Ditto.
	* config/sh/sh-protos.h: Ditto.
	* config/sh/sh.md: Use.
	* doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
	to TARGET_VECTOR_MODE_SUPPORTED_P.

2004-08-23  Eric Christopher  <echristo@redhat.com>

	* trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
	usage. Use build_vector_type_for_mode for vector types.

From-SVN: r86453
2004-08-24 00:30:52 +00:00
Zack Weinberg f822d2527e rtl.def (NIL): Delete.
* rtl.def (NIL): Delete.
	* read-rtl.c (read_rtx): Handle (nil) like (define_constants).
	Tighten the syntax a little.

	* cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
	* config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
	* config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
	* config/i386/predicates.md, config/m32r/m32r.h
	* config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
	* config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
	* config/sparc/sparc.h, doc/tm.texi:
	Replace all occurrences of NIL with UNKNOWN.

From-SVN: r86193
2004-08-18 17:05:14 +00:00
Paul Brook 876f13b0be * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
(arm_load_pic_register): ... to this.
	* config/arm/arm.c (arm_finalize_pic): Rename ...
	(arm_load_pic_register): ... to this.  Always output insns at the
	current location.  Load via low reg in thumb mode.
	(arm_expand_prologue): Call arm_load_pic_register.
	(thumb_expand_prologue): Ditto.
	* config/arm/arm.h (FINALIZE_PIC): Remove.
	* config/arm/arm.md (builtin_setjmp_receiver): Call
	arm_load_pic_register.

From-SVN: r85820
2004-08-11 21:02:47 +00:00
Paul Brook 57934c3979 arm.c (thumb_force_lr_save): Add prototype.
* arm.c (thumb_force_lr_save): Add prototype.
	(thumb_compute_save_reg_mask): New function.
	(thumb_find_work_register): New function.
	(arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
	(thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
	Don't clobber r3 when removing pretend args.
	(thumb_expand_prologue): Use thumb_compute_save_reg_mask.
	(thumb_output_function_prologue): Use new functions.
	(thumb_set_return_address): Use thumb_compute_save_reg_mask.
	* arm.h (THUMB_REG_PUSHED_P): Remove.

From-SVN: r85818
2004-08-11 20:59:15 +00:00
Nick Clifton a77655b15f (arm_is_longcall_p): Update comment describing this funciton's behaviour.
Return true when the current function has a section attribute and
  -mlong-calls is in effect.
(ARM_DECLARE_FUNCTION_SIZE): Do not set the short-call marker when
  -mlong-calls is in effect and the function has a section attribute.

From-SVN: r85796
2004-08-11 07:48:13 +00:00
Mark Mitchell b3f8d95d35 configure.in (arm*-*-eabi*): New target.
* configure.in (arm*-*-eabi*): New target.
	* configure: Regenerate.

	* configure.ac (arm*-*-eabi*): New target.
	(arm*-*-symbianelf*): Likewise.
	* configure: Regenerated.

	* config.gcc (arm*-*-eabi*): New target.
	* defaults.h (TARGET_LIBGCC_FUNCS): New macro.
	(TARGET_LIB_INT_CMP_BIASED): Likewise.
	* expmed.c (expand_divmod): Try a two-valued divmod function as a
	last resort.
	* gthr.h: Remove bogus tokens at end of #pragma.
	* optabs.c (expand_twoval_binop_libfunc): New function.
	(prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
	(prepare_float_lib_cmp): Try reversing the condition.
	(debug_optab_libfuncs): New function.
	* optabs.h (expand_twoval_binop_libfunc): Declare.
	* config/arm/arm.c (arm_init_libfuncs): New function.
	(arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
	(TARGET_INIT_LIBFUNCS): Define it.
	* config/arm/arm.h (TARGET_BPABI): New macro.
	* config/arm/arm-protos.h
	(arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
	* config/arm/bpabi.S: New file.
	* config/arm/bpabi.c: Likewise.
	* config/arm/bpabi.h: Likewise.
	* config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
	(__aeabi_drsub): Likewise.
	(__aeabi_dsub): Likewise.
	(__aeabi_dadd): Likewise.
	(__aeabi_ui2d): Likewise.
	(__aeabi_i2d): Likewise.
	(__aeabi_f2d): Likewise.
	(__aeabi_dmul): Likewise.
	(__aeabi_ddiv): Likewise.
	(__aeabi_cdrcmple): Likewise.
	(__aeabi_cdcmpeq): Likewise.
	(__aeabi_cdcmple): Likewise.
	(__aeabi_dcmpeq): Likewise.
	(__aeabi_dcmplt): Likewise.
	(__aeabi_dcmple): Likewise.
	(__aeabi_dcmpge): Likewise.
	(__aeabi_dcmpgt): Likewise.
	(__aeabi_dcmpun): Likewise.
	(__aeabi_d2iz): Likewise.
	(__aeabi_d2uiz): Likewise.
	(__aeabi_d2f): Likewise.
	* config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
	(__aeabi_frsub): Likewise.
	(__aeabi_fsub): Likewise.
	(__aeabi_fadd): Likewise.
	(__aeabi_ui2f): Likewise.
	(__aeabi_i2f): Likewise.
	(__aeabi_fmul): Likewise.
	(__aeabi_fdiv): Likewise.
	(__aeabi_cfrcmple): Likewise.
	(__aeabi_cfcmpeq): Likewise.
	(__aeabi_cfcmple): Likewise.
	(__aeabi_fcmpeq): Likewise.
	(__aeabi_fcmplt): Likewise.
	(__aeabi_fcmple): Likewise.
	(__aeabi_fcmpge): Likewise.
	(__aeabi_fcmpgt): Likewise.
	(__aeabi_fcmpun): Likewise.
	(__aeabi_f2iz): Likewise.
	(__aeabi_f2uiz): Likewise.
	* config/arm/lib1funcs.asm (ARM_CALL): New macro.
	(__aeabi_uidivmod): New function or alias.
	(__aeabi_idivmod): Likewise.
	(__aeabi_idiv0): Likewise.
	(__aeabi_ldiv0): Likewise.
	(__aeabi_llsr): Likewise.
	(__aeabi_lasr): Likewise.
	(__aeabi_llsl): Likewise.
	(bpabi.S): Include it.
	* config/arm/libgcc-bpabi.ver: New file.
	* config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
	(LINK_SPEC): Remove.
	* config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
	__aeabi_ulcmp.
	* config/arm/t-bpabi: New file.
	* doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
	(TARGET_LIB_INT_CMP_BIASED): Likewise.

	* gcc.dg/testsuite/gcc.dg/arm-eabi1.c: New test.
	* gcc.dg/dll-2.c: Fix dg-require syntax.
	* gcc.misc-tests/arm-isr.c (abort): Declare.
	(exit): Likewise.

From-SVN: r85788
2004-08-11 02:50:14 +00:00
Paul Brook c9ca9b88bb arm-protos.h (arm_set_return_address, [...]): Add prototypes.
* config/arm/arm-protos.h (arm_set_return_address,
	thumb_set_return_address): Add prototypes.
	* config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
	* config/arm/arm.c (arm_compute_func_type,
	use_return_insn, arm_compute_save_reg0_reg12_mask,
	arm_compute_save_reg_mask, arm_output_function_prologue,
	arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
	current_function_calls_eh_return.
	(thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
	old eh code.
	(arm_set_return_address, thumb_set_return_address): New functions.
	* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
	ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
	* config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
	(epilogue): Use the stackadj register.
	(eh_return, arm_eh_return, thumb_eh_return): New pattern.

From-SVN: r85757
2004-08-10 16:22:47 +00:00
Richard Henderson 3ac5ea7c80 arm-protos.h (arm_va_arg): Remove.
* config/arm/arm-protos.h (arm_va_arg): Remove.
        * config/arm/arm.c (arm_va_arg): Remove.
        (arm_init_expanders): Fix alignment of arg_pointer_rtx.
        * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.

From-SVN: r84695
2004-07-14 10:51:18 -07:00
Richard Henderson 8cd5a4e07d target.h (struct gcc_target): Add calls.pass_by_reference.
* target.h (struct gcc_target): Add calls.pass_by_reference.
	* target-def.h (TARGET_PASS_BY_REFERENCE): New.
	* function.c (pass_by_reference): Use the hook.
	* system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
	* targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
	(hook_pass_by_reference_must_pass_in_stack): New.
	* config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
	(alpha_pass_by_reference): New.
	(TARGET_PASS_BY_REFERENCE): New.
	* config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/arc/arc.c (arc_pass_by_reference): New.
	(TARGET_PASS_BY_REFERENCE): New.
	* config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(FUNCTION_ARG_CALLEE_COPIES): True.
	* config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
	* config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
	(arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
	* config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/cris/cris.c (cris_pass_by_reference): New.
	(TARGET_PASS_BY_REFERENCE): New.
	* config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
	(FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
	(FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
	* config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
	* config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
	(frv_function_arg_pass_by_reference): Remove.
	* config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
	* config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
	(ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
	* config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
	* config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
	(ia64_pass_by_reference): Rename from
	ia64_function_arg_pass_by_reference.
	* config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
	* config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
	(iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
	* config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
	* config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
	* config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
	(m32r_pass_by_reference): Adjust prototype.  Make static.
	Handle mode sizes correctly.
	* config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
	(m68hc11_function_arg_pass_by_reference): Remove.
	* config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
	* config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
	* config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
	* config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
	(mips_va_arg): Use pass_by_reference.
	(mips_pass_by_reference): Rename from function_arg_pass_by_reference.
	Handle mode sizes correctly.
	* config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
        (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
	* config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
	* config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
	(mmix_pass_by_reference): Rename from
	mmix_function_arg_pass_by_reference.
	* config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(FUNCTION_ARG_CALLEE_COPIES): True.
	* config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
	(mn10300_pass_by_reference): New.
	* config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(FUNCTION_ARG_CALLEE_COPIES): True.
	* config/pa/pa.c (pa_pass_by_reference): New.
	(TARGET_PASS_BY_REFERENCE): New.
	* config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
        (FUNCTION_ARG_CALLEE_COPIES): True.
	* config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
	* config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
	(rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
	* config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
	* config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
	(s390_pass_by_reference): Rename from
	s390_function_arg_pass_by_reference.
	(s390_function_arg_advance): Don't query pass-by-ref.
	(s390_function_arg): Likewise.
	(s390_gimplify_va_arg): Use pass_by_reference.
	(s390_call_saved_register_used): Likewise.
	* config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
	(shcompact_byref, sh_pass_by_reference): New.
	* config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(SHCOMPACT_BYREF): Remove.
	* config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
	* config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
	(sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
	(sparc_gimplify_va_arg): Use pass_by_reference.
	* config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	* config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
	(v850_pass_by_reference): New.
	* config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
	(FUNCTION_ARG_CALLEE_COPIES): True.
	* doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
	FUNCTION_ARG_PASS_BY_REFERENCE docs.

From-SVN: r84672
2004-07-13 23:24:27 -07:00
Richard Earnshaw 2ad4dcf985 arm.c (arm_cpp_interwork): New variable.
* arm.c (arm_cpp_interwork): New variable.
(arm_override_options): Set it if TARGET_INTERWORK was on the command
line.
* arm.h (arm_cpp_interwork): Declare it.
(TARGET_CPU_CPP_BUILTINS): Use it to control definition of
__THUMB_INTERWORK__ in the preprocessor.

From-SVN: r84351
2004-07-09 09:30:46 +00:00
Joseph Myers 8f99553ff6 c-decl.c, [...]: Don't check TARGET_MEM_FUNCTIONS.
* c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
	TARGET_MEM_FUNCTIONS.
	* system.h: Poison TARGET_MEM_FUNCTIONS.
	* libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
	bcmp_libfunc, bzero_libfunc): Remove.
	* optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
	bzero_libfunc.
	* doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
	* doc/standards.texi: Don't mention calling BSD string functions.
	* doc/invoke.texi: Likewise.  Mention that memmove may be called.
	* config/vax/t-memfuncs: New.
	* config/memcmp.c, config/memcpy.c, config/memmove.c,
	config/memset.c: New.
	* config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
	* config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
	vax/t-memfuncs.
	* config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
	config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
	config/elfos.h, config/gnu.h, config/h8300/h8300.h,
	config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
	config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
	config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
	config/netbsd.h, config/openbsd.h, config/pa/pa.h,
	config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
	config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
	config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.

From-SVN: r84130
2004-07-05 20:49:20 +01:00
Paul Brook 4adf3e34b2 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
From-SVN: r83651
2004-06-25 13:48:51 +00:00