mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
2010-03-15 Thomas Schwinge <thomas@codesourcery.com>
* dw2gencfi.c (output_cie): Make it more explicit which code paths belong to .eh_frame only.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2010-03-15 Thomas Schwinge <thomas@codesourcery.com>
|
||||||
|
|
||||||
|
* dw2gencfi.c (output_cie): Make it more explicit which code paths
|
||||||
|
belong to .eh_frame only.
|
||||||
|
|
||||||
2010-03-13 Segher Boessenkool <segher@kernel.crashing.org>
|
2010-03-13 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
|
|
||||||
* config/tc-v850.c (v850_insert_operand): Handle out-of-range
|
* config/tc-v850.c (v850_insert_operand): Handle out-of-range
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* dw2gencfi.c - Support for generating Dwarf2 CFI information.
|
/* dw2gencfi.c - Support for generating Dwarf2 CFI information.
|
||||||
Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Contributed by Michal Ludvig <mludvig@suse.cz>
|
Contributed by Michal Ludvig <mludvig@suse.cz>
|
||||||
|
|
||||||
@ -1319,29 +1319,31 @@ output_cie (struct cie_entry *cie, bfd_boolean eh_frame, int align)
|
|||||||
if (cie->per_encoding != DW_EH_PE_omit)
|
if (cie->per_encoding != DW_EH_PE_omit)
|
||||||
augmentation_size += 1 + encoding_size (cie->per_encoding);
|
augmentation_size += 1 + encoding_size (cie->per_encoding);
|
||||||
out_uleb128 (augmentation_size); /* Augmentation size. */
|
out_uleb128 (augmentation_size); /* Augmentation size. */
|
||||||
}
|
|
||||||
if (cie->per_encoding != DW_EH_PE_omit)
|
if (cie->per_encoding != DW_EH_PE_omit)
|
||||||
{
|
|
||||||
offsetT size = encoding_size (cie->per_encoding);
|
|
||||||
out_one (cie->per_encoding);
|
|
||||||
exp = cie->personality;
|
|
||||||
if ((cie->per_encoding & 0x70) == DW_EH_PE_pcrel)
|
|
||||||
{
|
{
|
||||||
|
offsetT size = encoding_size (cie->per_encoding);
|
||||||
|
out_one (cie->per_encoding);
|
||||||
|
exp = cie->personality;
|
||||||
|
if ((cie->per_encoding & 0x70) == DW_EH_PE_pcrel)
|
||||||
|
{
|
||||||
#if CFI_DIFF_EXPR_OK
|
#if CFI_DIFF_EXPR_OK
|
||||||
exp.X_op = O_subtract;
|
exp.X_op = O_subtract;
|
||||||
exp.X_op_symbol = symbol_temp_new_now ();
|
exp.X_op_symbol = symbol_temp_new_now ();
|
||||||
emit_expr (&exp, size);
|
emit_expr (&exp, size);
|
||||||
#elif defined (tc_cfi_emit_pcrel_expr)
|
#elif defined (tc_cfi_emit_pcrel_expr)
|
||||||
tc_cfi_emit_pcrel_expr (&exp, size);
|
tc_cfi_emit_pcrel_expr (&exp, size);
|
||||||
#else
|
#else
|
||||||
abort ();
|
abort ();
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
emit_expr (&exp, size);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
emit_expr (&exp, size);
|
if (cie->lsda_encoding != DW_EH_PE_omit)
|
||||||
|
out_one (cie->lsda_encoding);
|
||||||
}
|
}
|
||||||
if (cie->lsda_encoding != DW_EH_PE_omit)
|
|
||||||
out_one (cie->lsda_encoding);
|
|
||||||
|
|
||||||
switch (DWARF2_FDE_RELOC_SIZE)
|
switch (DWARF2_FDE_RELOC_SIZE)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user