[PATCH v2 0/3] Correct cbo and lq disassembly

frederic.petrot@univ-grenoble-alpes.fr posted 3 patches 1 week, 3 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260716154615.1545145-1-frederic.petrot@univ-grenoble-alpes.fr
Maintainers: Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <Alistair.Francis@wdc.com>, Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>, Weiwei Li <liwei1518@gmail.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Chao Liu <chao.liu@processmission.com>
disas/riscv.c              | 38 +++++++++++++++++++-------------------
target/riscv/insn32.decode |  2 ++
2 files changed, 21 insertions(+), 19 deletions(-)
[PATCH v2 0/3] Correct cbo and lq disassembly
Posted by frederic.petrot@univ-grenoble-alpes.fr 1 week, 3 days ago
From: Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>

The CBO instructions were, AFAIU, disassembled erroneously.
In addition, lq (load-quad, a RV128 instruction) shares the same
opcode space as the CBOs, which also led to incorrect dasm for that
instruction (understandable since RV128 is an experimental feature).
To avoid overlaps, we now require that lq is decoded only if
rd is not 0, as CBO requires the field corresponding to rd to be zero,
both in dasm and decodetree.

Change in v2: 
- Move the last v1 patch to the first place to correct the original
  indentation that was making checkpatch unhappy before doing the
  real work.
  (Note that disas/riscv.c has overall many checkpatch issues, this
  patch only solves the indentation one, but otherwise keeps the
  same "style" as the rest of the file)

Daniel, I took the liberty to keep your "Reviewed-by" tag, as only
patch order and indentation changed.

Frédéric Pétrot (3):
  disas/riscv.c: Correct indent for checkpatch
  disas/riscv.c: Correct wrong shifts for cbo
  disas/riscv.c: Correct disasm of lq

 disas/riscv.c              | 38 +++++++++++++++++++-------------------
 target/riscv/insn32.decode |  2 ++
 2 files changed, 21 insertions(+), 19 deletions(-)

-- 
2.43.0


Re: [PATCH v2 0/3] Correct cbo and lq disassembly
Posted by Daniel Henrique Barboza 1 week, 2 days ago

On 7/16/2026 12:46 PM, frederic.petrot@univ-grenoble-alpes.fr wrote:
> From: Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
> 
> The CBO instructions were, AFAIU, disassembled erroneously.
> In addition, lq (load-quad, a RV128 instruction) shares the same
> opcode space as the CBOs, which also led to incorrect dasm for that
> instruction (understandable since RV128 is an experimental feature).
> To avoid overlaps, we now require that lq is decoded only if
> rd is not 0, as CBO requires the field corresponding to rd to be zero,
> both in dasm and decodetree.
> 
> Change in v2:
> - Move the last v1 patch to the first place to correct the original
>    indentation that was making checkpatch unhappy before doing the
>    real work.
>    (Note that disas/riscv.c has overall many checkpatch issues, this
>    patch only solves the indentation one, but otherwise keeps the
>    same "style" as the rest of the file)
> 
> Daniel, I took the liberty to keep your "Reviewed-by" tag, as only
> patch order and indentation changed.

Yes sir.


All patches are fine for the code freeze IMO.  Thanks,

Daniel

> 
> Frédéric Pétrot (3):
>    disas/riscv.c: Correct indent for checkpatch
>    disas/riscv.c: Correct wrong shifts for cbo
>    disas/riscv.c: Correct disasm of lq
> 
>   disas/riscv.c              | 38 +++++++++++++++++++-------------------
>   target/riscv/insn32.decode |  2 ++
>   2 files changed, 21 insertions(+), 19 deletions(-)
>