鬱猫のつぶやき

鬱猫が日々思っていることをつづります

spike-dasmの逆アセンブル結果がおかしい件について

risv-isa-simに付随しているspike-dasmの逆アセンブル結果におかしい点を見つけた。

$ echo "DASM(0x00000000)" | spike-dasm
c.addi4spn s0, sp, 0

と表示されるんだが、これ unimp が表示されるのが適切。 c.addi4spn に関しては即値が0以外であることが、RISC-V ISA の仕様書にも書いてある。

C.ADDI16SP adds the non-zero sign-extended 6-bit immediate to the value in the stack pointer 

ちなみに、objdump や radare2 は正しく出してくれた。

$ rasm2 -a riscv -d "0x0000" 
unimp

すでに、GitHubでもイシューとして上がっているけども、長い間修正されていないみたいだ。

spike-dasmを使う場合には注意を。