Questions about all aboard series part 1

The all_aboard series are really good. So, I’m trying to write a summary of all_aboard series for our risc-v bi-weekly news in chinese (
Could I ask some questions about all aboard part 1?

  1. Is there any reason why A is not encouraged to emulate in the upstreaming process?
    “As of this writing, there are no A routine emulations because they were rejected as part of the Linux upstreaming process – this might change in the future, but - for now - we plan to mandate that Linux-capable machines subsume the A extension as part of the RISC-V platform specification.”
  2. A typo: why the result is already in ra? It should be a0,a1.
    ", the emulation routine is called, the stack is unwound, and the result is returned (which is already in ra from __muldf3)."
  3. The explanation for -mabi is really good. But, where is the latest abi spec of risc-v? I know chapter 20 of user space has some, but I also found a psABI spec on github. (

I will bring back more feedback about part 2-5. Thanks for all the help in advance.

  1. It’s only possible to emulate the A extension on single processor machines, where it happens to be very cheap to implement the A extension. Thus, it seemed simpler to reduce the number of ABIs supported (4 instead of 6). If someone decides to build non-A, Linux-capable machines then we’ll re-evaluate the situation.

  2. Yes, you’re right. It’s fixed, but it might take a bit to trickle through the web publishing process.

  3. The latest ABI spec is the psABI spec, which you linked. It should be compatible with what’s listed in the ISA specification but greatly expanded.