http://man7.org/linux/man-pages/man2/syscall.2.html In the first table, for the riscv Arch/ABI, the instruction should be ecall instead of scall. According the official manual, the instruction has been renamed. https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf "The SCALL and SBREAK instructions have been renamed to ECALL and EBREAK, re-spectively. Their encoding and functionality are unchanged."