* dw2gencfi.c (all_fde_data): Export.

* 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.
This commit is contained in:
Richard Henderson 2011-08-07 16:32:20 +00:00
parent 613546fbd0
commit af385746fb
4 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2011-08-06 Richard Henderson <rth@redhat.com>
* dw2gencfi.c (all_fde_data): Export.
* 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.
2011-08-06 Richard Sandiford <rdsandiford@googlemail.com>
* config/tc-mips.c (emit_nop): Delete.

View File

@ -4042,6 +4042,14 @@ alpha_elf_md_end (void)
if (bfd_get_section_by_name (stdoutput, ".eh_frame") != NULL)
return;
/* ??? In theory we could look for functions for which we have
generated unwind info via CFI directives, and those we have not.
Those we have not could still get their unwind info from here.
For now, do nothing if we've seen any CFI directives. Note that
the above test will not trigger, as we've not emitted data yet. */
if (all_fde_data != NULL)
return;
/* Generate .eh_frame data for the unwind directives specified. */
for (p = all_frame_data; p ; p = p->next)
if (p->prologue_sym)

View File

@ -287,7 +287,7 @@ struct cie_entry
/* List of FDE entries. */
static struct fde_entry *all_fde_data;
struct fde_entry *all_fde_data;
static struct fde_entry **last_fde_data = &all_fde_data;
/* List of CIEs so that they could be reused. */

View File

@ -118,6 +118,9 @@ struct fde_entry
#endif
};
/* The list of all FDEs that have been collected. */
extern struct fde_entry *all_fde_data;
/* Fake CFI type; outside the byte range of any real CFI insn. */
#define CFI_adjust_cfa_offset 0x100
#define CFI_return_column 0x101