CALL_S at least need one operand as call func index. This case needs to
be identifer during removing register operands. Otherwise incorrect CALL_S
instruction will crash other part.
Invalid CALL_S will be replaced with UNREACHABLE
I'm not sure if it makes much sense to only check about CALLs condition at the end of the pipeline. If we want to do that, we should be doing check for all instructions, which is equivalent to running a checker. We have a type checker, but this is to ensure the validity of assembly files we parse. If we emit an invalid instruction and something crashes at the end, I think that means we should be fixing the bug that emitted the invalid instruction, rather than asserting for a single instruction here.