diff options
author | J?r?me Gardou <jerome.gardou@gmail.com> | 2021-04-23 16:33:47 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2021-04-23 16:33:47 +0100 |
commit | d039200a7ee8ac170afbdc3b987af553c07fb6a3 (patch) | |
tree | eec8af3c5f718632b3b9175875f13776e3dd8d77 | |
parent | b3ea76397a07f5ec99432ed3df9ca848a6aab115 (diff) | |
download | gdb-d039200a7ee8ac170afbdc3b987af553c07fb6a3.zip gdb-d039200a7ee8ac170afbdc3b987af553c07fb6a3.tar.gz gdb-d039200a7ee8ac170afbdc3b987af553c07fb6a3.tar.bz2 |
Allow .seh_pushframe to take an optional [code] parameter
* config/obj-coff-seh.c (obj_coff_seh_pushframe): Allow an
optional "code" argument.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/obj-coff-seh.c | 21 |
2 files changed, 25 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 7fe0777..aedc6ea 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2021-04-23 Jérôme Gardou <jerome.gardou@gmail.com> + + * config/obj-coff-seh.c (obj_coff_seh_pushframe): Allow an + optional "code" argument. + 2021-04-23 Jan Beulich <jbeulich@suse.com> * config/tc-i386.c (want_disp32): New. diff --git a/gas/config/obj-coff-seh.c b/gas/config/obj-coff-seh.c index 964fe87..f907e72 100644 --- a/gas/config/obj-coff-seh.c +++ b/gas/config/obj-coff-seh.c @@ -582,12 +582,31 @@ obj_coff_seh_pushreg (int what ATTRIBUTE_UNUSED) static void obj_coff_seh_pushframe (int what ATTRIBUTE_UNUSED) { + int code = 0; + if (!verify_context_and_target (".seh_pushframe", seh_kind_x64) || !seh_validate_seg (".seh_pushframe")) return; + + SKIP_WHITESPACE(); + + if (is_name_beginner (*input_line_pointer)) + { + char* identifier; + + get_symbol_name (&identifier); + if (strcmp (identifier, "code") != 0) + { + as_bad(_("invalid argument \"%s\" for .seh_pushframe. Expected \"code\" or nothing"), + identifier); + return; + } + code = 1; + } + demand_empty_rest_of_line (); - seh_x64_make_prologue_element (UWOP_PUSH_MACHFRAME, 0, 0); + seh_x64_make_prologue_element (UWOP_PUSH_MACHFRAME, code, 0); } /* Add a register save-unwind token to current context. */ |