> We've run into a situation with the Tock project where we need to *prevent*
This is more of a sw-dev question than an isa-dev question.
".option norvc" will do this for you. You generally want to push/pop
the option stack to avoid that bleeding into the rest of your file,
here's an example of how we do it in Linux (where we also disable linker
relaxation, as we're looking for bit-exact sequences):
https://elixir.bootlin.com/linux/v5.12.10/source/arch/riscv/include/asm/jump_label.h#L21
There are a few common instructions that users don't want compressed,
generally NOP and EBREAK. We've kicked around the idea of adding
explicitly non-compresed versions of those. I wouldn't be opposed to
adding these, but in practice whenever I've ended up needing these I end
up with a bunch of other constraints on the assembly (alignment, no
relaxing, etc) that will result in a multi-line sequence anyway so the
option pop/push really isn't that big of a deal.