mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 07:53:51 +08:00
This patch adds a new pseudo-op - .seh_code - to structured exception handling
suite of ops. It changes the current section back to the code section of the current function. This is helpful because the code section may not be .text. * config/obj-coff-seh.c (obj_coff_seh_code): New function - switches the current segment back to the code segment recorded when seh_proc was last invoked. * config/obj-coff-seh.h (SEH_CMDS): Add seh_code.
This commit is contained in:
@ -1,3 +1,10 @@
|
||||
2014-03-25 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/obj-coff-seh.c (obj_coff_seh_code): New function -
|
||||
switches the current segment back to the code segment recorded
|
||||
when seh_proc was last invoked.
|
||||
* config/obj-coff-seh.h (SEH_CMDS): Add seh_code.
|
||||
|
||||
2014-03-25 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/tc-ppc.c (ppc_is_toc_sym): Revert 2014-03-05.
|
||||
|
@ -169,6 +169,13 @@ seh_validate_seg (const char *directive)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Switch back to the code section, whatever that may be. */
|
||||
static void
|
||||
obj_coff_seh_code (int ignored ATTRIBUTE_UNUSED)
|
||||
{
|
||||
subseg_set (seh_ctx_cur->code_seg, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
switch_xdata (int subseg, segT code_seg)
|
||||
{
|
||||
|
@ -56,6 +56,7 @@
|
||||
.seh_savereg
|
||||
.seh_savexmm
|
||||
.seh_pushframe
|
||||
.seh_code
|
||||
*/
|
||||
|
||||
/* architecture specific pdata/xdata handling. */
|
||||
@ -73,6 +74,7 @@
|
||||
{"seh_32", obj_coff_seh_32, 1}, \
|
||||
{"seh_no32", obj_coff_seh_32, 0}, \
|
||||
{"seh_handler", obj_coff_seh_handler, 0}, \
|
||||
{"seh_code", obj_coff_seh_code, 0}, \
|
||||
{"seh_handlerdata", obj_coff_seh_handlerdata, 0},
|
||||
|
||||
/* Type definitions. */
|
||||
@ -148,6 +150,7 @@ static void obj_coff_seh_32 (int);
|
||||
static void obj_coff_seh_proc (int);
|
||||
static void obj_coff_seh_handler (int);
|
||||
static void obj_coff_seh_handlerdata (int);
|
||||
static void obj_coff_seh_code (int);
|
||||
|
||||
#define UNDSEC bfd_und_section_ptr
|
||||
|
||||
@ -201,4 +204,3 @@ static void obj_coff_seh_handlerdata (int);
|
||||
PEX64_SCOPE_ENTRY_SIZE * (IDX))
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user