* 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:
parent
613546fbd0
commit
af385746fb
|
@ -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>
|
2011-08-06 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
* config/tc-mips.c (emit_nop): Delete.
|
* config/tc-mips.c (emit_nop): Delete.
|
||||||
|
|
|
@ -4042,6 +4042,14 @@ alpha_elf_md_end (void)
|
||||||
if (bfd_get_section_by_name (stdoutput, ".eh_frame") != NULL)
|
if (bfd_get_section_by_name (stdoutput, ".eh_frame") != NULL)
|
||||||
return;
|
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. */
|
/* Generate .eh_frame data for the unwind directives specified. */
|
||||||
for (p = all_frame_data; p ; p = p->next)
|
for (p = all_frame_data; p ; p = p->next)
|
||||||
if (p->prologue_sym)
|
if (p->prologue_sym)
|
||||||
|
|
|
@ -287,7 +287,7 @@ struct cie_entry
|
||||||
|
|
||||||
/* List of FDE entries. */
|
/* 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;
|
static struct fde_entry **last_fde_data = &all_fde_data;
|
||||||
|
|
||||||
/* List of CIEs so that they could be reused. */
|
/* List of CIEs so that they could be reused. */
|
||||||
|
|
|
@ -118,6 +118,9 @@ struct fde_entry
|
||||||
#endif
|
#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. */
|
/* Fake CFI type; outside the byte range of any real CFI insn. */
|
||||||
#define CFI_adjust_cfa_offset 0x100
|
#define CFI_adjust_cfa_offset 0x100
|
||||||
#define CFI_return_column 0x101
|
#define CFI_return_column 0x101
|
||||||
|
|
Loading…
Reference in New Issue