qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Claudio Fontana <cfontana@suse.de>,
	Stefan Pejic <stefan.pejic@syrmia.com>,
	ot_dragan.mladjenovic@mediatek.com
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	qemu-devel@nongnu.org,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>,
	"Stefan Weil" <sw@weilnetz.de>,
	"Aleksandar Markovic" <amarkovic@wavecomp.com>,
	"Matthew Fortune" <matthew.fortune@mips.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	ot_stefan.pejic@mediatek.com,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: What to do with the nanomips disassembler (was: [PATCH] disas: Remove libvixl disassembler)
Date: Thu, 9 Jun 2022 16:34:13 +0200	[thread overview]
Message-ID: <4d58f632-df78-b709-37b8-f7d86ae536f6@redhat.com> (raw)
In-Reply-To: <e29d83e6-e7bb-b370-33d0-88d22aa2eddb@suse.de>

On 09/06/2022 16.15, Claudio Fontana wrote:
> On 6/9/22 13:27, Claudio Fontana wrote:
>> On 6/9/22 10:57, Daniel P. Berrangé wrote:
>>> On Thu, Jun 09, 2022 at 10:47:24AM +0200, Thomas Huth wrote:
>>>> On 08/06/2022 17.51, Paolo Bonzini wrote:
>>>>> On 6/3/22 19:35, Thomas Huth wrote:
>>>>>> On 03/06/2022 19.26, Claudio Fontana wrote:
[...]
>>>>>>> maybe something we can now drop if there are no more C++ users?
>>>>>>
>>>>>> I thought about that, too, but we still have disas/nanomips.cpp left
>>>>>> and the Windows-related files in qga/vss-win32/* .
>>>>>
>>>>> That is pure C++ so it does not need the extra complication of "detect
>>>>> whether the C and C++ compiler are ABI-compatible" (typically due to
>>>>> different libasan/libtsan implementation between gcc and clang).  So
>>>>> it's really just nanoMIPS that's left.
>>>>
>>>> Ok, so the next theoretical question is: If we get rid of the nanomips.cpp
>>>> file or convert it to plain C, would we then simplify the code in configure
>>>> again (and forbid C++ for the main QEMU code), or would we rather keep the
>>>> current settings in case we want to re-introduce more C++ code again in the
>>>> future?
>>>
>>> It doesn't feel very compelling to have just 1 source file that's
>>> C++ in QEMU. I'm curious how we ended up with this nanomips.cpp
>>> file - perhaps it originated from another project that was C++
>>> based ?
>>>
>>> The code itself doesn't look like it especially needs to be using
>>> C++. There's just 1 class there and every method is associated
>>> with that class, and external entry point from the rest of QEMU
>>> is just one boring method. Feels like it could easily have been
>>> done in C.
>>>
>>> Personally I'd prefer it to be converted to C, and if we want to
>>> add any C++ in future it should be justified & debated on its
>>> merits, rather than as an artifact of any historical artifacts
>>> such as the code in configure happening to still exist.
>>
>> I'll take a look at it, maybe I can turn it to C fairly quickly.
> 
> It seems to be generated code, getting the original authors involved in the thread.

Not sure whether the original mips folks are still around ... but the folks 
from MediaTek recently expressed their interest in nanoMIPS:

 
https://lore.kernel.org/qemu-devel/20220504110403.613168-8-stefan.pejic@syrmia.com/

Maybe they could help with the nanoMIPS disassembler?

I know it's likely a lot of work, but the best solution would maybe be to 
add nanoMIPS support to capstone instead, then other projects could benefit 
from the support in this library, too...

If I googled that right, there is a LLVM implementation of nanoMIPS 
available here:

 
https://github.com/milos1397/nanomips-outliner/tree/master/llvm/lib/Target/Mips

... so maybe that could be used as input for capstone (which is based on llvm)?

  Thomas



  reply	other threads:[~2022-06-09 15:05 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-03 16:42 [PATCH] disas: Remove libvixl disassembler Thomas Huth
2022-06-03 17:06 ` Richard Henderson
2022-06-03 17:26 ` Claudio Fontana
2022-06-03 17:35   ` Thomas Huth
2022-06-08 15:51     ` Paolo Bonzini
2022-06-09  8:47       ` Thomas Huth
2022-06-09  8:57         ` Daniel P. Berrangé
2022-06-09 11:27           ` Claudio Fontana
2022-06-09 14:15             ` Claudio Fontana
2022-06-09 14:34               ` Thomas Huth [this message]
2022-06-09 16:31                 ` What to do with the nanomips disassembler (was: [PATCH] disas: Remove libvixl disassembler) Vince Del Vecchio via
2022-06-09 17:36                   ` Thomas Huth
  -- strict thread matches above, loose matches on Subject: below --
2022-07-04 12:12 Milica Lazarevic
2022-07-04 12:22 Milica Lazarevic
2022-07-08 19:53 ` 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=4d58f632-df78-b709-37b8-f7d86ae536f6@redhat.com \
    --to=thuth@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=amarkovic@wavecomp.com \
    --cc=berrange@redhat.com \
    --cc=cfontana@suse.de \
    --cc=f4bug@amsat.org \
    --cc=matthew.fortune@mips.com \
    --cc=ot_dragan.mladjenovic@mediatek.com \
    --cc=ot_stefan.pejic@mediatek.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=stefan.pejic@syrmia.com \
    --cc=sw@weilnetz.de \
    /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).