Skip to content

Commit

Permalink
gas: dw2gencfi: expose a new cfi_set_last_fde API
Browse files Browse the repository at this point in the history
[No changes from the RFC patch set]

gas/
	* dw2gencfi.c (cfi_set_last_fde): New definition.
	(dot_cfi_endproc): Use it.
	(dot_cfi_fde_data): Likewise.
	(dot_cfi_inline_lsda): Likewise.
	* dw2gencfi.h (struct fde_entry): New declaration.
	(cfi_set_last_fde): Likewise.
  • Loading branch information
ibhagatgnu authored and ouuleilei-bot committed Oct 26, 2023
1 parent 9c58ae3 commit 07e7770
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
13 changes: 10 additions & 3 deletions gas/dw2gencfi.c
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,13 @@ cfi_end_fde (symbolS *label)
frchain_now->frch_cfi_data = NULL;
}

/* Set the last FDE .*/
void
cfi_set_last_fde (struct fde_entry *fde)
{
last_fde = fde;
}

/* Set the return column for the current FDE. */

void
Expand Down Expand Up @@ -1330,7 +1337,7 @@ dot_cfi_endproc (int ignored ATTRIBUTE_UNUSED)
return;
}

last_fde = frchain_now->frch_cfi_data->cur_fde_data;
cfi_set_last_fde (frchain_now->frch_cfi_data->cur_fde_data);

cfi_end_fde (symbol_temp_new_now ());

Expand Down Expand Up @@ -1415,7 +1422,7 @@ dot_cfi_fde_data (int ignored ATTRIBUTE_UNUSED)
return;
}

last_fde = frchain_now->frch_cfi_data->cur_fde_data;
cfi_set_last_fde (frchain_now->frch_cfi_data->cur_fde_data);

if ((cfi_sections & CFI_EMIT_target) != 0
|| (cfi_sections & CFI_EMIT_eh_frame_compact) != 0)
Expand Down Expand Up @@ -1568,7 +1575,7 @@ dot_cfi_inline_lsda (int ignored ATTRIBUTE_UNUSED)
if (last_fde->eh_header_type == EH_COMPACT_HAS_LSDA)
output_compact_unwind_data (last_fde, align);

last_fde = NULL;
cfi_set_last_fde (NULL);

return;
}
Expand Down
2 changes: 2 additions & 0 deletions gas/dw2gencfi.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "dwarf2.h"

struct symbol;
struct fde_entry;

extern const pseudo_typeS cfi_pseudo_table[];

Expand All @@ -35,6 +36,7 @@ extern void cfi_finish (void);
/* Entry points for backends to add unwind information. */
extern void cfi_new_fde (struct symbol *);
extern void cfi_end_fde (struct symbol *);
extern void cfi_set_last_fde (struct fde_entry *fde);
extern void cfi_set_return_column (unsigned);
extern void cfi_set_sections (void);
extern void cfi_add_advance_loc (struct symbol *);
Expand Down

0 comments on commit 07e7770

Please sign in to comment.