You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Shrink
3078c4cc5a
fix: 修复大偏移量栈访问时的寄存器冲突问题
问题描述:
在访问本地数组时,如果数组基址偏移量超过 4095,PrintAddrFromX29
会使用 X10 作为临时寄存器来加载偏移量。但 Lowering.cpp 中已经
使用 X10 存储数组索引偏移量,导致寄存器冲突,数组访问地址错误。
修复方案:
1. 添加 PhysReg::W11 和 PhysReg::X11 到寄存器枚举
2. PrintAddrFromX29 和 PrintStackAccess 改用 X11 作为临时寄存器
3. 在 PhysRegName 中添加对 W11 和 X11 的支持
测试结果:
- 浮点数组操作正确
- 矩阵乘法测试通过
- 功能测试 95_float.sy 和 22_matrix_multiply.sy 完全通过
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
1 month ago |
| .. |
|
MIR.h
|
fix: 修复大偏移量栈访问时的寄存器冲突问题
|
1 month ago |