aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/codegen
diff options
context:
space:
mode:
authorJ08nY2025-10-02 14:31:57 +0200
committerJ08nY2025-10-02 14:31:57 +0200
commite8020654729c15ba1b695a8fc9dfbb02ccbbf90f (patch)
tree2d170d77c641d16be3140df0c5a91d0c069da677 /pyecsca/codegen
parentbb51b7890448201679878fe7df1bb79df8e336e0 (diff)
downloadpyecsca-codegen-e8020654729c15ba1b695a8fc9dfbb02ccbbf90f.tar.gz
pyecsca-codegen-e8020654729c15ba1b695a8fc9dfbb02ccbbf90f.tar.zst
pyecsca-codegen-e8020654729c15ba1b695a8fc9dfbb02ccbbf90f.zip
Correctly end actions on short circuit.
Diffstat (limited to 'pyecsca/codegen')
-rw-r--r--pyecsca/codegen/templates/formula_add.c5
-rw-r--r--pyecsca/codegen/templates/formula_dbl.c3
-rw-r--r--pyecsca/codegen/templates/formula_neg.c3
-rw-r--r--pyecsca/codegen/templates/formula_scl.c3
-rw-r--r--pyecsca/codegen/templates/formula_tpl.c3
5 files changed, 11 insertions, 6 deletions
diff --git a/pyecsca/codegen/templates/formula_add.c b/pyecsca/codegen/templates/formula_add.c
index 6026601..48bab07 100644
--- a/pyecsca/codegen/templates/formula_add.c
+++ b/pyecsca/codegen/templates/formula_add.c
@@ -16,16 +16,17 @@ __attribute__((noinline)) void point_add(const point_t *one, const point_t *othe
{%- if short_circuit %}
if (point_equals(one, curve->neutral)) {
point_set(other, out_one);
- return;
+ goto end;
}
if (point_equals(other, curve->neutral)) {
point_set(one, out_one);
- return;
+ goto end;
}
{%- endif %}
{{ ops.render_initializations(initializations) }}
{{ ops.render_ops(operations) }}
{{ ops.render_returns(returns) }}
//NOP_128();
+end:
{{ end_action("add") }}
} \ No newline at end of file
diff --git a/pyecsca/codegen/templates/formula_dbl.c b/pyecsca/codegen/templates/formula_dbl.c
index 451b0ee..e1cfa15 100644
--- a/pyecsca/codegen/templates/formula_dbl.c
+++ b/pyecsca/codegen/templates/formula_dbl.c
@@ -16,12 +16,13 @@ __attribute__((noinline)) void point_dbl(const point_t *one, const curve_t *curv
{%- if short_circuit %}
if (point_equals(one, curve->neutral)) {
point_set(one, out_one);
- return;
+ goto end;
}
{%- endif %}
{{ ops.render_initializations(initializations) }}
{{ ops.render_ops(operations) }}
{{ ops.render_returns(returns) }}
//NOP_128();
+end:
{{ end_action("dbl") }}
} \ No newline at end of file
diff --git a/pyecsca/codegen/templates/formula_neg.c b/pyecsca/codegen/templates/formula_neg.c
index 93fbe20..fa96c63 100644
--- a/pyecsca/codegen/templates/formula_neg.c
+++ b/pyecsca/codegen/templates/formula_neg.c
@@ -16,12 +16,13 @@ __attribute__((noinline)) void point_neg(const point_t *one, const curve_t *curv
{%- if short_circuit %}
if (point_equals(one, curve->neutral)) {
point_set(one, out_one);
- return;
+ goto end;
}
{%- endif %}
{{ ops.render_initializations(initializations) }}
{{ ops.render_ops(operations) }}
{{ ops.render_returns(returns) }}
//NOP_128();
+end:
{{ end_action("neg") }}
} \ No newline at end of file
diff --git a/pyecsca/codegen/templates/formula_scl.c b/pyecsca/codegen/templates/formula_scl.c
index 48ac52e..f1471a2 100644
--- a/pyecsca/codegen/templates/formula_scl.c
+++ b/pyecsca/codegen/templates/formula_scl.c
@@ -16,12 +16,13 @@ __attribute__((noinline)) void point_scl(const point_t *one, const curve_t *curv
{%- if short_circuit %}
if (point_equals(one, curve->neutral)) {
point_set(one, out_one);
- return;
+ goto end;
}
{%- endif %}
{{ ops.render_initializations(initializations) }}
{{ ops.render_ops(operations) }}
{{ ops.render_returns(returns) }}
//NOP_128();
+end:
{{ end_action("scl") }}
} \ No newline at end of file
diff --git a/pyecsca/codegen/templates/formula_tpl.c b/pyecsca/codegen/templates/formula_tpl.c
index d280bad..0b4cd64 100644
--- a/pyecsca/codegen/templates/formula_tpl.c
+++ b/pyecsca/codegen/templates/formula_tpl.c
@@ -16,12 +16,13 @@ __attribute__((noinline)) void point_tpl(const point_t *one, const curve_t *curv
{%- if short_circuit %}
if (point_equals(one, curve->neutral)) {
point_set(one, out_one);
- return;
+ goto end;
}
{%- endif %}
{{ ops.render_initializations(initializations) }}
{{ ops.render_ops(operations) }}
{{ ops.render_returns(returns) }}
//NOP_128();
+end:
{{ end_action("tpl") }}
} \ No newline at end of file