qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Host riscv disas is broken


From: Alistair Francis
Subject: Re: Host riscv disas is broken
Date: Wed, 4 Dec 2024 11:45:19 +0900

On Thu, Oct 17, 2024 at 2:39 PM LIU Zhiwei <zhiwei_liu@linux.alibaba.com> wrote:
>
>
> On 2024/10/17 11:52, Richard Henderson wrote:
> > On 10/16/24 19:57, LIU Zhiwei wrote:
> >> Hi Richard,
> >>
> >> On 2024/10/17 02:38, Richard Henderson wrote:
> >>> 2595: if (dec->cfg->ext_zcmop) {
> >>> 2690:                if (dec->cfg->ext_zcmp && ((inst >> 12) & 0b01)) {
> >>> 2716:                        if (!dec->cfg->ext_zcmt) {
> >>> 2726:                        if (!dec->cfg->ext_zcmp) {
> >>> 4028:                if (dec->cfg->ext_zimop) {
> >>> 5044:            if (dec->cfg->ext_zfinx) {
> >>> 5051:            if (dec->cfg->ext_zfinx) {
> >>> 5058:            if (dec->cfg->ext_zfinx) {
> >>> 5065:            if (dec->cfg->ext_zfinx) {
> >>> 5371:        if (guard_func(cfg)) {
> >>>
> >>> This structure comes from RISCVCPU, a target structure.
> >> Oops. We missed this.
> >>> There is no such structure for the host, causing null pointer
> >>> dereferences.
> >>>
> >>> The zfinx references can be changed to
> >>>
> >>>     dec->cfg && dec->cfg->ext_zfinx
> >>>
> >>> but some of them can simply be removed, e.g. zcmop and zimop, which
> >>> are otherwise reserved encodings.
> Yes. Maybe it is better to disassemble them as usual even when there are
> disabled or not supported.
> >>
> >> Should we probe the host feature like what we do in tcg backend
> >> support and then do the right disassemble according to the probe result?
> >
> > I don't think there's anything that is currently checked in
> > disas/riscv.c that needs to know about the host.  And, as I say above,
> > some of those checks can be eliminated.
> >
> > Host disassembly needs are limited to what tcg/riscv/ emits.
>
> Agree.

Hey Zhiwei,

Did you follow up on this?

Alistair



reply via email to

[Prev in Thread] Current Thread [Next in Thread]