diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2016-11-16 14:38:07 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2016-11-16 14:38:07 +0800 |
commit | c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7 (patch) | |
tree | dc67e34938c492bdb15b37bea1ecbdb3e79fa3c6 | |
parent | 28ea8b4a3153dfde28edee2ab6446bee8c2ce621 (diff) | |
download | dexon-mcl-c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7.tar.gz dexon-mcl-c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7.tar.zst dexon-mcl-c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7.zip |
use shr1 by llvm
-rw-r--r-- | src/low_func_llvm.hpp | 1 | ||||
-rw-r--r-- | src/proto.hpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/low_func_llvm.hpp b/src/low_func_llvm.hpp index b6bf412..50dd5d6 100644 --- a/src/low_func_llvm.hpp +++ b/src/low_func_llvm.hpp @@ -11,6 +11,7 @@ struct EnableKaratsuba<Ltag> { #define MCL_DEF_LLVM_FUNC(n) \ template<>const u3u AddPre<n, Ltag>::f = &mcl_fp_addPre ## n ## L; \ template<>const u3u SubPre<n, Ltag>::f = &mcl_fp_subPre ## n ## L; \ +template<>const void2u Shr1<n, Ltag>::f = &mcl_fp_shr1_ ## n ## L; \ template<>const void3u MulPreCore<n, Ltag>::f = &mcl_fpDbl_mulPre ## n ## L; \ template<>const void2u SqrPreCore<n, Ltag>::f = &mcl_fpDbl_sqrPre ## n ## L; \ template<>const void2uI MulUnitPre<n, Ltag>::f = &mcl_fp_mulUnitPre ## n ## L; \ diff --git a/src/proto.hpp b/src/proto.hpp index d161f8e..6fdebe9 100644 --- a/src/proto.hpp +++ b/src/proto.hpp @@ -11,6 +11,7 @@ #define MCL_FP_DEF_FUNC_SUB(n, suf) \ void mcl_fp_add ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y, const mcl::fp::Unit* p); \ void mcl_fp_sub ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y, const mcl::fp::Unit* p); \ +void mcl_fp_shr1_ ## n ## suf(mcl::fp::Unit*y, const mcl::fp::Unit* x); \ mcl::fp::Unit mcl_fp_addPre ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y); \ mcl::fp::Unit mcl_fp_subPre ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y); \ void mcl_fp_mulUnitPre ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, mcl::fp::Unit y); \ |