Updated sm2_z256_loong64.S 代码分析 (markdown)

Sun Yimin 2025-10-08 17:38:26 +08:00
parent fe975a250c
commit dc587b4a19

@ -6,7 +6,7 @@
实现`(t0, t1, t2, t3) = (t0, t1, t2, t3) + (a4, a5, a6, a7)`每个代表64位整数从低到高排列也就是说`t0``a4`是最低64位数也就是多字(Multi-Word)加法。
**总体实现思路**
1. 在RISC(如龙芯/LoongArch、MIPS)架构中没有x86那样的进位标识寄存器所以进位都要用`sltu` (无符号小于)等指令手动计算。
1. 在RISC(如龙芯/LoongArch、MIPS)架构中没有x86那样的进位标识寄存器所以进位都要用`sltu` (无符号小于)等指令手动计算。容易出错!
1. 使用加`1`来实现`mod P`,这里的`1`为 $2^{256} - P$ 。
1. 使用`or`合并进位(carry)。
1. 使用`masknez``maskeqz`来选择最终结果。