From: Thomas Huth <thuth@redhat.com>
To: Milica Lazarevic <milica.lazarevic@syrmia.com>
Cc: qemu-devel@nongnu.org, cfontana@suse.de, berrange@redhat.com,
pbonzini@redhat.com, vince.delvecchio@mediatek.com,
richard.henderson@linaro.org, peter.maydell@linaro.org,
djordje.todorovic@syrmia.com, mips32r2@gmail.com,
dragan.mladjenovic@syrmia.com
Subject: Re: [PATCH 15/20] disas/nanomips: Replace exception handling
Date: Sat, 27 Aug 2022 10:34:00 +0200 [thread overview]
Message-ID: <55469e83-9790-7d47-932e-df574846c42d@redhat.com> (raw)
In-Reply-To: <20220815072629.12865-16-milica.lazarevic@syrmia.com>
On 15/08/2022 09.26, Milica Lazarevic wrote:
> Since there's no support for exception handling in C, the try-catch
> blocks have been deleted, and throw clauses are replaced. When a runtime
> error happens, we're printing out the error message. Disassembling of
> the current instruction interrupts. This behavior is achieved by adding
> sigsetjmp() to discard further disassembling after the error message
> prints and by adding the siglongjmp() function to imitate throwing an
> error.The goal was to maintain the same output as it was.
>
> Signed-off-by: Milica Lazarevic <milica.lazarevic@syrmia.com>
> ---
> disas/nanomips.cpp | 135 +++++++++++++++++++++++----------------------
> 1 file changed, 69 insertions(+), 66 deletions(-)
>
> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
> index 769368a984..a8cd878809 100644
> --- a/disas/nanomips.cpp
> +++ b/disas/nanomips.cpp
> @@ -31,7 +31,6 @@
> #include "disas/dis-asm.h"
>
> #include <string.h>
> -#include <stdexcept>
> #include <stdio.h>
> #include <stdarg.h>
>
> @@ -90,6 +89,8 @@ struct Pool {
>
> static img_address m_pc;
> static TABLE_ATTRIBUTE_TYPE m_requested_instruction_categories;
> +static struct disassemble_info *disassm_info;
> +static jmp_buf j_buf;
I guess this is also not thread-safe? (see also Richard's answer to patch 03/20)
Thomas
next prev parent reply other threads:[~2022-08-27 8:37 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 7:26 [PATCH 0/20] Convert nanoMIPS disassembler from C++ to C Milica Lazarevic
2022-08-15 7:26 ` [PATCH 01/20] disas/nanomips: Remove namespace img Milica Lazarevic
2022-08-15 13:55 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 02/20] disas/nanomips: Extract enums out of the NMD class Milica Lazarevic
2022-08-15 13:59 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 03/20] disas/nanomips: Delete NMD class fields Milica Lazarevic
2022-08-15 10:59 ` Philippe Mathieu-Daudé via
2022-08-15 15:02 ` Richard Henderson
2022-08-15 7:26 ` [PATCH 04/20] disas/nanomips: Remove helper methods from class Milica Lazarevic
2022-08-15 16:41 ` Thomas Huth
2022-08-16 0:19 ` Philippe Mathieu-Daudé via
2022-08-16 5:46 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 05/20] disas/nanomips: Remove __cond " Milica Lazarevic
2022-08-15 11:07 ` Philippe Mathieu-Daudé via
2022-08-15 14:20 ` Thomas Huth
2022-08-16 0:14 ` Philippe Mathieu-Daudé via
2022-08-15 7:26 ` [PATCH 06/20] disas/nanomips: Remove disasm " Milica Lazarevic
2022-08-15 11:45 ` Philippe Mathieu-Daudé via
2022-08-15 7:26 ` [PATCH 07/20] disas/nanomips: Remove Pool tables from the class Milica Lazarevic
2022-08-16 0:12 ` Philippe Mathieu-Daudé via
2022-08-15 7:26 ` [PATCH 08/20] disas/nanomips: Remove NMD class Milica Lazarevic
2022-08-15 7:26 ` [PATCH 09/20] disas/nanomips: Move typedefs etc to nanomips.cpp Milica Lazarevic
2022-08-16 0:13 ` Philippe Mathieu-Daudé via
2022-08-15 7:26 ` [PATCH 10/20] disas/nanomips: Delete nanomips.h Milica Lazarevic
2022-08-16 0:14 ` Philippe Mathieu-Daudé via
2022-08-15 7:26 ` [PATCH 11/20] disas/nanomips: Remove #inlcude <sstream> Milica Lazarevic
2022-08-15 14:05 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 12/20] disas/nanomips: Replace std::string type Milica Lazarevic
2022-08-26 7:58 ` Milica Lazarevic
2022-08-27 7:38 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 13/20] disas/nanomips: Add free() calls Milica Lazarevic
2022-08-26 7:59 ` Milica Lazarevic
2022-08-27 7:45 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 14/20] disas/nanomips: Remove function overloading Milica Lazarevic
2022-08-27 7:51 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 15/20] disas/nanomips: Replace exception handling Milica Lazarevic
2022-08-26 7:59 ` Milica Lazarevic
2022-08-27 8:34 ` Thomas Huth [this message]
2022-08-15 7:26 ` [PATCH 16/20] disas/nanomips: Replace Cpp enums for C enums Milica Lazarevic
2022-08-27 8:35 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 17/20] disas/nanomips: Remove argument passing by ref Milica Lazarevic
2022-08-27 8:36 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 18/20] disas/nanomips: Add struct keyword Milica Lazarevic
2022-08-27 8:37 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 19/20] disas/nanomips: Add modifier static Milica Lazarevic
2022-08-16 0:22 ` Philippe Mathieu-Daudé via
2022-08-18 7:58 ` Milica Lazarevic
2022-08-27 8:38 ` Thomas Huth
2022-08-15 7:26 ` [PATCH 20/20] disas/nanomips: Rename nanomips.cpp to nanomips.c Milica Lazarevic
2022-08-27 8:39 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55469e83-9790-7d47-932e-df574846c42d@redhat.com \
--to=thuth@redhat.com \
--cc=berrange@redhat.com \
--cc=cfontana@suse.de \
--cc=djordje.todorovic@syrmia.com \
--cc=dragan.mladjenovic@syrmia.com \
--cc=milica.lazarevic@syrmia.com \
--cc=mips32r2@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=vince.delvecchio@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).