mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-14 13:06:18 +08:00
Updated MFMM (markdown)
parent
02ae8a6270
commit
1f62239755
19
MFMM.md
19
MFMM.md
@ -153,33 +153,30 @@ acc0, acc1, acc2, acc3, acc4, acc5是64位寄存器
|
||||
考虑以下算法(主要就是一轮加法,一轮减法):
|
||||
|
||||
acc4, acc3, acc2, acc1
|
||||
+ acc0, 0, 0, (acc0 - L(acc0*2^32))
|
||||
- H(acc0*2^32) L(acc0*2^32) H(acc0*2^32)
|
||||
+ acc0, 0, 0, acc0
|
||||
- H(acc0*2^32) L(acc0*2^32) H(acc0*2^32) L(acc0*2^32)
|
||||
|
||||
=》继续优化
|
||||
acc4, acc3, acc2, acc1
|
||||
+ (acc0 - H(acc0*2^32)), 0, 0, (acc0 - L(acc0*2^32))
|
||||
- L(acc0*2^32) H(acc0*2^32)
|
||||
+ (acc0 - H(acc0*2^32)), 0, 0, acc0
|
||||
- L(acc0*2^32) H(acc0*2^32) L(acc0*2^32)
|
||||
|
||||
acc0 - H(acc0 * 2^32) >= 0, acc0 - L(acc0 * 2^32) >= 0 显然。
|
||||
acc0 - H(acc0 * 2^32) >= 0显然。
|
||||
|
||||
MOVQ acc0, AX
|
||||
MOVQ acc0, DX
|
||||
SHLQ $32, AX
|
||||
SHRQ $32, DX
|
||||
MOVQ acc0, t0
|
||||
SUBQ AX, t0
|
||||
SUBQ DX, acc0
|
||||
|
||||
ADDQ t0, acc1
|
||||
ADDQ acc0, acc1
|
||||
ADCQ $0, acc2
|
||||
ADCQ $0, acc3
|
||||
ADCQ acc0, acc4
|
||||
ADCQ $0, acc5
|
||||
|
||||
SUBQ AX, acc1
|
||||
SUBQ DX, acc2
|
||||
SBBQ AX, acc3
|
||||
SBBQ $0, acc4
|
||||
SBBQ DX, acc4
|
||||
SBBQ $0, acc5
|
||||
|
||||
### 第三步,计算 X * Y1,并且和tmp相加
|
||||
|
Loading…
x
Reference in New Issue
Block a user