summaryrefslogtreecommitdiff
path: root/gas/dw2gencfi.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove trailing white spaces on gasH.J. Lu2013-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * app.c: Remove trailing white spaces. * as.c: Likewise. * as.h: Likewise. * cond.c: Likewise. * dw2gencfi.c: Likewise. * dwarf2dbg.h: Likewise. * ecoff.c: Likewise. * input-file.c: Likewise. * itbl-lex.h: Likewise. * output-file.c: Likewise. * read.c: Likewise. * sb.c: Likewise. * subsegs.c: Likewise. * symbols.c: Likewise. * write.c: Likewise. * config/tc-i386.c: Likewise. * doc/Makefile.am: Likewise. * doc/Makefile.in: Likewise. * doc/c-aarch64.texi: Likewise. * doc/c-alpha.texi: Likewise. * doc/c-arc.texi: Likewise. * doc/c-arm.texi: Likewise. * doc/c-avr.texi: Likewise. * doc/c-bfin.texi: Likewise. * doc/c-cr16.texi: Likewise. * doc/c-d10v.texi: Likewise. * doc/c-d30v.texi: Likewise. * doc/c-h8300.texi: Likewise. * doc/c-hppa.texi: Likewise. * doc/c-i370.texi: Likewise. * doc/c-i386.texi: Likewise. * doc/c-i860.texi: Likewise. * doc/c-m32c.texi: Likewise. * doc/c-m32r.texi: Likewise. * doc/c-m68hc11.texi: Likewise. * doc/c-m68k.texi: Likewise. * doc/c-microblaze.texi: Likewise. * doc/c-mips.texi: Likewise. * doc/c-msp430.texi: Likewise. * doc/c-mt.texi: Likewise. * doc/c-s390.texi: Likewise. * doc/c-score.texi: Likewise. * doc/c-sh.texi: Likewise. * doc/c-sh64.texi: Likewise. * doc/c-tic54x.texi: Likewise. * doc/c-tic6x.texi: Likewise. * doc/c-v850.texi: Likewise. * doc/c-xc16x.texi: Likewise. * doc/c-xgate.texi: Likewise. * doc/c-xtensa.texi: Likewise. * doc/c-z80.texi: Likewise. * doc/internals.texi: Likewise.
* * dw2gencfi.c (all_fde_data): Export.Richard Henderson2011-08-071-1/+1
| | | | | | * dw2gencfi.h (all_fde_data): Declare. * config/tc-alpha.c (alpha_elf_md_end): Don't convert legacy unwind info to cfi unwind info if the user already has supplied some.
* * dw2gencfi.c (tc_cfi_endproc): Avoid "set but not used" error.Alan Modra2011-05-101-1/+1
|
* 2011-05-09 Paul Brook <paul@codesourcery.com>Paul Brook2011-05-091-75/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bfd/ * elf32-tic6x.c (is_tic6x_elf_unwind_section_name, elf32_tic6x_fake_sections): New functions. (elf_backend_fake_sections): Define. gas/ * config/tc-tic6x.c (streq): Define. (tic6x_get_unwind): New. (s_tic6x_cantunwind, s_tic6x_handlerdata, s_tic6x_endp, s_tic6x_personalityindex, s_tic6x_personality): New functions. (md_pseudo_table): Add "endp", "handlerdata", "personalityindex", "personality" and "cantunwind". (tic6x_regname_to_dw2regnum, tic6x_frame_initial_instructions, tic6x_start_unwind_section, tic6x_unwind_frame_regs, tic6x_pop_rts_offset_little, tic6x_pop_rts_offset_big, tic6x_unwind_reg_from_dwarf, tic6x_flush_unwind_word, tic6x_unwind_byte, tic6x_unwind_2byte, tic6x_unwind_uleb, tic6x_cfi_startproc, output_exidx_entry, tic6x_output_unwinding, tic6x_cfi_endproc): New. * config/tc-tic6x.h (TIC6X_NUM_UNWIND_REGS): Define. (tic6x_unwind_info): New. (tic6x_segment_info_type): Add marked_pr_dependency, unwind and text_unwind. (TARGET_USE_CFIPOP, tc_regname_to_dw2regnum, tc_cfi_frame_initial_instructions, DWARF2_DEFAULT_RETURN_COLUMN, DWARF2_CIE_DATA_ALIGNMENT, tc_cfi_startproc, tc_cfi_endproc, tc_cfi_section_name): Define. * doc/c-tic6x.texi: Document new unwinding directives. * dw2gencfi.c (tc_cfi_startproc, tc_cfi_endproc): Add default definitions. (cfi_insn_data, fde_entry, CFI_adjust_cfa_offset, CFI_return_column, CFI_rel_offset, CFI_escape, CFI_signal_frame, CFI_val_encoded_addr): Move to dw2gencfi.h. (CFI_EMIT_target): Define. (dot_cfi_sections): Check tc_cfi_section_name. (dot_cfi_startproc): Use tc_cfi_startproc. (dot_cfi_endproc): Use tc_cfi_endproc. * dw2gencfi.h (cfi_insn_data, fde_entry, CFI_adjust_cfa_offset, CFI_return_column, CFI_rel_offset, CFI_escape, CFI_signal_frame, CFI_val_encoded_addr): Move to here from dw2gencfi.c. gas/testsuite: * gas/tic6x/unwind-1.d: New test. * gas/tic6x/unwind-1.s: New test. * gas/tic6x/unwind-2.d: New test. * gas/tic6x/unwind-2.s: New test. * gas/tic6x/unwind-3.d: New test. * gas/tic6x/unwind-3.s: New test. * gas/tic6x/unwind-bad-1.d: New test. * gas/tic6x/unwind-bad-1.s: New test. * gas/tic6x/unwind-bad-1.l: New test. * gas/tic6x/unwind-bad-2.d: New test. * gas/tic6x/unwind-bad-2.s: New test. * gas/tic6x/unwind-bad-2.l: New test. include/ * elf/tic6x.h (ELF_STRING_C6000_unwind, ELF_STRING_C6000_unwind_info, ELF_STRING_C6000_unwind_once, ELF_STRING_C6000_unwind_info_once): Define.
* * dw2gencfi.c (CUR_SEG, SET_CUR_SEG, HANDLED, SET_HANDLED): Define.Alan Modra2011-05-071-97/+96
| | | | | | | | | Use throughout in place of #if SUPPORT_FRAME_LINKONCE. (struct fde_entry): Rename cseg to cur_seg. (cfi_change_reg_numbers): Remove ATTRIBUTE_UNUSED. (get_cfi_seg): Likewise. Use if (SUPPORT_FRAME_LINKONCE) rather that #if SUPPORT_FRAME_LINKONCE. (cfi_finish): Likewise.
* * dw2gencfi.c (SUPPORT_FRAME_LINKONCE): Define. Use throughoutAlan Modra2011-05-051-21/+82
| | | | | | | | | | file to conditionally compile code added 2011-04-26. (cfi_change_reg_numbers): Add ATTRIBUTE_UNUSED on params only used when SUPPORT_FRAME_LINKONCE. (get_cfi_seg): Likewise. Reintroduce old code for when not SUPPORT_FRAME_LINKONCE. (cfi_finish): Move get_cfi_seg calls out of loop when not SUPPORT_FRAME_LINKONCE. Avoid unused var warning.
* * dw2gencfi.c (dwcfi_seg_list): New struct.Nick Clifton2011-04-261-113/+348
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (dwcfi_hash): New static hash variable. (get_debugseg_name): New. (alloc_debugseg_item): New. (make_debug_seg): New. (dwcfi_hash_insert): New. (dwcfi_hash_find): New. (dwcfi_hash_find_or_make): New. (cfi_insn_data): New member cur_seg. (cie_entry): Likewise. (fde_entry): New cseg and handled members. (alloc_fde_entry): Initialize cseg member. (alloc_cfi_insn_data): Initialize cur_seg member. (dot_cfi_sections): Compare for beginning of section names via strncmp. (get_cfi_seg): New. (cfi_finish): Treat link-once sections. (is_now_linkonce_segment): New local helper. (output_cie): Ignore cie entries not member of current segment. (output_fde): Likewise. (select_cie_for_fde): Likewise. (cfi_change_reg_numbers): Add new argument for current segment and ignore insn elements, if not part of current segment. * ehopt.c (get_cie_info): Use strncmp for section name matching. (heck_eh_frame): Likewise. * coffcode.h (sec_to_styp_flags): Allow linkonce for debugging sections. * scripttempl/pe.sc: Handle .eh_frame($|.)* sections. * scripttempl/pep.sc: Likewise. * ld-pe/pe.exp: Add cfi/cfi32 tests. * ld-pe/cfi.d: New. * ld-pe/cfi32.d: New. * ld-pe/cfia.s: New. * ld-pe/cfib.s: New.
* Fix comment typo.Richard Henderson2011-02-161-1/+1
|
* * dw2gencfi.c (dot_cfi_dummy): New.Richard Henderson2011-02-151-0/+37
| | | | | (cfi_pseudo_table) [!TARGET_USE_CFIPOP]: New. * read.c (pobegin): Unconditionally call cfi_pop_insert.
* * dw2gencfi.c (TC_DWARF2_EMIT_OFFSET): Provide default.Richard Henderson2010-09-021-5/+27
| | | | | | | | | | | | (output_fde): Use it. Make sure to fully init exp before using it. testsuite/ * gas/cfi/cfi-common-1.d: Use objdump instead of readelf to dump. * gas/cfi/cfi-common-2.d, gas/cfi/cfi-common-3.d, gas/cfi/cfi-common-4.d, gas/cfi/cfi-common-6.d, gas/cfi/cfi-common-7.d, gas/cfi/cfi-x86_64.d: Likewise. * gas/cfi/cfi-x86_64.s: Remove .type directives. * gas/cfi/cfi.exp: Run for pecoff objects too. * gas/cfi/reloc-pe-i386.d, gas/cfi/reloc-pe-i386.s: New test.
* 2010-03-15 Thomas Schwinge <thomas@codesourcery.com>Thomas Schwinge2010-03-151-2/+2
| | | | | * dw2gencfi.c (output_cie): Consider emitting the S augmentation in all cases, and not only for .eh_frame.
* 2010-03-15 Thomas Schwinge <thomas@codesourcery.com>Thomas Schwinge2010-03-151-17/+19
| | | | | * dw2gencfi.c (output_cie): Make it more explicit which code paths belong to .eh_frame only.
* Add -Wshadow to the gcc command line options used when compiling the binutils.Nick Clifton2009-12-111-1/+0
| | | | Fix up all warnings generated by the addition of this switch.
* 2009-11-04 Daniel Jacobowitz <dan@codesourcery.com>Maxim Kuvyrkov2009-11-041-2/+10
| | | | | | | | | | | Maxim Kuvyrkov <maxim@codesourcery.com> * config/tc-m68k.h (CF_DIFF_EXPR_OK): Define to 0 for uClinux. (CFI_DIFF_LSDA_OK): Define. * config/te-uclinux.h: New file. * configure.tgt (m68k-uclinux): Define em. * dw2gencfi.c (CFI_DIFF_LSDA_OK): New macro. (dot_cfi_lsda, output_fde): Use instead of CFI_DIFF_EXPR_OK.
* * dw2gencfi.c: Include dwarf2dbg.h.Jakub Jelinek2009-10-021-57/+255
| | | | | | | | | | | | | | | | | (DWARF2_FORMAT): Define if not defined. (dot_cfi_sections): New function. (cfi_pseudo_table): Handle .cfi_sections. (CFI_EMIT_eh_frame, CFI_EMIT_debug_frame): Define. (cfi_sections): New variable. (output_cie, output_fde, select_cie_for_fde): Add eh_frame argument, add supporting for outputting .debug_frame section. (cfi_change_reg_numbers): New function or macro. (cfi_finish): Only emit .eh_frame if cfi_sections & CFI_EMIT_eh_frame. Emit .debug_frame if cfi_sections & CFI_EMIT_debug_frame. * config/tc-ppc.h (md_reg_eh_frame_to_debug_frame): Define. * doc/as.texinfo (CFI directives): Document .cfi_sections.
* * po/bfd.pot: Updated by the Translation project.Nick Clifton2009-09-111-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * po/binutils.pot: Updated by the Translation project. * po/gold.pot: Updated by the Translation project. * po/gold.pot: Updated by the Translation project. * po/gprof.pot: Updated by the Translation project. * po/sv.po: Updated Swedish translation. * po/ld.pot: Updated by the Translation project. * po/fi.po: Updated Finnish translation. * po/ld.pot: Updated by the Translation project. * po/fi.po: Updated Finnish translation. Updated sources to compile cleanly with -Wc++-compat: * basic_blocks.c: Add casts. * cg_dfn.c: Add cast. * corefile.c: Add casts. * gmon_io.c: Add casts. * hist.c: Add cast. * source.c: Add cast. * sym_ids.c (struct match): Moved to top level. Updated soruces in ld/* to compile cleanly with -Wc++-compat: * ld.h (enum endian_enum,enum symbolic_enum,enum dynamic_list_enum): Move to top level. * ldcref.c: Add casts. * ldctor.c: Add casts. * ldexp.c * ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level. * ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead of integer. * ldlang.h (enum statement_enum): Move to top level. * ldmain.c: Add casts. * ldwrite.c: Add casts. * lexsup.c: Add casts. (enum control_enum): Move to top level. * mri.c: Add casts. (mri_draw_tree): Use enum name instead of integer. Updated sources to compile cleanly with -Wc++-compat: * basic_blocks.c: Add casts. * cg_dfn.c: Add cast. * corefile.c: Add casts. * gmon_io.c: Add casts. * hist.c: Add cast. * source.c: Add cast. * sym_ids.c (struct match): Moved to top level. * as.c (main): Call dwarf2_init. * config/obj-elf.c (struct group_list): New field. (build_group_lists): Use hash lookup. (free_section_idx): New function. (elf_frob_file): Adjust. * dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables. (get_line_subseg): Adjust. (dwarf2_init): New function. * dwarf2dbg.h (dwarf2_init): New declaration.
* * gas/app, gas/as.c, gas/as.h, gas/atof-generic.c, gas/cgen.c,Nick Clifton2009-06-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | gas/config/atof-ieee.c, gas/config/obj-aout.c, gas/config/obj-coff.c, gas/config/obj-ecoff.c, gas/config/obj-elf.c, gas/config/obj-som.c, gas/config/tc-alpha.c, gas/config/tc-arc.c, gas/config/tc-arm.c, gas/config/tc-cr16.c, gas/config/tc-cris.c, gas/config/tc-crx.c, gas/config/tc-d30v.c, gas/config/tc-dlx.c, gas/config/tc-hppa.c, gas/config/tc-i370.c, gas/config/tc-i386-intel.c, gas/config/tc-i386.c, gas/config/tc-i860.c, gas/config/tc-i960.c, gas/config/tc-ia64.c, gas/config/tc-iq2000.c, gas/config/tc-m32c.c, gas/config/tc-m32r.c, gas/config/tc-m68hc11.c, gas/config/tc-m68k.c, gas/config/tc-maxq.c, gas/config/tc-mcore.c, gas/config/tc-mep.c, gas/config/tc-mips.c, gas/config/tc-mmix.c, gas/config/tc-mn10300.c, gas/config/tc-moxie.c, gas/config/tc-ns32k.c, gas/config/tc-pj.c, gas/config/tc-ppc.c, gas/config/tc-s390.c, gas/config/tc-score.c, gas/config/tc-score7.c, gas/config/tc-sh.c, gas/config/tc-sparc.c, gas/config/tc-spu.c, gas/config/tc-tic30.c, gas/config/tc-vax.c, gas/config/tc-xtensa.c, gas/config/xtensa-relax.c, gas/dw2gencfi.c, gas/dwarf2dbg.c, gas/ehopt.c, gas/expr.c, gas/frags.c, gas/input-file.c, gas/read.c, gas/sb.c, gas/subsegs.c, gas/symbols.c, gas/write.c: Change the name of the gas macro `assert' to `gas_assert'.
* * dw2gencfi.c (output_cfi_insn): Initialize fragment before rs_cfaJakub Jelinek2009-06-091-2/+3
| | | | | | | | to DW_CFA_advance_loc4. * gas/cfi/cfi-common-7.d: New test. * gas/cfi/cfi-common-7.s: New. * gas/cfi/cfi.exp: Add cfi-common-7 test.
* * Makefile.am (ehopt.o): Add struc-symbol.h.Jakub Jelinek2008-11-281-6/+6
| | | | | | | | | | | | | | * Makefile.in: Regenerated. * ehopt.c: Include struc-symbol.h. (check_eh_frame): For very small O_constant DW_CFA_advance_loc4 create correct DW_CFA_advance_loc. Handle O_subtract only for code alignment factor 1, otherwise handle O_divide or O_right_shift of O_subtract and O_constant. (eh_frame_estimate_size_before_relax): Always divide by ca. (eh_frame_convert_frag): Likewise. * dw2gencfi.c (output_cfi_insn): Scale DW_CFA_advance_loc1, DW_CFA_advance_loc2 and DW_CFA_advance_loc4 outputs.
* * dw2gencfi.c (cfi_finish): Deal with md_fix_up_eh_frame.Eric Botcazou2008-10-091-0/+4
| | | | | | * config/tc-i386.h (md_fix_up_eh_frame): Define on Solaris. (i386_solaris_fix_up_eh_frame): Declare. * config/tc-i386.c (i386_solaris_fix_up_eh_frame): New function.
* * dw2gencfi.c (output_cfi_insn): Fix typo in invocation ofAlan Modra2008-09-301-1/+1
| | | | tc_cfi_emit_pcrel_expr macro.
* include/binutils-arc-20081103-branchRichard Henderson2008-09-241-4/+142
| | | | | | | | | | | | | | | | | * elf/dwarf2.h (DW_OP_GNU_encoded_addr): New. binutils/ * dwarf.c (size_of_encoded_value, get_encoded_value): Move up. (decode_location_expression): Add section parameter. Handle DW_OP_GNU_encoded_addr. (read_and_display_attr_value): Update decode_location_expression call. (display_debug_loc, display_debug_frames): Likewise. gas/ * dw2gencfi.c (DWARF2_ADDR_SIZE): Provide default. (struct cfi_insn_data): Add ea member. (CFI_val_encoded_addr, dot_cfi_val_encoded_addr): New. (output_cfi_insn): Handle CFI_val_encoded_addr. (select_cie_for_fde): Don't match CFI_val_encoded_addr. * doc/as.texinfo (.cfi_val_encoded_addr): Document.
* * dw2gencfi.c (CFI_DIFF_EXPR_OK): Define if not defined.Dave Anglin2008-09-071-6/+15
| | | | | | (dot_cfi_personality): Use CFI_DIFF_EXPR_OK instead of DIFF_EXPR_OK. (dot_cfi_lsda, output_cie, output_fde): Likewise. * config/tc-hppa.h (CFI_DIFF_EXPR_OK): Define.
* * dw2gencfi.c (DWARF2_FDE_RELOC_SIZE): New.Richard Henderson2008-08-211-8/+34
| | | | | | | | | | | | (output_cie, output_fde): Use it. (DWARF2_EH_FRAME_READ_ONLY): New. (cfi_finish): Use it. * config/tc-hppa.h (DWARF2_FDE_RELOC_SIZE): Set to 8 for 64-bit. (DWARF2_CIE_DATA_ALIGNMENT): Change sign. (DWARF2_EH_FRAME_READ_ONLY): New. * config/tc-hppa.c (tc_gen_reloc): Generate pc-relative relocations from the results of DIFF_EXPR_OK manipulation.
* gas/Jan Beulich2008-02-131-14/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-13 Jan Beulich <jbeulich@novell.com> * config/tc-i386.c (allow_pseudo_reg): New. (parse_real_register): Check for NULL just once. Allow all register table entries when allow_pseudo_reg is non-zero. Don't allow any registers without type when allow_pseudo_reg is zero. (tc_x86_regname_to_dw2regnum): Replace with ... (tc_x86_parse_to_dw2regnum): ... this. (tc_x86_frame_initial_instructions): Adjust for above change. * config/tc-i386.h (tc_regname_to_dw2regnum): Remove. (tc_parse_to_dw2regnum): New. (tc_x86_regname_to_dw2regnum): Replace with ... (tc_x86_parse_to_dw2regnum): ... this. * dw2gencfi.c (tc_parse_to_dw2regnum): New, broken out of ... (cfi_parse_reg): ... this. Use tc_parse_to_dw2regnum. Adjust error handling. gas/testsuite/ 2008-02-13 Jan Beulich <jbeulich@novell.com> * gas/cfi/cfi-i386.s: Add code testing use of all registers. Fix a few comments. * gas/cfi/cfi-x86_64.s: Likewise. * gas/cfi/cfi-i386.d, gas/cfi/cfi-x86_64.d: Adjust. opcodes/ 2008-02-13 Jan Beulich <jbeulich@novell.com> * i386-gen.c (process_i386_registers): Process new fields. * i386-opc.h (reg_entry): Shrink reg_flags and reg_num to unsigned char. Add dw2_regnum and Dw2Inval. * i386-reg.tbl: Provide initializers for dw2_regnum. Add pseudo register names. * i386-tbl.h: Re-generate.
* gas/Jan Beulich2007-09-261-12/+8
| | | | | | | 2007-09-26 Jan Beulich <jbeulich@novell.com> * dw2gencfi.c: Conditionalize whole body upon TARGET_USE_CFIPOP. (cfi_finish): Add second empty instance.
* Switch to GPLv3Nick Clifton2007-07-031-2/+2
|
* * dw2gencfi.c (struct fde_entry): Add per_encoding, lsda_encoding,Jakub Jelinek2006-11-031-10/+262
| | | | | | | | | | | | | | | | | | personality and lsda. (struct cie_entry): Add per_encoding, lsda_encoding and personality. (alloc_fde_entry): Initialize per_encoding and lsda_encoding. (cfi_pseudo_table): Handle .cfi_personality and .cfi_lsda. (dot_cfi_personality, dot_cfi_lsda, encoding_size): New functions. (output_cie): Output personality including its encoding and LSDA encoding. (output_fde): Output LSDA. (select_cie_for_fde): Don't share CIE if personality, its encoding or LSDA encoding are different. Copy the 3 fields from fde_entry to cie_entry. * doc/as.texinfo (.cfi_personality, .cfi_lsda): Document. * gas/cfi/cfi-common-6.d: New test. * gas/cfi/cfi-common-6.s: New. * gas/cfi/cfi.exp: Add cfi-common-6 test.
* * subsegs.h (struct frchain): Add frch_cfi_data field.Jakub Jelinek2006-11-031-39/+49
| | | | | | | | | | | | | | | | | | | * dw2gencfi.c: Include subsegs.h. (cur_fde_data, last_address, cur_cfa_offset, cfa_save_stack): Removed. (struct frch_cfi_data): New type. (unused_cfi_data): New variable. (alloc_fde_entry): Move cur_fde_data, last_address, cur_cfa_offset and cfa_save_stack static vars into a structure pointed from each frchain. (alloc_cfi_insn_data, cfi_new_fde, cfi_end_fde, cfi_set_return_column, cfi_add_advance_loc, cfi_add_CFA_def_cfa, cfi_add_CFA_def_cfa_offset, cfi_add_CFA_remember_state, cfi_add_CFA_restore_state, dot_cfi, dot_cfi_escape, dot_cfi_startproc, dot_cfi_endproc, cfi_finish): Likewise. * gas/cfi/cfi-common-5.d: New test. * gas/cfi/cfi-common-5.s: New. * gas/cfi/cfi.exp: Add cfi-common-5 test.
* * dw2gencfi.c (cfi_add_CFA_offset):Ben Elliston2006-10-261-0/+1
| | | | Assert DWARF2_CIE_DATA_ALIGNMENT is non-zero.
* bfd/Jakub Jelinek2006-02-271-2/+14
| | | | | | | | | | | | | | | * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Handle S flag. (_bfd_elf_write_section_eh_frame): Likewise. gas/ * dw2gencfi.c (struct fde_entry, struct cie_entry): Add signal_frame field. (CFI_signal_frame): Define. (cfi_pseudo_table): Add .cfi_signal_frame. (dot_cfi): Handle CFI_signal_frame. (output_cie): Handle cie->signal_frame. (select_cie_for_fde): Don't share CIE if signal_frame flag is different. Copy signal_frame from FDE to newly created CIE. * doc/as.texinfo: Document .cfi_signal_frame.
* gas/Jan Beulich2005-11-171-4/+18
| | | | | | | 2005-11-17 Jan Beulich <jbeulich@novell.com> * dw2gencfi.c (dot_cfi): Put argument parsing for cases DW_CFA_restore and DW_CFA_undefined in a loop.
* This adjusts equate handling byNick Clifton2005-10-111-1/+1
| | | | | | | | | | | | | | | - allowing true forward references (which will always assume the referenced symbols have at the point of use) through the new .eqv pseudo-op and the new == operator - disallowing changing .equiv-generated equates (so that the protection this provides is both forward and backward) - snapshotting equates when their value gets changed so that previous uses don't get affected by the new value. - allowing expressions in places where absolute expressions (or register names) are needed which were not completely resolvable at the point of their definition but which are fully resolvable at the point of use In addition it fixes PR/288.
* gas/Jan Beulich2005-09-281-0/+9
| | | | | | | | | | 2005-09-28 Jan Beulich <jbeulich@novell.com> * dw2gencfi.c (dot_cfi): Call ignore_rest_of_line when not fully parsing the input. (dot_cfi_startproc): Likewise. (dot_cfi_endproc): Likewise. Also check no extra input was given. (dot_cfi_escape): Likewise.
* * README-vms: Delete.Alan Modra2005-08-111-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config-gas.com: Delete. * makefile.vms: Delete. * vmsconf.sh: Delete. * config/atof-tahoe.c: Delete. * config/m88k-opcode.h: Delete. * config/obj-bout.c: Delete. * config/obj-bout.h: Delete. * config/obj-hp300.c: Delete. * config/obj-hp300.h: Delete. * config/tc-a29k.c: Delete. * config/tc-a29k.h: Delete. * config/tc-h8500.c: Delete. * config/tc-h8500.h: Delete. * config/tc-m88k.c: Delete. * config/tc-m88k.h: Delete. * config/tc-tahoe.c: Delete. * config/tc-tahoe.h: Delete. * config/tc-tic80.c: Delete. * config/tc-tic80.h: Delete. * config/tc-w65.c: Delete. * config/tc-w65.h: Delete. * config/te-aux.h: Delete. * config/te-delt88.h: Delete. * config/te-delta.h: Delete. * config/te-dpx2.h: Delete. * config/te-hp300.h: Delete. * config/te-ic960.h: Delete. * config/vms-a-conf.h: Delete. * doc/c-a29k.texi: Delete. * doc/c-h8500.texi: Delete. * doc/c-m88k.texi: Delete. * README: Remove obsolete examples, and list of supported targets. * Makefile.am: Remove a29k, h8500, m88k, tahoe, tic80, w65, bout and hp300 support. (DEP_FLAGS): Don't define BFD_ASSEMBLER. * configure.in: Remove --enable-bfd-assembler, need_bfd, primary_bfd_gas. * configure.tgt: Remove a29k, h8300-coff, h8500-*, i960 non-elf, m68k non bfd, m88k, or32-coff, tic80-*, vax non-bfd, w65k-*, *-nindy. * as.c: Remove all non-BFD_ASSEMBLER code, support for above targets. * as.h: Likewise. * dw2gencfi.c: Likewise. * dwarf2dbg.c: Likewise. * ehopt.c: Likewise. * input-file.c: Likewise. * listing.c: Likewise. * literal.c: Likewise. * messages.c: Likewise. * obj.h: Likewise. * output-file.c: Likewise. * read.c: Likewise. * stabs.c: Likewise. * struc-symbol.h: Likewise. * subsegs.c: Likewise. * subsegs.h: Likewise. * symbols.c: Likewise. * symbols.h: Likewise. * tc.h: Likewise. * write.c: Likewise. * write.h: Likewise. * config/aout_gnu.h: Likewise. * config/obj-aout.c: Likewise. * config/obj-aout.h: Likewise. * config/obj-coff.c: Likewise. * config/obj-coff.h: Likewise. * config/obj-evax.h: Likewise. * config/obj-ieee.h: Likewise. * config/tc-arm.c: Likewise. * config/tc-arm.h: Likewise. * config/tc-avr.c: Likewise. * config/tc-avr.h: Likewise. * config/tc-crx.h: Likewise. * config/tc-d10v.h: Likewise. * config/tc-d30v.h: Likewise. * config/tc-dlx.h: Likewise. * config/tc-fr30.h: Likewise. * config/tc-frv.h: Likewise. * config/tc-h8300.c: Likewise. * config/tc-h8300.h: Likewise. * config/tc-hppa.h: Likewise. * config/tc-i370.h: Likewise. * config/tc-i386.c: Likewise. * config/tc-i386.h: Likewise. * config/tc-i860.h: Likewise. * config/tc-i960.c: Likewise. * config/tc-i960.h: Likewise. * config/tc-ip2k.h: Likewise. * config/tc-iq2000.h: Likewise. * config/tc-m32c.h: Likewise. * config/tc-m32r.h: Likewise. * config/tc-m68hc11.h: Likewise. * config/tc-m68k.c: Likewise. * config/tc-m68k.h: Likewise. * config/tc-maxq.c: Likewise. * config/tc-maxq.h: Likewise. * config/tc-mcore.c: Likewise. * config/tc-mcore.h: Likewise. * config/tc-mn10200.h: Likewise. * config/tc-mn10300.c: Likewise. * config/tc-mn10300.h: Likewise. * config/tc-ms1.h: Likewise. * config/tc-msp430.c: Likewise. * config/tc-msp430.h: Likewise. * config/tc-ns32k.c: Likewise. * config/tc-ns32k.h: Likewise. * config/tc-openrisc.h: Likewise. * config/tc-or32.c: Likewise. * config/tc-or32.h: Likewise. * config/tc-ppc.c: Likewise. * config/tc-ppc.h: Likewise. * config/tc-s390.h: Likewise. * config/tc-sh.c: Likewise. * config/tc-sh.h: Likewise. * config/tc-sparc.c: Likewise. * config/tc-tic30.c: Likewise. * config/tc-tic30.h: Likewise. * config/tc-tic4x.c: Likewise. * config/tc-tic4x.h: Likewise. * config/tc-tic54x.c: Likewise. * config/tc-tic54x.h: Likewise. * config/tc-v850.h: Likewise. * config/tc-vax.c: Likewise. * config/tc-vax.h: Likewise. * config/tc-xstormy16.h: Likewise. * config/tc-xtensa.h: Likewise. * config/tc-z8k.c: Likewise. * config/tc-z8k.h: Likewise. * config/vms-a-conf.h * doc/Makefile.am: Likewise. * doc/all.texi: Likewise. * doc/as.texinfo: Likewise. * doc/Makefile.in: Regenerate. * Makefile.in: Regenerate. * configure: Regenerate. * config.in: Regenerate. * po/POTFILES.in: Regenerate.
* Update the address and phone number of the FSFNick Clifton2005-05-051-2/+2
|
* * dw2gencfi.c (output_cie, output_fde): Use DW_CFA_nop ratherAlan Modra2005-02-161-3/+3
| | | | than zero.
* gas/Jan Beulich2004-12-161-0/+1
| | | | | | | 2004-12-15 Jan Beulich <jbeulich@novell.com> * dw2gencfi.c (dot.cfi.startproc): Clear cur_cfa_offset so '.cfi_startproc simple' doesn't inherit the old value.
* gas/Jan Beulich2004-12-161-2/+2
| | | | | | | | 2004-12-15 Jan Beulich <jbeulich@novell.com> * dw2gencfi.c (output_cfi_insn): Adjust DW_CFA_def_cfa_sf generation to emit a signed and factored offset. Adjust DW_CFA_def_cfa_offset_sf generation to emit a factored offset.
* When separating CIE out from FDE, treat a DW_CFA_remember_state as we do aNick Clifton2004-10-071-22/+27
| | | | DW_CFA_advance_loc. Test to make sure that this feature continues to work.
* * dw2gencfi.c (select_cie_for_fde): When separating CIE outAlan Modra2004-09-091-3/+8
| | | | from FDE, treat a CFI_escape as we do a DW_CFA_advance_loc.
* Handle dwarf3 format CIE entries.Nick Clifton2004-05-131-1/+4
|
* * dw2gencfi.c (output_cie): Align length to 4 byte boundary.Richard Henderson2004-03-071-3/+3
| | | | | | | | (cfi_finish): Likewise for fde. * gas/alpha/elf-reloc-8.d, gas/cfi/cfi-alpha-1.d, gas/cfi/cfi-alpha-2.d, gas/cfi/cfi-alpha-3.d, gas/cfi/cfi-common-1.d, gas/cfi/cfi-common-2.d, gas/cfi/cfi-common-3.d: Adjust offsets.
* s/.cfi_gnu_window_save/.cfi_window_save/gJakub Jelinek2003-08-291-1/+1
|
* * dw2gencfi.c (cfi_pseudo_table): Add cfi_gnu_window_save.Jakub Jelinek2003-08-291-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (dot_cfi, output_cfi_insn): Handle DW_CFA_GNU_window_save. (output_cie): Don't use DW_EH_PE_pcrel if neither DIFF_EXPR_OK nor tc_cfi_emit_pcrel_expr are defined. (output_fde): Use tc_cfi_emit_pcrel_expr if available and DIFF_EXPR_OK is not defined. * config/tc-sparc.h (TARGET_USE_CFIPOP): Define. (tc_cfi_frame_initial_instructions, tc_regname_to_dw2regnum, tc_cfi_emit_pcrel_expr): Define. (sparc_cfi_frame_initial_instructions, sparc_regname_to_dw2regnum, sparc_cfi_emit_pcrel_expr): New prototypes. (sparc_cie_data_alignment): New decl. (DWARF2_DEFAULT_RETURN_COLUMN, DWARF2_CIE_DATA_ALIGNMENT): Define. * config/tc-sparc.c: Include dw2gencfi.h. (sparc_cie_data_alignment): New variable. (md_begin): Initialize it. (sparc_cfi_frame_initial_instructions): New function. (sparc_regname_to_dw2regnum): Likewise. (sparc_cfi_emit_pcrel_expr): Likewise. * doc/as.texinfo: Document .cfi_gnu_window_save. * config/tc-sparc.c (s_common): Cast last argument to long and change format string to shut up warning. testsuite/ * gas/cfi/cfi-sparc-1.s: New test. * gas/cfi/cfi-sparc-1.d: New test. * gas/cfi/cfi-sparc64-1.s: New test. * gas/cfi/cfi-sparc64-1.d: New test. * gas/cfi/cfi.exp: Run them.
* * dw2gencfi.c (EH_FRAME_ALIGNMENT): Define if not defined.Jakub Jelinek2003-06-181-5/+13
| | | | | | | | | | | | | | | | (output_cie): Don't pad. (output_fde): Add align argument. Pad to align if not 0. (cfi_finish): Set .eh_frame alignment to EH_FRAME_ALIGNMENT. Pad just last FDE to EH_FRAME_ALIGNMENT. * gas/cfi/cfi-i386.d: Regenerated. * gas/cfi/cfi-common-1.d: Regenerated. * gas/cfi/cfi-common-2.d: Regenerated. * gas/cfi/cfi-common-3.d: Regenerated. * gas/cfi/cfi-x86_64.d: Regenerated. * gas/cfi/cfi-alpha-1.d: Regenerated. * gas/cfi/cfi-alpha-2.d: Regenerated. * gas/cfi/cfi-alpha-3.d: Regenerated.
* * dw2gencfi.c (struct cfi_escape_data): New.Richard Henderson2003-06-111-12/+53
| | | | | | | | | | | | | | | (cfi_add_CFA_nop): Remove. (CFI_escape, dot_cfi_escape): New. (dot_cfi): Remove nop. (cfi_pseudo_table): Remove nop; add escape. (output_cfi_insn): Likewise. (select_cie_for_fde): Stop on escape. * dw2gencfi.h (cfi_add_CFA_nop): Remove. * read.c, read.h (do_parse_cons_expression): New. * doc/as.texinfo (.cfi_escape): New. * gas/cfi/cfi-common-3.[ds]: New. * gas/cfi/cfi.exp: Run it.
* * dw2gencfi.c (struct cfa_save_data, cfa_save_stack): New.Richard Henderson2003-06-081-0/+41
| | | | | | | | | | | | | | (cfi_add_CFA_offset): Detect invalid offsets. (cfi_add_CFA_remember_state): Save cur_cfa_offset. (cfi_add_CFA_restore_state): Restore it. (CFI_rel_offset): New. (cfi_pseudo_table): Add it. (dot_cfi): Handle it. * gas/cfi/cfi-common-1.d, gas/cfi/cfi-common-1.s: New. * gas/cfi/cfi-common-2.d, gas/cfi/cfi-common-2.s: New. * gas/cfi/cfi-diag-1.d, gas/cfi/cfi-diag-1.s: New. * gas/cfi/cfi.exp: Run them.
* 2003-06-05 Michal Ludvig <mludvig@suse.cz>Michal Ludvig2003-06-051-40/+160
| | | | | | | | | | | | | | | | | | * dw2gencfi.c (cfi_add_CFA_insn, cfi_add_CFA_insn_reg) (cfi_add_CFA_insn_reg_reg, cfi_add_CFA_insn_reg_offset): New. (cfi_add_CFA_offset, cfi_add_CFA_def_cfa) (cfi_add_CFA_register, cfi_add_CFA_def_cfa_register) (cfi_add_CFA_def_cfa_offset): Use cfi_add_CFA_insn_*(). (cfi_add_CFA_restore, cfi_add_CFA_undefined) (cfi_add_CFA_same_value, cfi_add_CFA_remember_state) (cfi_add_CFA_restore_state, cfi_add_CFA_nop): New. (cfi_pseudo_table): New directives .cfi_return_column, .cfi_restore, .cfi_undefined, .cfi_same_value, .cfi_remember_state, .cfi_restore_state, .cfi_nop. (dot_cfi, output_cfi_insn): Handle new directives. * dw2gencfi.h (cfi_add_CFA_restore, cfi_add_CFA_undefined) (cfi_add_CFA_same_value, cfi_add_CFA_remember_state) (cfi_add_CFA_restore_state, cfi_add_CFA_nop): New prototypes.
* * dw2gencfi.c (output_cfi_insn): Fix typo for negative offsets.Richard Henderson2003-06-051-1/+1
|