qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/20] Convert nanoMIPS disassembler from C++ to C
@ 2022-09-05  9:55 Milica Lazarevic
  2022-09-05  9:55 ` [PATCH v2 01/20] disas/nanomips: Remove namespace img Milica Lazarevic
                   ` (19 more replies)
  0 siblings, 20 replies; 46+ messages in thread
From: Milica Lazarevic @ 2022-09-05  9:55 UTC (permalink / raw)
  To: thuth
  Cc: qemu-devel, cfontana, berrange, pbonzini, vince.delvecchio,
	richard.henderson, peter.maydell, djordje.todorovic, mips32r2,
	dragan.mladjenovic

Hi,

This patchset converts the nanomips disassembler to plain C. C++ features
like class, std::string type, exception handling, and function overloading
have been removed and replaced with the equivalent C code. 

===============================
Changes since previous version:
    (1) disas/nanomips: Remove namespace img
      Removed comments that refer to the deleted function.
    (3) disas/nanomips: Delete NMD class fields
      Class fields were introduced as global variables in the previous version.
      Since it wasn't a thread-safe solution, in this version, one class field
      (m_requested_instruction_categories) has been replaced with the only value 
      it can have, while the other class field has been added as a parameter 
      where needed.
    (4) disas/nanomips: Remove helper methods from class
      Squashed patch #19 here.
    (5) disas/nanomips: Remove __cond methods from class
      Addressed the coding style issues.
    (6) disas/nanomips: Remove disasm methods from class
      Addressed the coding style issues.
    (12) disas/nanomips: Replace std::string type
      Changed the return types to char * when a function returns allocated memory.
      Switched to using some glib functions for memory allocation like g_malloc,
      g_strdup_vprintf, and g_strdup_printf instead of strdup.
    (13) disas/nanomips: Prevent memory leaking
      Used the g_autofree attribute for dynamically allocated strings, instead of
      calling free(). Now, this patch is much smaller than in the previous version.
    (14) disas/nanomips: Introduce Dis_info struct
      Same as in (3). Instead of using global variables, all the necessary information
      are packed into the struct and added as an argument wherever needed.

Regards, 
Milica

Milica Lazarevic (20):
      disas/nanomips: Remove namespace img
      disas/nanomips: Extract enums out of the NMD class
      disas/nanomips: Delete NMD class fields
      disas/nanomips: Remove helper methods from class
      disas/nanomips: Remove __cond methods from class
      disas/nanomips: Remove disasm methods from class
      disas/nanomips: Remove Pool tables from the class
      disas/nanomips: Remove NMD class
      disas/nanomips: Move typedefs etc to nanomips.cpp
      disas/nanomips: Delete nanomips.h
      disas/nanomips: Remove #inlcude <sstream>
      disas/nanomips: Replace std::string type
      disas/nanomips: Prevent memory leaking
      disas/nanomips: Remove function overloading
      disas/nanomips: Introduce Dis_info struct
      disas/nanomips: Replace exception handling
      disas/nanomips: Replace Cpp enums for C enums
      disas/nanomips: Remove argument passing by ref
      disas/nanomips: Add struct keyword
      disas/nanomips: Rename nanomips.cpp to nanomips.c

 disas/meson.build                  |    2 +-
 disas/{nanomips.cpp => nanomips.c} | 7155 ++++++++++++++++++------------------
 disas/nanomips.h                   | 1072 ------
 3 files changed, 3557 insertions(+), 4672 deletions(-)




^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2022-09-08 21:50 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-05  9:55 [PATCH v2 0/20] Convert nanoMIPS disassembler from C++ to C Milica Lazarevic
2022-09-05  9:55 ` [PATCH v2 01/20] disas/nanomips: Remove namespace img Milica Lazarevic
2022-09-05 11:00   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 02/20] disas/nanomips: Extract enums out of the NMD class Milica Lazarevic
2022-09-05 11:00   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 03/20] disas/nanomips: Delete NMD class fields Milica Lazarevic
2022-09-05 11:04   ` Richard Henderson
2022-09-05 11:53     ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 04/20] disas/nanomips: Remove helper methods from class Milica Lazarevic
2022-09-05 11:05   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 05/20] disas/nanomips: Remove __cond " Milica Lazarevic
2022-09-05 11:06   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 06/20] disas/nanomips: Remove disasm " Milica Lazarevic
2022-09-05 11:08   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 07/20] disas/nanomips: Remove Pool tables from the class Milica Lazarevic
2022-09-05 11:11   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 08/20] disas/nanomips: Remove NMD class Milica Lazarevic
2022-09-05 11:13   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 09/20] disas/nanomips: Move typedefs etc to nanomips.cpp Milica Lazarevic
2022-09-05 11:14   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 10/20] disas/nanomips: Delete nanomips.h Milica Lazarevic
2022-09-05 11:14   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 11/20] disas/nanomips: Remove #inlcude <sstream> Milica Lazarevic
2022-09-05 11:14   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 12/20] disas/nanomips: Replace std::string type Milica Lazarevic
2022-09-05 11:32   ` Richard Henderson
2022-09-08 19:16     ` Milica Lazarevic
2022-09-08 21:14       ` Richard Henderson
2022-09-08 21:46         ` Milica Lazarevic
2022-09-05  9:55 ` [PATCH v2 13/20] disas/nanomips: Prevent memory leaking Milica Lazarevic
2022-09-05 11:41   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 14/20] disas/nanomips: Remove function overloading Milica Lazarevic
2022-09-05 11:43   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 15/20] disas/nanomips: Introduce Dis_info struct Milica Lazarevic
2022-09-05 11:55   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 16/20] disas/nanomips: Replace exception handling Milica Lazarevic
2022-09-05 11:50   ` Richard Henderson
2022-09-07 17:09     ` Milica Lazarevic
2022-09-05  9:55 ` [PATCH v2 17/20] disas/nanomips: Replace Cpp enums for C enums Milica Lazarevic
2022-09-05 11:47   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 18/20] disas/nanomips: Remove argument passing by ref Milica Lazarevic
2022-09-05 11:56   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 19/20] disas/nanomips: Add struct keyword Milica Lazarevic
2022-09-05 11:57   ` Richard Henderson
2022-09-05  9:55 ` [PATCH v2 20/20] disas/nanomips: Rename nanomips.cpp to nanomips.c Milica Lazarevic
2022-09-05 11:59   ` Richard Henderson

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).