From e558c031867cd1eda528e5075fb208f20adaef8f Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond <guillaume.melquiond@inria.fr> Date: Thu, 16 Jul 2020 10:14:07 +0200 Subject: [PATCH] Update Why3 and refresh generated files. --- lib/add.c | 79 ----------------------- lib/add.h | 12 ---- lib/alias.h | 6 +- lib/sqrt.c | 12 ++-- lib/sub.c | 90 -------------------------- lib/sub.h | 12 ---- lib/uint64gmp.h | 14 ++-- lib/util.c | 4 +- lib/zadd.c | 167 ++++++++++++++++++++++++++++++++++++++++++------ lib/zsub.c | 165 ++++++++++++++++++++++++++++++++++++++++++----- why3 | 2 +- 11 files changed, 317 insertions(+), 246 deletions(-) diff --git a/lib/add.c b/lib/add.c index ee4fce8..caa0289 100644 --- a/lib/add.c +++ b/lib/add.c @@ -51,82 +51,3 @@ uint64_t wmpn_add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, } return c; } - -uint64_t add_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add_n(nr, nx, ny, sz); - IGNORE3(r,x,y); - return res; -} - -uint64_t add_n_rx(uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add_n(nr, nx, ny, sz); - IGNORE3(x,sz,sz); - return res; -} - -uint64_t add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add(nr, nx, sx, ny, sy); - IGNORE3(r,x,y); - return res; -} - -uint64_t add_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_add(nr, nx, sx, ny, sy); - IGNORE3(x,sx,sy); - return res; -} - -uint64_t add_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * ny; - uint64_t * nx; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(y, sx, x, sx); - nr = struct_res.__field_0; - ny = struct_res.__field_1; - nx = struct_res.__field_2; - res = wmpn_add(nr, nx, sx, ny, sy); - IGNORE3(y,sx,sx); - return res; -} - -uint64_t add_n_rxy(uint64_t * x, int32_t sx) { - return wmpn_add_n(x, x, x, sx); -} diff --git a/lib/add.h b/lib/add.h index 55e521a..c4061ed 100644 --- a/lib/add.h +++ b/lib/add.h @@ -10,17 +10,5 @@ uint64_t wmpn_add_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); uint64_t wmpn_add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); -uint64_t add_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t add_n_rx(uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t add(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t add_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t add_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t add_n_rxy(uint64_t * x, int32_t sx); - #define ADD_H_INCLUDED #endif // ADD_H_INCLUDED diff --git a/lib/alias.h b/lib/alias.h index 351cea8..a5b6611 100644 --- a/lib/alias.h +++ b/lib/alias.h @@ -22,7 +22,7 @@ struct __open_shift_sep_result { }; static inline struct __open_sep_result -open_sep (uint64_t *r, uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) +open_sep (uint64_t *r, uint64_t *x, uint64_t *y) { struct __open_sep_result result; result.__field_0 = r; @@ -32,7 +32,7 @@ open_sep (uint64_t *r, uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) } static inline struct __open_rx_result -open_rx (uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) +open_rx (uint64_t *x, uint64_t *y) { struct __open_rx_result result; result.__field_0 = x; @@ -42,7 +42,7 @@ open_rx (uint64_t *x, int32_t sx, uint64_t *y, int32_t sy) } static inline struct __open_shift_sep_result -open_shift_sep (uint64_t *r, uint64_t *x, int32_t sz) +open_shift_sep (uint64_t *r, uint64_t *x) { struct __open_shift_sep_result result; result.__field_0 = r; diff --git a/lib/sqrt.c b/lib/sqrt.c index 4dd5b76..e45ffbd 100644 --- a/lib/sqrt.c +++ b/lib/sqrt.c @@ -88,11 +88,11 @@ uint64_t wmpn_dc_sqrtrem(uint64_t * sp, uint64_t * np, int32_t n, q = q + sl; sh = *scratch; c = (int64_t)(sh % UINT64_C(2)); - struct_res = open_shift_sep(sp, scratch, l); + struct_res = open_shift_sep(sp, scratch); nr = struct_res.__field_0; nx = struct_res.__field_1; res = wmpn_rshift(nr, nx, l, UINT64_C(1)); - IGNORE2(sp,scratch); + IGNORE2(sp, scratch); res; st = sp[l - 1]; ql = q << (64 - UINT64_C(1)); @@ -194,11 +194,11 @@ int32_t wmpn_sqrtrem(uint64_t * sp, uint64_t * rp, uint64_t * np, int32_t n) { *tp = UINT64_C(0); tpa = tp + adj; if (!(c == UINT64_C(0))) { - struct_res = open_shift_sep(tpa, np, n); + struct_res = open_shift_sep(tpa, np); nr = struct_res.__field_0; nx = struct_res.__field_1; res1 = wmpn_lshift(nr, nx, n, UINT64_C(2) * c); - IGNORE2(tpa,np); + IGNORE2(tpa, np); res1; } else { wmpn_copyi1(tpa, np, n); @@ -232,11 +232,11 @@ int32_t wmpn_sqrtrem(uint64_t * sp, uint64_t * rp, uint64_t * np, int32_t n) { } if (!(c2 == UINT64_C(0))) { o4 = tp; - struct_res1 = open_shift_sep(rp, o4, tn); + struct_res1 = open_shift_sep(rp, o4); nr1 = struct_res1.__field_0; nx1 = struct_res1.__field_1; res2 = wmpn_rshift(nr1, nx1, tn, c2); - IGNORE2(rp,o4); + IGNORE2(rp, o4); res2; } else { wmpn_copyi1(rp, tp, tn); diff --git a/lib/sub.c b/lib/sub.c index 0851fa4..2b8291d 100644 --- a/lib/sub.c +++ b/lib/sub.c @@ -51,93 +51,3 @@ uint64_t wmpn_sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, } return b; } - -uint64_t sub_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub_n(nr, nx, ny, sz); - IGNORE3(r,x,y); - return res; -} - -uint64_t sub_n_rx(uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sz, y, sz); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub_n(nr, nx, ny, sz); - IGNORE3(x,sz,sz); - return res; -} - -uint64_t sub_n_ry(uint64_t * x, uint64_t * y, int32_t sz) { - uint64_t * nr; - uint64_t * ny; - uint64_t * nx; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(y, sz, x, sz); - nr = struct_res.__field_0; - ny = struct_res.__field_1; - nx = struct_res.__field_2; - res = wmpn_sub_n(nr, nx, ny, sz); - IGNORE3(y,sz,sz); - return res; -} - -uint64_t sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_sep_result struct_res; - uint64_t res; - struct_res = open_sep(r, x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub(nr, nx, sx, ny, sy); - IGNORE3(r,x,y); - return res; -} - -uint64_t sub_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * nx; - uint64_t * ny; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(x, sx, y, sy); - nr = struct_res.__field_0; - nx = struct_res.__field_1; - ny = struct_res.__field_2; - res = wmpn_sub(nr, nx, sx, ny, sy); - IGNORE3(x,sx,sy); - return res; -} - -uint64_t sub_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy) { - uint64_t * nr; - uint64_t * ny; - uint64_t * nx; - struct __open_rx_result struct_res; - uint64_t res; - struct_res = open_rx(y, sx, x, sx); - nr = struct_res.__field_0; - ny = struct_res.__field_1; - nx = struct_res.__field_2; - res = wmpn_sub(nr, nx, sx, ny, sy); - IGNORE3(y,sx,sx); - return res; -} diff --git a/lib/sub.h b/lib/sub.h index 86eed71..3371f2c 100644 --- a/lib/sub.h +++ b/lib/sub.h @@ -10,17 +10,5 @@ uint64_t wmpn_sub_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); uint64_t wmpn_sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); -uint64_t sub_n(uint64_t * r, uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t sub_n_rx(uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t sub_n_ry(uint64_t * x, uint64_t * y, int32_t sz); - -uint64_t sub(uint64_t * r, uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t sub_rx(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - -uint64_t sub_ry(uint64_t * x, int32_t sx, uint64_t * y, int32_t sy); - #define SUB_H_INCLUDED #endif // SUB_H_INCLUDED diff --git a/lib/uint64gmp.h b/lib/uint64gmp.h index 58f3b33..1a4572a 100644 --- a/lib/uint64gmp.h +++ b/lib/uint64gmp.h @@ -4,19 +4,21 @@ typedef unsigned __int128 uint128_t; -struct __mul64_double_result -{ uint64_t __field_0; +struct __mul64_double_result { + uint64_t __field_0; uint64_t __field_1; }; -static inline struct __mul64_double_result mul64_double(uint64_t x, uint64_t y) +static inline struct __mul64_double_result +mul64_double(uint64_t x, uint64_t y) { uint128_t z = (uint128_t)x * (uint128_t)y; struct __mul64_double_result result = { z, z >> 64 }; return result; } -static inline uint64_t div64_2by1(uint64_t ul, uint64_t uh, uint64_t d) +static inline uint64_t +div64_2by1(uint64_t ul, uint64_t uh, uint64_t d) { return (((uint128_t)uh << 64) | ul) / d; } @@ -73,8 +75,8 @@ add64_3(uint64_t x, uint64_t y, uint64_t z) return result; } -struct __lsld64_result -{ uint64_t __field_0; +struct __lsld64_result { + uint64_t __field_0; uint64_t __field_1; }; diff --git a/lib/util.c b/lib/util.c index d7d7784..8c4c2fe 100644 --- a/lib/util.c +++ b/lib/util.c @@ -52,11 +52,11 @@ void wmpn_copyd_sep(uint64_t * rp, uint64_t * up, int32_t n) { uint64_t * nr; uint64_t * nx; struct __open_shift_sep_result struct_res; - struct_res = open_shift_sep(rp, up, n); + struct_res = open_shift_sep(rp, up); nr = struct_res.__field_0; nx = struct_res.__field_1; wmpn_copyd(nr, nx, n); - IGNORE2(rp,up); + IGNORE2(rp, up); return; } diff --git a/lib/zadd.c b/lib/zadd.c index d167518..7139963 100644 --- a/lib/zadd.c +++ b/lib/zadd.c @@ -8,24 +8,83 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { int uw, vw; uint64_t * wp; uint64_t * vp; - uint64_t usb, usb1; + uint64_t usb; + uint64_t * nr; + uint64_t * nx; + uint64_t * ny; + struct __open_rx_result struct_res; + uint64_t res, usb1; uint64_t * up; + uint64_t * nr1; + uint64_t * ny1; + uint64_t * nx1; + struct __open_rx_result struct_res1; + uint64_t res1; uint64_t * up1; uint64_t * vp1; - uint64_t usb2, usb3, usb4; + uint64_t usb2; + uint64_t * nr2; + uint64_t * nx2; + uint64_t * ny2; + struct __open_sep_result struct_res2; + uint64_t res2, usb3; uint64_t * vp2; + uint64_t * nr3; + uint64_t * ny3; + uint64_t * nx3; + struct __open_rx_result struct_res3; + uint64_t res3, usb4; + uint64_t * nr4; + uint64_t * nx4; + uint64_t * ny4; + struct __open_rx_result struct_res4; + uint64_t res4, usb5; uint64_t * up2; - uint64_t usb5, usb6; + uint64_t * nr5; + uint64_t * nx5; + uint64_t * ny5; + struct __open_rx_result struct_res5; + uint64_t res5, usb6; + uint64_t * nr6; + uint64_t * ny6; + uint64_t * nx6; + struct __open_rx_result struct_res6; + uint64_t res6; uint64_t * up3; uint64_t * vp3; - uint64_t usb7, usb8, o; + uint64_t usb7; + uint64_t * nr7; + uint64_t * nx7; + uint64_t * ny7; + struct __open_sep_result struct_res7; + uint64_t res7, usb8; + uint64_t * nr8; + uint64_t * nx8; + uint64_t * ny8; + struct __open_sep_result struct_res8; + uint64_t res8, o; uint64_t cy; uint64_t * vp4; - uint64_t o1, o2; + uint64_t o1; + uint64_t * nr9; + uint64_t * nx9; + uint64_t * ny9; + struct __open_rx_result struct_res9; + uint64_t res9, o2; uint64_t * up4; + uint64_t * nr10; + uint64_t * ny10; + uint64_t * nx10; + struct __open_rx_result struct_res10; + uint64_t res10; uint64_t * up5; uint64_t * vp5; uint64_t o3; + uint64_t * nr11; + uint64_t * nx11; + uint64_t * ny11; + struct __open_sep_result struct_res11; + uint64_t res11; u1 = u; v1 = v; usize = SIZ(u1); @@ -51,17 +110,35 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (!(abs_usize == abs_vsize)) { if (uw) { vp = PTR(v1); - usb = sub_rx(wp, abs_usize, vp, abs_vsize); + struct_res = open_rx(wp, vp); + nr = struct_res.__field_0; + nx = struct_res.__field_1; + ny = struct_res.__field_2; + res = wmpn_sub(nr, nx, abs_usize, ny, abs_vsize); + IGNORE2(wp, vp); + usb = res; (void)(v1); } else { if (vw) { up = PTR(u1); - usb1 = sub_ry(up, abs_usize, wp, abs_vsize); + struct_res1 = open_rx(wp, up); + nr1 = struct_res1.__field_0; + ny1 = struct_res1.__field_1; + nx1 = struct_res1.__field_2; + res1 = wmpn_sub(nr1, nx1, abs_usize, ny1, abs_vsize); + IGNORE2(wp, up); + usb1 = res1; (void)(u1); } else { up1 = PTR(u1); vp1 = PTR(v1); - usb2 = sub(wp, up1, abs_usize, vp1, abs_vsize); + struct_res2 = open_sep(wp, up1, vp1); + nr2 = struct_res2.__field_0; + nx2 = struct_res2.__field_1; + ny2 = struct_res2.__field_2; + res2 = wmpn_sub(nr2, nx2, abs_usize, ny2, abs_vsize); + IGNORE3(wp, up1, vp1); + usb2 = res2; (void)(u1); (void)(v1); } @@ -76,13 +153,25 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (uw) { vp2 = PTR(v1); if (wmpn_cmp(wp, vp2, abs_usize) < 0) { - usb3 = sub_n_ry(vp2, wp, abs_usize); + struct_res3 = open_rx(wp, vp2); + nr3 = struct_res3.__field_0; + ny3 = struct_res3.__field_1; + nx3 = struct_res3.__field_2; + res3 = wmpn_sub_n(nr3, nx3, ny3, abs_usize); + IGNORE2(wp, vp2); + usb3 = res3; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb4 = sub_n_rx(wp, vp2, abs_usize); + struct_res4 = open_rx(wp, vp2); + nr4 = struct_res4.__field_0; + nx4 = struct_res4.__field_1; + ny4 = struct_res4.__field_2; + res4 = wmpn_sub_n(nr4, nx4, ny4, abs_usize); + IGNORE2(wp, vp2); + usb4 = res4; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -93,13 +182,25 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (vw) { up2 = PTR(u1); if (wmpn_cmp(up2, wp, abs_usize) < 0) { - usb5 = sub_n_rx(wp, up2, abs_usize); + struct_res5 = open_rx(wp, up2); + nr5 = struct_res5.__field_0; + nx5 = struct_res5.__field_1; + ny5 = struct_res5.__field_2; + res5 = wmpn_sub_n(nr5, nx5, ny5, abs_usize); + IGNORE2(wp, up2); + usb5 = res5; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb6 = sub_n_ry(up2, wp, abs_usize); + struct_res6 = open_rx(wp, up2); + nr6 = struct_res6.__field_0; + ny6 = struct_res6.__field_1; + nx6 = struct_res6.__field_2; + res6 = wmpn_sub_n(nr6, nx6, ny6, abs_usize); + IGNORE2(wp, up2); + usb6 = res6; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -110,13 +211,25 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { up3 = PTR(u1); vp3 = PTR(v1); if (wmpn_cmp(up3, vp3, abs_usize) < 0) { - usb7 = sub_n(wp, vp3, up3, abs_usize); + struct_res7 = open_sep(wp, vp3, up3); + nr7 = struct_res7.__field_0; + nx7 = struct_res7.__field_1; + ny7 = struct_res7.__field_2; + res7 = wmpn_sub_n(nr7, nx7, ny7, abs_usize); + IGNORE3(wp, vp3, up3); + usb7 = res7; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb8 = sub_n(wp, up3, vp3, abs_usize); + struct_res8 = open_sep(wp, up3, vp3); + nr8 = struct_res8.__field_0; + nx8 = struct_res8.__field_1; + ny8 = struct_res8.__field_2; + res8 = wmpn_sub_n(nr8, nx8, ny8, abs_usize); + IGNORE3(wp, up3, vp3); + usb8 = res8; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -131,24 +244,42 @@ void wmpz_add(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { cy = UINT64_C(0); if (uw) { if (vw) { - o = add_n_rxy(wp, abs_vsize); + o = wmpn_add_n(wp, wp, wp, abs_vsize); cy = o; } else { vp4 = PTR(v1); - o1 = add_rx(wp, abs_usize, vp4, abs_vsize); + struct_res9 = open_rx(wp, vp4); + nr9 = struct_res9.__field_0; + nx9 = struct_res9.__field_1; + ny9 = struct_res9.__field_2; + res9 = wmpn_add(nr9, nx9, abs_usize, ny9, abs_vsize); + IGNORE2(wp, vp4); + o1 = res9; cy = o1; (void)(v1); } } else { if (vw) { up4 = PTR(u1); - o2 = add_ry(up4, abs_usize, wp, abs_vsize); + struct_res10 = open_rx(wp, up4); + nr10 = struct_res10.__field_0; + ny10 = struct_res10.__field_1; + nx10 = struct_res10.__field_2; + res10 = wmpn_add(nr10, nx10, abs_usize, ny10, abs_vsize); + IGNORE2(wp, up4); + o2 = res10; cy = o2; (void)(u1); } else { up5 = PTR(u1); vp5 = PTR(v1); - o3 = add(wp, up5, abs_usize, vp5, abs_vsize); + struct_res11 = open_sep(wp, up5, vp5); + nr11 = struct_res11.__field_0; + nx11 = struct_res11.__field_1; + ny11 = struct_res11.__field_2; + res11 = wmpn_add(nr11, nx11, abs_usize, ny11, abs_vsize); + IGNORE3(wp, up5, vp5); + o3 = res11; cy = o3; (void)(u1); (void)(v1); diff --git a/lib/zsub.c b/lib/zsub.c index dc3e96e..2328dd7 100644 --- a/lib/zsub.c +++ b/lib/zsub.c @@ -8,24 +8,83 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { int uw, vw; uint64_t * wp; uint64_t * vp; - uint64_t usb, usb1; + uint64_t usb; + uint64_t * nr; + uint64_t * nx; + uint64_t * ny; + struct __open_rx_result struct_res; + uint64_t res, usb1; uint64_t * up; + uint64_t * nr1; + uint64_t * ny1; + uint64_t * nx1; + struct __open_rx_result struct_res1; + uint64_t res1; uint64_t * up1; uint64_t * vp1; - uint64_t usb2, usb3, usb4; + uint64_t usb2; + uint64_t * nr2; + uint64_t * nx2; + uint64_t * ny2; + struct __open_sep_result struct_res2; + uint64_t res2, usb3; uint64_t * vp2; + uint64_t * nr3; + uint64_t * ny3; + uint64_t * nx3; + struct __open_rx_result struct_res3; + uint64_t res3, usb4; + uint64_t * nr4; + uint64_t * nx4; + uint64_t * ny4; + struct __open_rx_result struct_res4; + uint64_t res4, usb5; uint64_t * up2; - uint64_t usb5, usb6; + uint64_t * nr5; + uint64_t * nx5; + uint64_t * ny5; + struct __open_rx_result struct_res5; + uint64_t res5, usb6; + uint64_t * nr6; + uint64_t * ny6; + uint64_t * nx6; + struct __open_rx_result struct_res6; + uint64_t res6; uint64_t * up3; uint64_t * vp3; - uint64_t usb7, usb8; + uint64_t usb7; + uint64_t * nr7; + uint64_t * nx7; + uint64_t * ny7; + struct __open_sep_result struct_res7; + uint64_t res7, usb8; + uint64_t * nr8; + uint64_t * nx8; + uint64_t * ny8; + struct __open_sep_result struct_res8; + uint64_t res8; uint64_t cy; uint64_t * vp4; - uint64_t o, o1; + uint64_t o; + uint64_t * nr9; + uint64_t * nx9; + uint64_t * ny9; + struct __open_rx_result struct_res9; + uint64_t res9, o1; uint64_t * up4; + uint64_t * nr10; + uint64_t * ny10; + uint64_t * nx10; + struct __open_rx_result struct_res10; + uint64_t res10; uint64_t * up5; uint64_t * vp5; uint64_t o2; + uint64_t * nr11; + uint64_t * nx11; + uint64_t * ny11; + struct __open_sep_result struct_res11; + uint64_t res11; u1 = u; v1 = v; if (u1 == v1) { @@ -55,17 +114,35 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (!(abs_usize == abs_vsize)) { if (uw) { vp = PTR(v1); - usb = sub_rx(wp, abs_usize, vp, abs_vsize); + struct_res = open_rx(wp, vp); + nr = struct_res.__field_0; + nx = struct_res.__field_1; + ny = struct_res.__field_2; + res = wmpn_sub(nr, nx, abs_usize, ny, abs_vsize); + IGNORE2(wp, vp); + usb = res; (void)(v1); } else { if (vw) { up = PTR(u1); - usb1 = sub_ry(up, abs_usize, wp, abs_vsize); + struct_res1 = open_rx(wp, up); + nr1 = struct_res1.__field_0; + ny1 = struct_res1.__field_1; + nx1 = struct_res1.__field_2; + res1 = wmpn_sub(nr1, nx1, abs_usize, ny1, abs_vsize); + IGNORE2(wp, up); + usb1 = res1; (void)(u1); } else { up1 = PTR(u1); vp1 = PTR(v1); - usb2 = sub(wp, up1, abs_usize, vp1, abs_vsize); + struct_res2 = open_sep(wp, up1, vp1); + nr2 = struct_res2.__field_0; + nx2 = struct_res2.__field_1; + ny2 = struct_res2.__field_2; + res2 = wmpn_sub(nr2, nx2, abs_usize, ny2, abs_vsize); + IGNORE3(wp, up1, vp1); + usb2 = res2; (void)(u1); (void)(v1); } @@ -80,13 +157,25 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (uw) { vp2 = PTR(v1); if (wmpn_cmp(wp, vp2, abs_usize) < 0) { - usb3 = sub_n_ry(vp2, wp, abs_usize); + struct_res3 = open_rx(wp, vp2); + nr3 = struct_res3.__field_0; + ny3 = struct_res3.__field_1; + nx3 = struct_res3.__field_2; + res3 = wmpn_sub_n(nr3, nx3, ny3, abs_usize); + IGNORE2(wp, vp2); + usb3 = res3; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb4 = sub_n_rx(wp, vp2, abs_usize); + struct_res4 = open_rx(wp, vp2); + nr4 = struct_res4.__field_0; + nx4 = struct_res4.__field_1; + ny4 = struct_res4.__field_2; + res4 = wmpn_sub_n(nr4, nx4, ny4, abs_usize); + IGNORE2(wp, vp2); + usb4 = res4; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -97,13 +186,25 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { if (vw) { up2 = PTR(u1); if (wmpn_cmp(up2, wp, abs_usize) < 0) { - usb5 = sub_n_rx(wp, up2, abs_usize); + struct_res5 = open_rx(wp, up2); + nr5 = struct_res5.__field_0; + nx5 = struct_res5.__field_1; + ny5 = struct_res5.__field_2; + res5 = wmpn_sub_n(nr5, nx5, ny5, abs_usize); + IGNORE2(wp, up2); + usb5 = res5; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb6 = sub_n_ry(up2, wp, abs_usize); + struct_res6 = open_rx(wp, up2); + nr6 = struct_res6.__field_0; + ny6 = struct_res6.__field_1; + nx6 = struct_res6.__field_2; + res6 = wmpn_sub_n(nr6, nx6, ny6, abs_usize); + IGNORE2(wp, up2); + usb6 = res6; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -114,13 +215,25 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { up3 = PTR(u1); vp3 = PTR(v1); if (wmpn_cmp(up3, vp3, abs_usize) < 0) { - usb7 = sub_n(wp, vp3, up3, abs_usize); + struct_res7 = open_sep(wp, vp3, up3); + nr7 = struct_res7.__field_0; + nx7 = struct_res7.__field_1; + ny7 = struct_res7.__field_2; + res7 = wmpn_sub_n(nr7, nx7, ny7, abs_usize); + IGNORE3(wp, vp3, up3); + usb7 = res7; normalize(wp, &wsize); if (usize >= 0) { wsize = -wsize; } } else { - usb8 = sub_n(wp, up3, vp3, abs_usize); + struct_res8 = open_sep(wp, up3, vp3); + nr8 = struct_res8.__field_0; + nx8 = struct_res8.__field_1; + ny8 = struct_res8.__field_2; + res8 = wmpn_sub_n(nr8, nx8, ny8, abs_usize); + IGNORE3(wp, up3, vp3); + usb8 = res8; normalize(wp, &wsize); if (usize < 0) { wsize = -wsize; @@ -135,19 +248,37 @@ void wmpz_sub(wmpz_ptr w, wmpz_ptr u, wmpz_ptr v) { cy = UINT64_C(0); if (uw) { vp4 = PTR(v1); - o = add_rx(wp, abs_usize, vp4, abs_vsize); + struct_res9 = open_rx(wp, vp4); + nr9 = struct_res9.__field_0; + nx9 = struct_res9.__field_1; + ny9 = struct_res9.__field_2; + res9 = wmpn_add(nr9, nx9, abs_usize, ny9, abs_vsize); + IGNORE2(wp, vp4); + o = res9; cy = o; (void)(v1); } else { if (vw) { up4 = PTR(u1); - o1 = add_ry(up4, abs_usize, wp, abs_vsize); + struct_res10 = open_rx(wp, up4); + nr10 = struct_res10.__field_0; + ny10 = struct_res10.__field_1; + nx10 = struct_res10.__field_2; + res10 = wmpn_add(nr10, nx10, abs_usize, ny10, abs_vsize); + IGNORE2(wp, up4); + o1 = res10; cy = o1; (void)(u1); } else { up5 = PTR(u1); vp5 = PTR(v1); - o2 = add(wp, up5, abs_usize, vp5, abs_vsize); + struct_res11 = open_sep(wp, up5, vp5); + nr11 = struct_res11.__field_0; + nx11 = struct_res11.__field_1; + ny11 = struct_res11.__field_2; + res11 = wmpn_add(nr11, nx11, abs_usize, ny11, abs_vsize); + IGNORE3(wp, up5, vp5); + o2 = res11; cy = o2; (void)(u1); (void)(v1); diff --git a/why3 b/why3 index 226ba5b..2a35b57 160000 --- a/why3 +++ b/why3 @@ -1 +1 @@ -Subproject commit 226ba5b0f0777654d637b1b88006ab54c46a31a2 +Subproject commit 2a35b574eba191bed7953b6d9fc6ffb4c417ab0b -- GitLab