github.com/smalaichami/go-bowhead@v0.0.0-20180311002552-16302db95eaa/crypto/bn256/cloudflare/gfp.h (about) 1 #define storeBlock(a0,a1,a2,a3, r) \ 2 MOVQ a0, 0+r \ 3 MOVQ a1, 8+r \ 4 MOVQ a2, 16+r \ 5 MOVQ a3, 24+r 6 7 #define loadBlock(r, a0,a1,a2,a3) \ 8 MOVQ 0+r, a0 \ 9 MOVQ 8+r, a1 \ 10 MOVQ 16+r, a2 \ 11 MOVQ 24+r, a3 12 13 #define gfpCarry(a0,a1,a2,a3,a4, b0,b1,b2,b3,b4) \ 14 \ // b = a-p 15 MOVQ a0, b0 \ 16 MOVQ a1, b1 \ 17 MOVQ a2, b2 \ 18 MOVQ a3, b3 \ 19 MOVQ a4, b4 \ 20 \ 21 SUBQ ·p2+0(SB), b0 \ 22 SBBQ ·p2+8(SB), b1 \ 23 SBBQ ·p2+16(SB), b2 \ 24 SBBQ ·p2+24(SB), b3 \ 25 SBBQ $0, b4 \ 26 \ 27 \ // if b is negative then return a 28 \ // else return b 29 CMOVQCC b0, a0 \ 30 CMOVQCC b1, a1 \ 31 CMOVQCC b2, a2 \ 32 CMOVQCC b3, a3