Repository navigation
Commit 222e26c
committed
fix(pipeline): send flw/fsw through the LSU in parallel-FU mode
In FunctionalUnits mode, flw and fsw went to the FPU unit because their
class is FloatingPoint. Results from that unit go straight to WB, so the
load never read memory and the store never wrote it. Any value that went
through memory into or out of the float registers was lost; rv32uf
passed 4 of 11 in this mode.
Dispatch them to the LSU and count them as memory operations for the
ordering check. rv32uf now passes 11/11 in all four pipeline modes.
The other modes do not use these paths, and their cycle counts on the
riscv-tests ELFs are unchanged.1 parent 8cb4aa2 commit 222e26c
2 files changed
Lines changed: 69 additions & 1 deletion
File tree
- crates/raven-engine/src/architectures/riscv32/falcon/pipeline
- tests/support
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2854 | 2854 | | |
2855 | 2855 | | |
2856 | 2856 | | |
| 2857 | + | |
| 2858 | + | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
| 2864 | + | |
| 2865 | + | |
| 2866 | + | |
2857 | 2867 | | |
2858 | 2868 | | |
| 2869 | + | |
2859 | 2870 | | |
2860 | 2871 | | |
2861 | 2872 | | |
| |||
2885 | 2896 | | |
2886 | 2897 | | |
2887 | 2898 | | |
2888 | | - | |
| 2899 | + | |
| 2900 | + | |
| 2901 | + | |
2889 | 2902 | | |
2890 | 2903 | | |
2891 | 2904 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1667 | 1667 | | |
1668 | 1668 | | |
1669 | 1669 | | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
1670 | 1725 | | |
1671 | 1726 | | |
1672 | 1727 | | |
| |||
0 commit comments