diff options
| author | J08nY | 2020-03-02 15:11:25 +0100 |
|---|---|---|
| committer | J08nY | 2020-03-02 15:11:25 +0100 |
| commit | 81e5f24363cf8f50099b7fbed0fd3bcfaac9d5ea (patch) | |
| tree | 2e4abe38a7e3b2a53bb8bb2d31b6fe1cfbfb2e13 /pyecsca/codegen/render.py | |
| parent | 02d091ad7e7bb2d80e4ce6649437aad41b479346 (diff) | |
| download | pyecsca-codegen-81e5f24363cf8f50099b7fbed0fd3bcfaac9d5ea.tar.gz pyecsca-codegen-81e5f24363cf8f50099b7fbed0fd3bcfaac9d5ea.tar.zst pyecsca-codegen-81e5f24363cf8f50099b7fbed0fd3bcfaac9d5ea.zip | |
Make Barrett reduction work.
Diffstat (limited to 'pyecsca/codegen/render.py')
| -rw-r--r-- | pyecsca/codegen/render.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/pyecsca/codegen/render.py b/pyecsca/codegen/render.py index 0d0bc51..8350146 100644 --- a/pyecsca/codegen/render.py +++ b/pyecsca/codegen/render.py @@ -27,21 +27,21 @@ env = Environment( env.globals["isinstance"] = isinstance -def render_op(op: OpType, result: str, left: str, right: str, mod: str) -> Optional[str]: +def render_op(op: OpType, result: str, left: str, right: str, mod: str, red: str) -> Optional[str]: if op == OpType.Add: - return "bn_mod_add(&{}, &{}, &{}, &{});".format(left, right, mod, result) + return "bn_red_add(&{}, &{}, &{}, &{}, &{});".format(left, right, mod, red, result) elif op == OpType.Sub: - return "bn_mod_sub(&{}, &{}, &{}, &{});".format(left, right, mod, result) + return "bn_red_sub(&{}, &{}, &{}, &{}, &{});".format(left, right, mod, red, result) elif op == OpType.Neg: - return "bn_mod_neg(&{}, &{}, &{});".format(right, mod, result) + return "bn_red_neg(&{}, &{}, &{}, &{});".format(right, mod, red, result) elif op == OpType.Mult: - return "bn_mod_mul(&{}, &{}, &{}, &{});".format(left, right, mod, result) + return "bn_red_mul(&{}, &{}, &{}, &{}, &{});".format(left, right, mod, red, result) elif op == OpType.Div or op == OpType.Inv: - return "bn_mod_div(&{}, &{}, &{}, &{});".format(left, right, mod, result) + return "bn_red_div(&{}, &{}, &{}, &{}, &{});".format(left, right, mod, red, result) elif op == OpType.Sqr: - return "bn_mod_sqr(&{}, &{}, &{});".format(left, mod, result) + return "bn_red_sqr(&{}, &{}, &{}, &{});".format(left, mod, red, result) elif op == OpType.Pow: - return "bn_mod_pow(&{}, &{}, &{}, &{});".format(left, right, mod, result) + return "bn_red_pow(&{}, &{}, &{}, &{}, &{});".format(left, right, mod, red, result) elif op == OpType.Id: return "bn_copy(&{}, &{});".format(left, result) else: |
