Commit Graph

25 Commits

Author SHA1 Message Date
Ben Elliston 2011dbb082 unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move pc_low and pc_high declarations to the top of the function.
* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
	pc_low and pc_high declarations to the top of the function.

From-SVN: r149167
2009-07-02 14:50:20 +10:00
Tom Tromey bbf531f021 dwarf2.h: Remove.
gcc
	* dwarf2.h: Remove.
	* Makefile.in (DWARF2_H): New variable.
	(except.o): Use it.
	(dwarf2out.o): Likewise.
	(dwarf2asm.o): Likewise.
	* config/i386/t-i386: Use DWARF2_H.
	* except.c: Include elf/dwarf2.h.
	* unwind-dw2.c: Include elf/dwarf2.h.
	* dwarf2out.c: Include elf/dwarf2.h.
	(dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
	<dtprel>: New field.
	(dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
	(size_of_loc_descr): Likewise.
	(output_loc_operands_raw): Likewise.
	(output_loc_operands): Handle new dtprel field.
	(loc_checksum): Update.
	(loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
	* unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
	* unwind-dw2-fde.c: Include elf/dwarf2.h.
	* dwarf2asm.c: Include elf/dwarf2.h.
	* unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
	* config/mmix/mmix.c: Include elf/dwarf2.h.
	* config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
	* config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
	* config/sh/sh.c: Include elf/dwarf2.h.
	* config/i386/i386.c: Include elf/dwarf2.h.
gcc/ada
	* raise-gcc.c: Include elf/dwarf2.h.
include
	* elf/dwarf2.h: New file.  Merged with gdb.

From-SVN: r149070
2009-06-30 00:02:10 +00:00
Jakub Jelinek 748086b7b2 Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
From-SVN: r145841
2009-04-09 17:00:19 +02:00
Andrew Haley a8acd1c480 unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard against prev_cache_entry == NULL when moving a cache entry to the head of...
2005-12-15  Andrew Haley  <aph@redhat.com>

        * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
        against prev_cache_entry == NULL when moving a cache entry to the
        head of the list.

From-SVN: r108582
2005-12-15 16:17:50 +00:00
Kelley Cook 366ccddb2b Update FSF address.
From-SVN: r101317
2005-06-25 02:02:01 +00:00
Nathan Sidwell 950ccbc491 unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in read_encoded_value_with_base call.
* unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
	read_encoded_value_with_base call.
	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
	* unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
	* unwind-dw2.c (extract_cie_info): Fix aliasing in
	read_encoded_value call.
	(execute_cfa_program, uw_frame_state_for): Likewise.

From-SVN: r100927
2005-06-14 08:25:18 +00:00
Nathan Sidwell 79d0dfa314 unwind-dw2-fde-glibc.c (base_from_cb_data, [...]): Use gcc_assert and gcc_unreachable as appropriate.
* unwind-dw2-fde-glibc.c (base_from_cb_data,
	_Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
	appropriate.
	* unwind-dw2-fde.c (__deregister_frame_info_bases,
	base_from_object, fde_split, end_fde_sort): Likewise.
	* unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
	execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
	uw_init_context_1): Likewise.
	* unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
	_Unwind_Resume_or_Rethrow): Likewise.
	* unwind-pe.h (__gxx_abort): Do not define.
	(size_of_encoded_value, base_of_encoded_value,
	read_encoded_value_with_base): Use gcc_unreachable.
	* unwind.h (_Unwind_GetTextRelBase): Likewise.

From-SVN: r99835
2005-05-17 15:37:47 +00:00
Nathan Sidwell 232b67d9f8 Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
* Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
	* aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
	* configure.ac (enable_checking): Fix typos in runtime_checking.
	(ENABLE_RUNTIME_CHECKING): Mark as target template.
	(xm_file): Prepend auto-host.h
	(HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
	* mkconfig.sh: Do not automatically define USED_FOR_TARGET in
	tconfig.h.
	* crtstuff.c: Do not include auto-host.h.
	(IN_LIBGCC2): Do not define.
	* gcov-io.h: Include tconfig.h, not auto-host.h.
	* libgcc2.c: Do not include auto-host.h.
	(abort): Do not undefine.
	* libgcov.c: Remove unneeded comment about config.h.
	* unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
	* config.in, configure: Regenerated.

Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>

From-SVN: r99386
2005-05-08 10:13:19 +00:00
Kazu Hirata 25f99665af genattrtab.c, [...]: Update copyright.
* genattrtab.c, genemit.c, genoutput.c, genrecog.c,
	gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
	Update copyright.

From-SVN: r95931
2005-03-05 14:01:02 +00:00
Andrew Haley b120f3b75c unwind-dw2-fde-glibc.c (struct unw_eh_callback_data.check_cache): New field.
2005-03-04  Andrew Haley  <aph@redhat.com>

        * unwind-dw2-fde-glibc.c (struct
        unw_eh_callback_data.check_cache): New field.
        (frame_hdr_cache): New.
        (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
        Cache frame header info.

From-SVN: r95894
2005-03-04 19:54:16 +00:00
H.J. Lu 443728bba4 re PR target/14925 (libunwind enabled gcc generates incompatible libgcc_s.so.1)
2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/14925:
	Makefile.in (LIB2ADDEHSTATIC): New.
	(LIB2ADDEHSHARED): New.
	(LIBUNWIND): New.
	(LIBUNWINDDEP): New.
	(SHLIBUNWIND_LINK): New.
	(SHLIBUNWIND_INSTALL): New.
	(libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
	LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
	(clean): Remove libunwind*
	(stage1-start): Remove and copy stage1/libunwind*.
	(stage2-start): Remove and copy stage2/libunwind*.
	(stage3-start): Remove and copy stage3/libunwind*.
	(stage4-start): Remove and copy stage4/libunwind*.
	(stageprofile-start): Remove and copy stageprofile/libunwind*.
	(stagefeedback-start): Remove and copy stagefeedback/libunwind*.

	* config.gcc (ia64*-*-linux*): Always add t-libunwind to
	tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
	tmake_file if --with-system-libunwind isn't used.

	* config/ia64/t-glibc-libunwind: New file.
	* config/t-libunwind-elf: Likewise.
	* unwind-compat.c: Likewise.
	* unwind-compat.h: Likewise.
	* unwind-dw2-fde-compat.c: Likewise.

	* config/ia64/t-glibc (LIB2ADDEH): Updated.
	* config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.

	* config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
	aliases if needed.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2.c: Likewise.

	* config/t-libunwind (LIB2ADDEH): Updated.
	(LIB2ADDEHSTATIC): New.
	(T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
	(TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.

	* configure.ac: Change --enable-libunwind-exceptions to
	--with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
	* configure: Regenerated.
	* config.in: Updated.

	* doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
	above and mention --with-system-libunwind.
	(ia64-*-hpux*): Mention --enable-libunwind-exceptions is
	removed in gcc 3.4.3 and later.

	* gcc.c (init_spec): Add -lunwind to -lgcc_s if
	USE_LIBUNWIND_EXCEPTIONS is defined.

	* mklibgcc.in: Support libunwind.

From-SVN: r87066
2004-09-03 17:15:42 -07:00
Kazu Hirata 88462c42d2 bb-reorder.c, [...]: Update copyright.
gcc/
	* bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
	ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
	value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
	config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
	copyright.

gcc/java/
	* java/parse.h: Update copyright.

From-SVN: r78566
2004-02-27 14:50:47 +00:00
Alexandre Oliva 34208acf14 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
symbols in sections named by the user.
2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
* config.gcc (frv-*-*linux*): Handle like *-*-linux*.
* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
the above.
2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
one more pseudo to further improve code generation.
2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.md (movdi_ldd): Introduce explicit indirection
inside UNSPEC.
2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_legitimate_address_p): Added
allow_double_reg_p argument.  Adjust all callers.  Use it to
decide whether to enable double-register indirect addressing.
(frv_funcdesc_alias_set): Remove.
(frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
register.  Emit movdi_ldd.
(ldd_address_operand): New.
* config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
(PREDICATE_CODES): Add ldd_address_operand.
* config/frv/frv.md (movdi_ldd): New.
(symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
intermediate computations if possible.
(symGOTOFF2reg_i): Fix harmless typo.
2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
relocated p_vaddr to vaddr type.
* config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
* config/frv/frv.c (frv_get_funcdesc_alias_set): New.
(frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
MEM, or use a funcdesc alias set.  Use regular move instead of
ldd.
(dbl_memory_one_insn_operand): Recognize function descriptors by
type or by alias set, and don't split them.
* config/frv/frv.md (call, call_value): Never use call_internal
for fdpic.
(call_internal, call_value_internal): Never match for FDPIC.
(call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
call_value_fdpicsi): Require FDPIC.
(ldd): Removed.
2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
* unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
(_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
FDPIC.  Compute data base address.
* config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
before the other self-specs are processed.
* config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
Build with -fPIC.
2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
* unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
inhibit_libc is defined.
2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
* unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
__FRV_FDPIC__.
(__RELOC_POINTER): Define.
(_Unwind_IteratePhdrCallback): Use it.
* config/frv/frv.h (Twrite): Define.
(TRANSFER_FROM_TRAMPOLINE): Use it.
* config/frv/linux.h (INVOKE__main): Undefine.
(Twrite): Override.
2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
* doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
(-mlibrary-pic): Emphasize that this option generates EABI code.
(-mcpu): Add fr550.
(-mpack): Remove.
2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
and CONSTs in FDPIC mode.
* gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv.c (move_source_operand): Don't accept symbolic
constants.
* config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
rather than 'i' constraint for the 2-instruction alternative.
(*movsi_2word): New, incorporating existing int_2word_operand splitter.
2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
EXTRA_CONSTRAINT_FOR_Y.
(EXTRA_CONSTRAINT): Remove handling of 'Y'.
* config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
(addsi3): Change 'Y' constraint to 'Q'.
2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
* reload.c (CONST_POOL_OK_P): New macro.
(find_reloads): Use it to decide whether a constant can be forced
into memory.
* config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
constant satisfies got12_operand.
(frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
(frv_legitimate_address_p): Check for valid unspec offsets using
got12_operand rather than frv_legitimate_fdpic_operand_p.
(frv_legitimate_fdpic_operand_p): Delete.
(frv_emit_movsi): Abort if we try to use the FDPIC register during
or after reload.
(frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
TARGET_FDPIC.
* config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
(frv_fdpic_fptr_operand): Don't declare here.
* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
rather than fdpic_got12_operand.
(PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
got12_operand and const_unspec_operand.
* config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
(gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
(symbolic_operand): Remove.
(const_unspec_operand): New predicate.
* config/frv/frv.md (*movsi_got): Use got12_operand.
(*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
* config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
* config/frv/frv.c (frv_unspec): New structure.
(frv_small_data_reloc_p, frv_const_unspec_p): New functions.
(frv_print_operand_memory_reference): Use frv_const_unspec_p to
validate CONST indices.  Use frv_output_const_unspec to print them.
(frv_print_operand): Update call to unspec_got_name.  Use
frv_output_const_unspec to print constant unspecs.
(frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
Reject UNSPECs otherwise.
(unspec_got_name): Take the relocation number as argument, not an
rtx containing it.
(frv_output_addr_const_extra): Remove, replacing with...
(frv_output_const_unspec): ...this new function.
(frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
(gpr_or_int12_operand): Use fdpic_got12_operand.
(dbl_memory_one_insn_operand): Likewise.
(fdpic_got12_operand): Use frv_const_unspec_p.
(frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
are already legitimate.  Use frv_small_data_reloc_p when deciding
whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
* config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
label, for real this time.
* config/frv/frv.c (frv_local_funcdesc_p): Update to new
representation of visibility.
(fdpic_got12_operand, symbolic_operand): Mark unused arguments as
such.
2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
(TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
* config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
it was explicitly disabled.
(frv_stack_info): There is no need to save the link register in every
frame unless TARGET_LINKED_FP is true.
(frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
frame pointer if the stack pointer might change value.
(frv_return_addr_rtx): Check and process "count" argument.
2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
* config/frv/frv-protos.h (frv_legitimize_address): Remove.
(frv_find_base_term): Declare.
* config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
(FIND_BASE_TERM): Define.
(PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
small_data_register_operand, small_data_symbolic_operand.  Add
symbolic_operand.
* config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
(frv_print_operand_memory_reference, output_move_single): Remove
special handling for unlegitimized sdata addresses.
(frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
and symbolic addresses.
(frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
(frv_find_base_term): New function.
(int_2word_operand): Check specifically for symbolic address constants.
(pic_register_operand, pic_symbolic_operand): Delete.
(small_data_register_operand, small_data_symbolic_operand): Delete.
(dbl_memory_one_insn_operand): Don't call plus_small_data_p.
Allow UNSPEC_GOT constants if !TARGET_FDPIC.
(move_source_operand): Only accept CONSTs if they're a two-insn
symbolic constant.
(fdpic_got12_operand): Don't require TARGET_FDPIC.
(frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
using gen_symGOTOFF2reg*.
(frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
(frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
themselves a cost of 3 insns.
* config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
Change predicate to symbolic_operand.
(*movsi_high_got, *movsi_lo_sum_got): Likewise.
(*movsi_lda_sdata): Delete.
(*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
* config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
frv-*-*linux*.
* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
label.
* config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
-multilib-library-pic.
(LINK_SPEC): Add -z text for -mfdpic.
* config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
* config/frv/frvend.c (__ROFIXUP_END__): Likewise.
* config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
Override.
(OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
crtstuff-generated files.
2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
* config.gcc: Add frv-*-*linux*.
* config/frv/linux.h, config/frv/t-linux: New.
2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
when -mfdpic even if a linker script is explicitly listed.
2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_override_options): Clear asm_out
unaligned_op for SImode on FDPIC.
(frv_emit_movsi): Use compute_reloc_for_constant to compute the
argument passed to decl_readonly_section.
(frv_assemble_integer): Revert 2003-09-30's change, but make the
whole block run with FDPIC even with -fno-PIC.
2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_cannot_force_const_mem): Don't force
symbol or label plus offset to memory.
(frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
GOTOFF and GPREL for LABEL_REF.
* config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
-mfdpic unless -mno-gprel-ro, -fpic or -fpie.
(MASK_GPREL_RO, TARGET_GPREL_RO): New.
(TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
* doc/invoke.texi: Document them.
2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
(frv_splittable_got_operand): Removed.
* config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
LO_SUM.  Add comments.
(frv_override_options): Moved enabling of FDPIC to
DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
(frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
(frv_legitimize_fdpic_address): Don't duplicate logic in
frv_emit_movsi.
(frv_gen_GPsym2reg): New.
(unspec_got_name): Added gprel.
(frv_expand_fdpic_call): Add support for inlining PLTs.
(fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
(gpr_or_int12_operand): Added GPREL12.
(pic_symbolic_operand): Match even if !flag_pic for FDPIC.
(small_data_symbolic_operand): Fail if FDPIC.
(fdpic_splittable_got_operand): Removed.
(fdpic_got12_operand): Added GPREL12.
(frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
when appropriate.  Fix sdata GOTOFF.
(frv_legitimate_constant_p): Require legitimate PIC operand for
FDPIC with pic, but only a legitimate fdpic operand for non-pic.
(frv_assemble_integer): Move FDPIC funcdesc handling out of
flag_pic case.
(frv_asm_out_constructor, frv_asm_out_destructor): Abort if
frv_assemble_integer fails.
* config/frv/frv.h (DRIVER_SELF_SPECS): New.
(SUBTARGET_DRIVER_SELF_SPECS): New.
(ASM_SPEC): Don't pass -mno-fdpic.
(LINK_SPEC): Pass -melf32frvfd for FDPIC.
(MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
(TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
-multilib-library-pic.
(PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
condexec_si_media_operator, condexec_sf_add_operator and
condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
and condexec_sf_unary_operator.
* config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
New.
(movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
movsi_internal.  Give them internal names.  movsi_got has type
int.
(fdpic got splitters): Remove.
(symGPREL2reg, symGPREL2reg_hilo): New.
* config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
to -mlibrary-pic.  Map -multilib-library-pic to it.
* doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
Document.
2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
(TARGET_CANNOT_FORCE_CONST_MEM): Define to...
(frv_cannot_force_const_mem): New function.
(const_small_data_p, plus_small_data_p): Update comments on sdata
on FDPIC.
(frv_override_options): Set flag_pie for FDPIC too.
(frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
call-saved registers on FDPIC.
(frv_stack_info): Don't preserve the PIC register on FDPIC, and
don't force LR to be preserved.
(frv_expand_prologue): Likewise.
(frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
(frv_frame_pointer_required): Don't force it just because the
FDPIC register is used.
(frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
operand only if !condexec_p.
(frv_legitimize_address): Return the FDPIC-legitimized address.
Don't match small data here on FDPIC.
(frv_legitimate_fdpic_operand_p): Don't accept unadorned function
symbols.  Use TRUE/FALSE instead of 1/0.
(frv_local_funcdesc_p): New.
(frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
immediates when possible.
(pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
(dbl_memory_one_insn_operand): Accept addresses that add a REG and
an UNSPEC_GOT.
(frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
12-bit immediates when possible.
(frv_legitimate_constant_p): In FDPIC, reject SImode operands that
are not legitimate pic operands.
(frv_in_small_data_p): Re-enable for FDPIC.
* config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
(FRV_GLOBAL_P): Removed.
* config/frv/frv.md: Add modes to CONSTs.
(movsi_got): New.
(movsi_lo_sum_got): Use separate matches instead of match_dup.
(movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
(fdpic splittable operations): Match on flag_pic != 1.
2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_asm_out_constructor,
frv_asm_out_destructor): Pass to frv_assemble_integer the size in
bytes, not bits.
2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
* config/frv/frv.c (frv_assemble_integer): Reject complex
expressions referencing function SYMBOL_REFs.
* config/frv/frv.c (frv_function_symbol_referenced_p): New.
(move_source_operand): Reject CONSTs that reference function
SYMBOL_REFs on FDPIC.
(frv_emit_movsi): If we get such a CONST, break it up.
* config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
(TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
* config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
MEM.
(frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
(frv_trampoline_size): Increase for FDPIC.
* config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
(TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
* config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
Disable use of GOTOFF for now.
(const_small_data_p, plus_small_data_p, frv_in_small_data_p):
Disable use of small data in FDPIC for now.
(frv_asm_output_mi_thunk): Implement for FDPIC.
* config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
* config/frv/frv.c (frv_asm_out_constructor): Use
frv_assemble_integer for FDPIC pointers.
(frv_asm_out_destructor): Likewise.
* config/frv/frv.md (ldd): Fix order of operands.  Use
address_operand for input.
2003-09-18  DJ Delorie  <dj@redhat.com>
* config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
(unspec_got_name): Correct typo.
(frv_emit_movsi): Pre-expand splittable GOTs.
(frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
* config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
(symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
* config/frv/t-frv: Add -mfdpic multilibs.
* config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
(TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
* config/frv/frv.c (frv_override_options): -mfdpic assumes
flag_pic, default to 32-bit pics, require DWORD ops.
(frv_override_options): Add W and Z constraints.
(frv_expand_prologue): No pic prologue for -mfdpic.
(frv_asm_output_mi_thunk): Support -mfdpic (soon).
(frv_print_operand_memory_reference): Handle GOT constants.
(frv_legitimate_address_p): Allow GOT constants.
(frv_legitimize_address): Handle GOT addresses too.
(frv_legitimate_fdpic_operand_p): New.
(frv_legitimize_fdpic_address): New.
(unspec_got_name): New.
(frv_output_addr_const_extra): New.
(frv_expand_fdpic_call): New.
(frv_fdpic_fptr_operand): New.
(gpr_or_int12_operand): Handle GOT operands.
(int_2word_operand): Handle GOT operands.
(fdpic_operand): New.
(fdpic_splittable_got_operand): New.
(fdpic_got12_operand): New.
(frv_emit_movsi): Handle GOT operands.
(frv_assemble_integer): -mfdpic doesn't use rofixups.
(frv_print_operand): Support 'g' code for GOT operands.
* config/frv/frv-protos.h: Add prototypes as needed.
* config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
R_FRV_GOTOFFLO): New.
(movsi_high_got, movsi_lo_sum_got): New.
(*movsi_pic): Don't use this splitter for -mfdpic.
(addsi3): Allow GOT references also.
(call, call_value): Handle -mfdpic separately.
(call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
call_value_fdpicsi): New.
(symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
symGOTOFF2reg_i): New.
* config/frv/frv.h (MASK_FDPIC): New.
(TARGET_FDPIC): New.
(TARGET_SWITCHES): Add -mfdpic.
(FDPIC_FPTR_REGNO): New.
(FDPIC_REGNO): New.
(OUR_FDPIC_REG): New.
(enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
FDPIC_CALL_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
(EXTRA_CONSTRAINT): Add it here.
(FRV_GLOBAL_P): New.
(OUTPUT_ADDR_CONST_EXTRA): New.

From-SVN: r78373
2004-02-24 16:58:39 +00:00
Andreas Jaeger a30794da51 2003-10-31 Andreas Jaeger <aj@suse.de>,
Zack Weinberg  <zack@codesourcery.com>


        * crtstuff.c (__register_frame_info, __register_frame_info_bases)
        (__deregister_frame_info, __deregister_frame_info_bases):
        Constify void * argument.
        * unwind-dw2-fde.h (struct fde_vector):
        Constify 'orig_data' and 'array' fields.
        (__register_frame_info, __register_frame_info_bases)
        (__deregister_frame_info, __deregister_frame_info_bases):
        Constify void * argument.
        (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
        return values, and casts of type fde *, struct dwarf_fde *,
        and struct dwarf_cie *.
        * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
        (__deregister_frame_info, __deregister_frame_info_bases):
        Constify void * argument.
        (get_cie_encoding, ): Constify struct dwarf_cie * argument.
        (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
        (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
        fde_split, SWAP, frame_downheap, frame_heapsort)
        (classify_object_over_fdes, add_fdes, linear_search_fdes,
        binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
        binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
        Constify arguments, local variables, return values, and casts
        of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
        Use const pointer types in sizeof expressions, for clarity.
        * unwind-dw2-fde-glibc.c
        (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
        (struct unw_eh_callback_data): Constify 'ret' field.

Co-Authored-By: Zack Weinberg <zack@codesourcery.com>

From-SVN: r73155
2003-10-31 21:46:26 +01:00
Andreas Jaeger 74764b8442 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback):Remove usage of
CRT_GET_RFIB_TEXT.

From-SVN: r67425
2003-06-04 07:41:31 +02:00
Nathanael Nerode 54a7b5732a c-pch.c, [...]: Replace "GNU CC" with "GCC".
* c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
	langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
	unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
	"GNU CC" with "GCC".

From-SVN: r64297
2003-03-13 03:48:31 +00:00
Kazu Hirata 3d042e770b ifcvt.c: Fix comment typos.
* ifcvt.c: Fix comment typos.
	* lcm.c: Likewise.
	* libgcc2.c: Likewise.
	* local-alloc.c: Likewise.
	* loop.c: Likewise.
	* predict.c: Likewise.
	* ra-build.c: Likewise.
	* ra.c: Likewise.
	* ra-colorize.c: Likewise.
	* ra.h: Likewise.
	* ra-rewrite.c: Likewise.
	* regmove.c: Likewise.
	* reload.h: Likewise.
	* rtlanal.c: Likewise.
	* toplev.c: Likewise.
	* tree.h: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* vmsdbgout.c: Likewise.

From-SVN: r61421
2003-01-17 03:28:11 +00:00
Zack Weinberg 4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Geoffrey Keating 3cfe49dab8 Index: ChangeLog
2002-11-05  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc: Don't create crtbegin, crtend on Darwin; do create
	crt2.o.  Rearrange t-darwin makefiles.
	* crtstuff.c [OBJECT_FORMAT_MACHO]: Delete.
	* unwind-dw2-fde-darwin.c: New.
	* unwind-dw2-fde-glibc.c: Correct comment.
	* unwind-dw2-fde.c (__register_frame_info_bases)
	[DWARF2_OBJECT_END_PTR_EXTENSION]: Clear fde_end.
	(classify_object_over_fdes): Use last_fde.
	(add_fdes): Likewise.
	(linear_search_fdes): Likewise.
	* unwind-dw2-fde.h (struct object)
	[DWARF2_OBJECT_END_PTR_EXTENSION]: Add fde_end field.
	(last_fde): New.
	* config/darwin.h (STARTFILE_SPEC): Include crt2.o not crtbegin.o.
	(ENDFILE_SPEC): No crtend.o.
	* config/t-darwin: New.
	* config/i386/t-darwin: Delete.
	* config/darwin-crt2.c: New.
	* config/rs6000/t-darwin: Delete contents duplicated in t-rs6000
	or config/t-darwin.

Index: testsuite/ChangeLog
2002-11-05  Geoffrey Keating  <geoffk@apple.com>

	* g++.old-deja/g++.eh/badalloc1.C: XFAIL excess errors test on
	Darwin.

From-SVN: r58877
2002-11-07 06:00:07 +00:00
Kazu Hirata 41077ce4b3 target.h: Fix formatting.
* target.h: Fix formatting.
	* timevar.h: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* toplev.h: Likewise.
	* tree.c: Likewise.
	* tree-dump.h: Likewise.
	* tree.h: Likewise.
	* tree-inline.h: Likewise.
	* unroll.c: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind.h: Likewise.
	* unwind-sjlj.c: Likewise.
	* varasm.c: Likewise.
	* varray.h: Likewise.
	* vmsdbg.h: Likewise.
	* vmsdbgout.c: Likewise.
	* xcoffout.h: Likewise.

From-SVN: r54123
2002-05-31 22:15:42 +00:00
John David Anglin 703b0080a4 * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
From-SVN: r49498
2002-02-04 22:21:12 +00:00
Jakub Jelinek 72c7c913b4 unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame* registry only.
* unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
	registry only.
	* crtstuff.c: Likewise.

From-SVN: r49212
2002-01-25 12:22:52 +01:00
Kazu Hirata a01da83b22 toplev.c: Fix formatting.
* toplev.c: Fix formatting.
	* tree.c: Likewise.
	* tree-dump.c: Likewise.
	* unroll.c: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-sjlj.c: Likewise.

From-SVN: r48749
2002-01-10 20:12:57 +00:00
Zack Weinberg 5f77a9c522 unwind-dw2-fde-glibc.c: #define _Unwind_Find_FDE to itself before including unwind-dw2-fde.c...
* unwind-dw2-fde-glibc.c: #define _Unwind_Find_FDE to itself
        before including unwind-dw2-fde.c, if we are not using the
        special code in this file.

From-SVN: r48056
2001-12-15 17:27:57 -08:00
Jakub Jelinek 275b60d6d8 configure.in: Check for ld.
* configure.in: Check for ld.
	(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
	* configure, config.in: Rebuilt.
	* config.gcc: Add crtbeginT.o to extra_parts where needed.
	* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
	frame unwinding on Linux.
	* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
	frame unwinding.
	* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
	(LINK_EH_SPEC): Define.
	* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
	* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
	* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
	iterate further if pc falls into current library, but fde was not
	found.
	* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
	if using glibc.
	(LINK_EH_SPEC): Define.
	* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
	Use crtbeginT.o for -static.
	(LINK_EH_SPEC): Define.
	* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
	* Makefile.in (crtbeginT.o): Add rule.
	* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
	If neither -static-libgcc nor -shared-libgcc is passed and -shared,
	use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
	If none of the above switches are passed, use -lgcc -lgcc_eh.
	(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
	* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
	creating libgcc_s.so, put them into separate libgcc_eh.a instead.
	* unwind-dw2-fde.c: Don't include any headers if this file
	is included from other .c file.
	* unwind-dw2-fde-glibc.c: New file.
	* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
	Use it instead of EH_FRAME_SECTION_NAME where appropriate.

From-SVN: r48039
2001-12-15 12:49:18 +01:00