qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"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 05/20] disas/nanomips: Remove __cond methods from class
Date: Mon, 15 Aug 2022 16:20:51 +0200	[thread overview]
Message-ID: <46ac960d-bc92-05e3-37af-7ce371e6cf00@redhat.com> (raw)
In-Reply-To: <45cd1f33-7d72-26ce-55ed-66901bfe3675@amsat.org>

On 15/08/2022 13.07, Philippe Mathieu-Daudé wrote:
> On 15/8/22 09:26, Milica Lazarevic wrote:
>> NMD class methods with the conditional_function type like
>> NMD::ADDIU_32__cond, NMD::ADDIU_RS5__cond, etc. are removed from the NMD
>> class. They're now declared global static functions. Therefore, typedef
>> of the function pointer, conditional_function is defined outside of the
>> class.
>>
>> Now that conditional_function type functions are not part of the NMD
>> class we can't access them using the this pointer. Thus, the use of
>> the this pointer has been deleted.
>>
>> Signed-off-by: Milica Lazarevic <milica.lazarevic@syrmia.com>
>> ---
>>   disas/nanomips.cpp | 42 +++++++++++++++++++++---------------------
>>   disas/nanomips.h   | 14 ++------------
>>   2 files changed, 23 insertions(+), 33 deletions(-)
>>
>> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
>> index 039c353d0b..9e720d0e8d 100644
>> --- a/disas/nanomips.cpp
>> +++ b/disas/nanomips.cpp
>> @@ -787,7 +787,7 @@ int NMD::Disassemble(const uint16 * data, std::string 
>> & dis,
>>               if ((op_code & table[i].mask) == table[i].value) {
>>                   /* possible match */
>>                   conditional_function cond = table[i].condition;
>> -                if ((cond == 0) || (this->*cond)(op_code)) {
>> +                if ((cond == 0) || (cond)(op_code)) {
> 
> QEMU C style is more like this:
> 
>                     if ((cond == NULL) || cond(op_code)) {
> 
>>                       try
>>                       {
>>                           if (table[i].type == pool) {
> 
>> diff --git a/disas/nanomips.h b/disas/nanomips.h
>> index a795ed44e8..0e6670adf5 100644
>> --- a/disas/nanomips.h
>> +++ b/disas/nanomips.h
>> @@ -31,6 +31,8 @@ typedef uint32_t uint32;
>>   typedef uint16_t uint16;
>>   typedef uint64_t img_address;
>> +typedef bool(*conditional_function)(uint64 instruction);
> 
> Please add a space before the returned type. I'd rather
> prefix functions extracted from the NMD class with `nmd_`:

But adding a prefix will also increase the size of the patches quite a bit 
(well, maybe not for this identifier here, but certainly for some other 
spots), so I think it's fair to keep it without prefix here, too. Just my 
0.02 €.

  Thomas



  reply	other threads:[~2022-08-15 14:23 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 [this message]
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
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=46ac960d-bc92-05e3-37af-7ce371e6cf00@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=f4bug@amsat.org \
    --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).