MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / Multiply8

Method Multiply8

extra/yassl/taocrypt/src/integer.cpp:815–904  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

813}
814
815void Portable::Multiply8(word *R, const word *A, const word *B)
816{
817 DWord p;
818 word c, d, e;
819
820 p = DWord::Multiply(A[0], B[0]);
821 R[0] = p.GetLowHalf();
822 c = p.GetHighHalf();
823 d = e = 0;
824
825 MulAcc(0, 1);
826 MulAcc(1, 0);
827
828 SaveMulAcc(1, 2, 0);
829 MulAcc(1, 1);
830 MulAcc(0, 2);
831
832 SaveMulAcc(2, 0, 3);
833 MulAcc(1, 2);
834 MulAcc(2, 1);
835 MulAcc(3, 0);
836
837 SaveMulAcc(3, 0, 4);
838 MulAcc(1, 3);
839 MulAcc(2, 2);
840 MulAcc(3, 1);
841 MulAcc(4, 0);
842
843 SaveMulAcc(4, 0, 5);
844 MulAcc(1, 4);
845 MulAcc(2, 3);
846 MulAcc(3, 2);
847 MulAcc(4, 1);
848 MulAcc(5, 0);
849
850 SaveMulAcc(5, 0, 6);
851 MulAcc(1, 5);
852 MulAcc(2, 4);
853 MulAcc(3, 3);
854 MulAcc(4, 2);
855 MulAcc(5, 1);
856 MulAcc(6, 0);
857
858 SaveMulAcc(6, 0, 7);
859 MulAcc(1, 6);
860 MulAcc(2, 5);
861 MulAcc(3, 4);
862 MulAcc(4, 3);
863 MulAcc(5, 2);
864 MulAcc(6, 1);
865 MulAcc(7, 0);
866
867 SaveMulAcc(7, 1, 7);
868 MulAcc(2, 6);
869 MulAcc(3, 5);
870 MulAcc(4, 4);
871 MulAcc(5, 3);
872 MulAcc(6, 2);

Callers

nothing calls this directly

Calls 2

GetLowHalfMethod · 0.45
GetHighHalfMethod · 0.45

Tested by

no test coverage detected