aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2016-11-16 14:48:14 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2016-11-16 14:48:14 +0800
commit1fba881aaf5bdfde03f41d62d13abfd737215fc9 (patch)
tree8566641bf590cfc2b90a35aa938804039e18e255
parentc4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7 (diff)
downloaddexon-mcl-1fba881aaf5bdfde03f41d62d13abfd737215fc9.tar.gz
dexon-mcl-1fba881aaf5bdfde03f41d62d13abfd737215fc9.tar.zst
dexon-mcl-1fba881aaf5bdfde03f41d62d13abfd737215fc9.zip
add fp_shr1 by xbyak
-rw-r--r--src/fp_generator.hpp4
-rw-r--r--test/fp_generator_test.cpp6
2 files changed, 4 insertions, 6 deletions
diff --git a/src/fp_generator.hpp b/src/fp_generator.hpp
index 7947e2d..e74366a 100644
--- a/src/fp_generator.hpp
+++ b/src/fp_generator.hpp
@@ -162,7 +162,6 @@ struct FpGenerator : Xbyak::CodeGenerator {
typedef int (*int2op)(uint64_t*, const uint64_t*);
void4u mul_;
uint3opI mulUnit_;
- void2op shr1_;
FpGenerator()
: CodeGenerator(4096 * 8)
, op_(0)
@@ -172,7 +171,6 @@ struct FpGenerator : Xbyak::CodeGenerator {
, isFullBit_(0)
, mul_(0)
, mulUnit_(0)
- , shr1_(0)
{
useMulx_ = cpu_.has(Xbyak::util::Cpu::tBMI2);
}
@@ -204,7 +202,7 @@ struct FpGenerator : Xbyak::CodeGenerator {
op.fp_subPre = getCurr<u3u>();
gen_addSubPre(false, pn_);
align(16);
- shr1_ = getCurr<void2op>();
+ op.fp_shr1 = getCurr<void2u>();
gen_shr1();
align(16);
diff --git a/test/fp_generator_test.cpp b/test/fp_generator_test.cpp
index 605867d..9cc1fcf 100644
--- a/test/fp_generator_test.cpp
+++ b/test/fp_generator_test.cpp
@@ -166,7 +166,7 @@ void testMulI(const mcl::fp::FpGenerator& fg, int pn)
}
}
-void testShr1(const mcl::fp::FpGenerator& fg, int pn)
+void testShr1(const mcl::fp::Op& op, int pn)
{
cybozu::XorShift rg;
for (int i = 0; i < 100; i++) {
@@ -176,7 +176,7 @@ void testShr1(const mcl::fp::FpGenerator& fg, int pn)
mpz_class mx;
mcl::gmp::setArray(mx, x, pn);
mx >>= 1;
- fg.shr1_(z, x);
+ op.fp_shr1(z, x);
mpz_class my;
mcl::gmp::setArray(my, z, pn);
CYBOZU_TEST_EQUAL(mx, my);
@@ -192,7 +192,7 @@ void test(const char *pStr)
testAddSub(op);
testNeg(op);
testMulI(*op.fg, pn);
- testShr1(*op.fg, pn);
+ testShr1(op, pn);
}
CYBOZU_TEST_AUTO(all)