Jan Beulich
0a7b15ff9a
gas/
...
2007-09-26 Jan Beulich <jbeulich@novell.com>
* dw2gencfi.c: Conditionalize whole body upon TARGET_USE_CFIPOP.
(cfi_finish): Add second empty instance.
2007-09-26 07:02:07 +00:00
Nick Clifton
ec2655a6a7
Switch to GPLv3
2007-07-03 11:01:12 +00:00
Jakub Jelinek
9b8ae42e78
* dw2gencfi.c (struct fde_entry): Add per_encoding, lsda_encoding,
...
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.
2006-11-03 07:29:37 +00:00
Jakub Jelinek
ae424f8246
* subsegs.h (struct frchain): Add frch_cfi_data field.
...
* 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.
2006-11-03 07:27:39 +00:00
Ben Elliston
ba5f0fda86
* dw2gencfi.c (cfi_add_CFA_offset):
...
Assert DWARF2_CIE_DATA_ALIGNMENT is non-zero.
2006-10-26 00:16:50 +00:00
Jakub Jelinek
63752a757f
bfd/
...
* 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.
2006-02-27 23:07:06 +00:00
Jan Beulich
b57d375bde
gas/
...
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.
2005-11-17 08:33:36 +00:00
Nick Clifton
9497f5ac6b
This adjusts equate handling by
...
- 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.
2005-10-11 11:16:17 +00:00
Jan Beulich
7c9c8381d9
gas/
...
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.
2005-09-28 14:51:02 +00:00
Alan Modra
7be1c4891a
* README-vms: Delete.
...
* 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.
2005-08-11 01:25:29 +00:00
Nick Clifton
4b4da1607a
Update the address and phone number of the FSF
2005-05-05 09:13:19 +00:00
Alan Modra
4df6ce4788
* dw2gencfi.c (output_cie, output_fde): Use DW_CFA_nop rather
...
than zero.
2005-02-16 05:04:09 +00:00
Jan Beulich
5b9d23c67a
gas/
...
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.
2004-12-16 08:57:23 +00:00
Jan Beulich
dcb45a0623
gas/
...
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.
2004-12-16 08:53:43 +00:00
Nick Clifton
289040ca3e
When separating CIE out from FDE, treat a DW_CFA_remember_state as we do a
...
DW_CFA_advance_loc. Test to make sure that this feature continues to work.
2004-10-07 15:18:11 +00:00
Alan Modra
e9fad6911f
* dw2gencfi.c (select_cie_for_fde): When separating CIE out
...
from FDE, treat a CFI_escape as we do a DW_CFA_advance_loc.
2004-09-09 13:32:46 +00:00
Nick Clifton
0da76f83eb
Handle dwarf3 format CIE entries.
2004-05-13 14:41:18 +00:00
Richard Henderson
6ec51dba92
* dw2gencfi.c (output_cie): Align length to 4 byte boundary.
...
(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.
2004-03-07 08:51:21 +00:00
Jakub Jelinek
6749011bfd
s/.cfi_gnu_window_save/.cfi_window_save/g
2003-08-29 20:32:56 +00:00
Jakub Jelinek
364b6d8b23
* dw2gencfi.c (cfi_pseudo_table): Add cfi_gnu_window_save.
...
(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.
2003-08-29 20:20:18 +00:00
Jakub Jelinek
9393cb0db9
* dw2gencfi.c (EH_FRAME_ALIGNMENT): Define if not defined.
...
(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.
2003-06-18 17:58:48 +00:00
Richard Henderson
cdfbf930b9
* dw2gencfi.c (struct cfi_escape_data): New.
...
(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.
2003-06-11 23:16:58 +00:00
Richard Henderson
fa87b337c3
* dw2gencfi.c (struct cfa_save_data, cfa_save_stack): New.
...
(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-08 03:59:44 +00:00
Michal Ludvig
2be24b54a9
2003-06-05 Michal Ludvig <mludvig@suse.cz>
...
* 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.
2003-06-05 09:23:47 +00:00
Richard Henderson
1233ae6299
* dw2gencfi.c (output_cfi_insn): Fix typo for negative offsets.
2003-06-05 06:53:40 +00:00
Richard Henderson
757bc39371
* dw2gencfi.c (cfi_finish): Set .eh_frame read-only.
2003-06-05 05:25:38 +00:00
Alan Modra
ed7d5d1a43
* read.c (emit_expr): Set dot_value.
...
* dw2gencfi.c (output_fde): Remove pcrel reloc hack.
2003-06-02 22:48:59 +00:00
Richard Henderson
eafbc43f93
* dw2gencfi.c (output_fde): Use fix_new to emit pc-relative reloc.
...
(cfi_finish): Set flag_traditional_format around .eh_frame data.
* gas/alpha/elf-reloc-8.d: Correct .eh_frame relocs.
* gas/cfi/cfi-alpha-2.d: New.
* gas/cfi/cfi-alpha-2.s: New.
* gas/cfi/cfi.exp: Run it.
2003-05-31 19:36:45 +00:00
Richard Henderson
a4447b9378
* dw2gencfi.c, dw2gencfi.h: Rewrite from scratch.
...
* as.c (main): Always call cfi_finish.
* config/tc-i386.c (x86_dwarf2_return_column): New.
(x86_cie_data_alignment): New.
(md_begin): Set them.
(tc_x86_cfi_init): Remove.
(tc_x86_regname_to_dw2regnum): Fix 32-bit register numbers;
return int, not unsigned long; don't as_bad here.
(tc_x86_frame_initial_instructions): Streamline; use
updated api.
* config/tc-i386.h (tc_cfi_init): Remove.
(DWARF2_DEFAULT_RETURN_COLUMN): New.
(DWARF2_CIE_DATA_ALIGNMENT): New.
* gas/cfi/cfi-i386.d: Update for dw2gencfi rewrite.
* gas/cfi/cfi-x86_64.d: Likewise.
* gas/cfi/cfi-i386-2.d: New.
* gas/cfi/cfi-i386-2.s: New.
2003-05-27 16:52:49 +00:00
Nick Clifton
7ed2c8b026
Fix dw3gencfi.c so that it will build on targets that do not define BFD_ASSEMBLER.
2003-05-21 11:31:07 +00:00
Michal Ludvig
39b8215104
2003-05-20 Michal Ludvig <mludvig@suse.cz>
...
* as.c (main): Remove tc_cfi_init().
* dw2gencfi.c (cfi_parse_arg): Allow regnames beginning
with '%'.
(cfi_pseudo_table): Add "cfi_register" entry.
(cfi_make_insn): Handle CFA_register.
(cfi_output_insn): Ditto.
(dot_cfi): Ditto.
(cfi_get_label): Add 'simple' modifier to .cfi_startproc.
(dot_cfi_endproc): Reuse already emitted CIEs.
* testsuite/gas/cfi/cfi-i386.d: New pattern.
* testsuite/gas/cfi/cfi-x86-64.d: Ditto.
2003-05-20 14:31:44 +00:00
Alan Modra
7c0295b157
* dw2gencfi.c (cfi_parse_arg): Only use tc_regname_to_dw2regnum if
...
defined.
(dot_cfi_endproc): Avoid C99 construct.
2003-05-20 11:35:45 +00:00
Alan Modra
54cfded08e
* dw2gencfi.c, dw2gencfi.h: New files.
...
* config/tc-i386.c (tc_x86_cfi_init): New function.
* config/tc-i386.h (TARGET_USE_CFIPOP, tc_cfi_init): New defines.
* as.c (parse_args): Set verbose flag on --verbose.
(main): Call tc_cfi_init()/cfi_finish().
* as.h (verbose): New external variable.
* read.c (pobegin): Insert CFI pops to the list.
* symbols.c (local_symbol_make): Make symbol external.
* symbols.h (local_symbol_make): New prototype.
* Makefile.am: Add dw2gencfi.[ch] files. Run "make dep-am".
* Makefile.in: Regenerate.
* doc/as.texinfo: Added node "CFI directives" with description of
all implemented .cfi_* directives.
* doc/Makefile.in: Regenerate.
* po/POTFILES.in: Regenerate.
2003-05-20 07:58:07 +00:00