What is the simplest, most readable and straightforward way to raise an illegal instruction in RISC-V on purpose?
I know that per spec any "full zero" instruction (so 32/16 bits only zeros) is a "Defined Illegal Instruction" (section 12.5, user spec). But I have no idea if there exists an asm shorthand for that (at least I could not find any) that I could then use in inline asm in C code.
There must surely be a portable and reliable way to always cause an illegal instruction exception? I personally find writing to read-only registers or similar hacks quite offputting, as they are not very explicit. But maybe this is just how its done?
Thank you in advance
CodePudding user response:
The mnemonic for it is unimp
. It is documented in the RISC-V asm manual, so it should be portable.