diff --git a/SM3性能优化.md b/SM3性能优化.md index 51644e0..3814498 100644 --- a/SM3性能优化.md +++ b/SM3性能优化.md @@ -60,6 +60,12 @@ https://software.intel.com/sites/landingpage/IntrinsicsGuide/ SM3的第一版,比SHA256复杂: // Wj ← P1(Wj−16 ⊕ Wj−9 ⊕ (Wj−3 ≪ 15)) ⊕ (Wj−13 ≪ 7) ⊕ Wj−6 + // Transpose data into high/low parts + VPERM2I128 $0x20, XTMP2, XTMP0, XDWORD0 // w3, w2, w1, w0 + VPERM2I128 $0x31, XTMP2, XTMP0, XDWORD1 // w7, w6, w5, w4 + VPERM2I128 $0x20, XTMP3, XTMP1, XDWORD2 // w11, w10, w9, w8 + VPERM2I128 $0x31, XTMP3, XTMP1, XDWORD3 // w15, w14, w13, w12 + VPALIGNR $12, XDWORD0, XDWORD1, XTMP0; \ // XTMP0 = W[-13] = {w6,w5,w4,w3} VPSLLD $7, XTMP0, XTMP1; \ VPSRLD $(32-7), XTMP0, XTMP0; \