Skip to content
Success

Changes

Summary

  1. Support FP reg -> int reg moves (commit: 16794b9) (details)
  2. Update C calling conventions to the RISC-V ELF psABI (commit: ea6896f) (details)
Commit 16794b940555315c723411077a2902fc85a33c45 by xavier.leroy
Support FP reg -> int reg moves

Using instruction fmv.x.d.

This is necessary to implement the ELF psABI calling conventions,
whereas some FP arguments may have to be passed in integer registers.
(commit: 16794b9)
The file was modifiedasmcomp/riscv/emit.mlp (diff)
Commit ea6896f9f184305cc455d3af18cd1cb75cdcd93d by xavier.leroy
Update C calling conventions to the RISC-V ELF psABI

The original implementation of loc_external_arguments and
loc_external_results was following an older ABI,
where an FP argument passed in an FP register "burns" an integer register.

In the ELF psABI, integer registers and FP registers are used independently,
as in the OCaml calling convention.  Plus, if all FP registers are used
but an integer register remains, the integer register is used to pass
the next FP argument.

Fixes: #9515
(commit: ea6896f)
The file was modifiedasmcomp/riscv/proc.ml (diff)