| ... | ... | @@ -18,7 +18,6 @@ |
| 18 | 18 | // if x1 & (2^256-1) < 2^255 then x1 & (2^256-1) else (x1 & (2^256-1)) - 2^256 |
| 19 | 19 | |
| 20 | 20 | const std = @import("std"); |
| 21 | | const cast = std.meta.cast; |
| 22 | 21 | const mode = std.builtin.mode; // Checked arithmetic is disabled in non-debug modes to avoid side channels |
| 23 | 22 | |
| 24 | 23 | // The type MontgomeryDomainFieldElement is a field element in the Montgomery domain. |
| ... | ... | @@ -148,7 +147,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 148 | 147 | var x17: u64 = undefined; |
| 149 | 148 | var x18: u1 = undefined; |
| 150 | 149 | addcarryxU64(&x17, &x18, x16, x8, x5); |
| 151 | | const x19 = (cast(u64, x18) + x6); |
| 150 | const x19 = (@as(u64, x18) + x6); |
| 152 | 151 | var x20: u64 = undefined; |
| 153 | 152 | var x21: u64 = undefined; |
| 154 | 153 | mulxU64(&x20, &x21, x11, 0xffffffff00000001); |
| ... | ... | @@ -161,7 +160,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 161 | 160 | var x26: u64 = undefined; |
| 162 | 161 | var x27: u1 = undefined; |
| 163 | 162 | addcarryxU64(&x26, &x27, 0x0, x25, x22); |
| 164 | | const x28 = (cast(u64, x27) + x23); |
| 163 | const x28 = (@as(u64, x27) + x23); |
| 165 | 164 | var x29: u64 = undefined; |
| 166 | 165 | var x30: u1 = undefined; |
| 167 | 166 | addcarryxU64(&x29, &x30, 0x0, x11, x24); |
| ... | ... | @@ -198,7 +197,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 198 | 197 | var x51: u64 = undefined; |
| 199 | 198 | var x52: u1 = undefined; |
| 200 | 199 | addcarryxU64(&x51, &x52, x50, x42, x39); |
| 201 | | const x53 = (cast(u64, x52) + x40); |
| 200 | const x53 = (@as(u64, x52) + x40); |
| 202 | 201 | var x54: u64 = undefined; |
| 203 | 202 | var x55: u1 = undefined; |
| 204 | 203 | addcarryxU64(&x54, &x55, 0x0, x31, x45); |
| ... | ... | @@ -213,7 +212,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 213 | 212 | addcarryxU64(&x60, &x61, x59, x37, x51); |
| 214 | 213 | var x62: u64 = undefined; |
| 215 | 214 | var x63: u1 = undefined; |
| 216 | | addcarryxU64(&x62, &x63, x61, cast(u64, x38), x53); |
| 215 | addcarryxU64(&x62, &x63, x61, @as(u64, x38), x53); |
| 217 | 216 | var x64: u64 = undefined; |
| 218 | 217 | var x65: u64 = undefined; |
| 219 | 218 | mulxU64(&x64, &x65, x54, 0xffffffff00000001); |
| ... | ... | @@ -226,7 +225,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 226 | 225 | var x70: u64 = undefined; |
| 227 | 226 | var x71: u1 = undefined; |
| 228 | 227 | addcarryxU64(&x70, &x71, 0x0, x69, x66); |
| 229 | | const x72 = (cast(u64, x71) + x67); |
| 228 | const x72 = (@as(u64, x71) + x67); |
| 230 | 229 | var x73: u64 = undefined; |
| 231 | 230 | var x74: u1 = undefined; |
| 232 | 231 | addcarryxU64(&x73, &x74, 0x0, x54, x68); |
| ... | ... | @@ -242,7 +241,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 242 | 241 | var x81: u64 = undefined; |
| 243 | 242 | var x82: u1 = undefined; |
| 244 | 243 | addcarryxU64(&x81, &x82, x80, x62, x65); |
| 245 | | const x83 = (cast(u64, x82) + cast(u64, x63)); |
| 244 | const x83 = (@as(u64, x82) + @as(u64, x63)); |
| 246 | 245 | var x84: u64 = undefined; |
| 247 | 246 | var x85: u64 = undefined; |
| 248 | 247 | mulxU64(&x84, &x85, x2, (arg2[3])); |
| ... | ... | @@ -264,7 +263,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 264 | 263 | var x96: u64 = undefined; |
| 265 | 264 | var x97: u1 = undefined; |
| 266 | 265 | addcarryxU64(&x96, &x97, x95, x87, x84); |
| 267 | | const x98 = (cast(u64, x97) + x85); |
| 266 | const x98 = (@as(u64, x97) + x85); |
| 268 | 267 | var x99: u64 = undefined; |
| 269 | 268 | var x100: u1 = undefined; |
| 270 | 269 | addcarryxU64(&x99, &x100, 0x0, x75, x90); |
| ... | ... | @@ -292,7 +291,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 292 | 291 | var x115: u64 = undefined; |
| 293 | 292 | var x116: u1 = undefined; |
| 294 | 293 | addcarryxU64(&x115, &x116, 0x0, x114, x111); |
| 295 | | const x117 = (cast(u64, x116) + x112); |
| 294 | const x117 = (@as(u64, x116) + x112); |
| 296 | 295 | var x118: u64 = undefined; |
| 297 | 296 | var x119: u1 = undefined; |
| 298 | 297 | addcarryxU64(&x118, &x119, 0x0, x99, x113); |
| ... | ... | @@ -308,7 +307,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 308 | 307 | var x126: u64 = undefined; |
| 309 | 308 | var x127: u1 = undefined; |
| 310 | 309 | addcarryxU64(&x126, &x127, x125, x107, x110); |
| 311 | | const x128 = (cast(u64, x127) + cast(u64, x108)); |
| 310 | const x128 = (@as(u64, x127) + @as(u64, x108)); |
| 312 | 311 | var x129: u64 = undefined; |
| 313 | 312 | var x130: u64 = undefined; |
| 314 | 313 | mulxU64(&x129, &x130, x3, (arg2[3])); |
| ... | ... | @@ -330,7 +329,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 330 | 329 | var x141: u64 = undefined; |
| 331 | 330 | var x142: u1 = undefined; |
| 332 | 331 | addcarryxU64(&x141, &x142, x140, x132, x129); |
| 333 | | const x143 = (cast(u64, x142) + x130); |
| 332 | const x143 = (@as(u64, x142) + x130); |
| 334 | 333 | var x144: u64 = undefined; |
| 335 | 334 | var x145: u1 = undefined; |
| 336 | 335 | addcarryxU64(&x144, &x145, 0x0, x120, x135); |
| ... | ... | @@ -358,7 +357,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 358 | 357 | var x160: u64 = undefined; |
| 359 | 358 | var x161: u1 = undefined; |
| 360 | 359 | addcarryxU64(&x160, &x161, 0x0, x159, x156); |
| 361 | | const x162 = (cast(u64, x161) + x157); |
| 360 | const x162 = (@as(u64, x161) + x157); |
| 362 | 361 | var x163: u64 = undefined; |
| 363 | 362 | var x164: u1 = undefined; |
| 364 | 363 | addcarryxU64(&x163, &x164, 0x0, x144, x158); |
| ... | ... | @@ -374,7 +373,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 374 | 373 | var x171: u64 = undefined; |
| 375 | 374 | var x172: u1 = undefined; |
| 376 | 375 | addcarryxU64(&x171, &x172, x170, x152, x155); |
| 377 | | const x173 = (cast(u64, x172) + cast(u64, x153)); |
| 376 | const x173 = (@as(u64, x172) + @as(u64, x153)); |
| 378 | 377 | var x174: u64 = undefined; |
| 379 | 378 | var x175: u1 = undefined; |
| 380 | 379 | subborrowxU64(&x174, &x175, 0x0, x165, 0xffffffffffffffff); |
| ... | ... | @@ -383,13 +382,13 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 383 | 382 | subborrowxU64(&x176, &x177, x175, x167, 0xffffffff); |
| 384 | 383 | var x178: u64 = undefined; |
| 385 | 384 | var x179: u1 = undefined; |
| 386 | | subborrowxU64(&x178, &x179, x177, x169, cast(u64, 0x0)); |
| 385 | subborrowxU64(&x178, &x179, x177, x169, @as(u64, 0x0)); |
| 387 | 386 | var x180: u64 = undefined; |
| 388 | 387 | var x181: u1 = undefined; |
| 389 | 388 | subborrowxU64(&x180, &x181, x179, x171, 0xffffffff00000001); |
| 390 | 389 | var x182: u64 = undefined; |
| 391 | 390 | var x183: u1 = undefined; |
| 392 | | subborrowxU64(&x182, &x183, x181, x173, cast(u64, 0x0)); |
| 391 | subborrowxU64(&x182, &x183, x181, x173, @as(u64, 0x0)); |
| 393 | 392 | var x184: u64 = undefined; |
| 394 | 393 | cmovznzU64(&x184, x183, x174, x165); |
| 395 | 394 | var x185: u64 = undefined; |
| ... | ... | @@ -440,7 +439,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 440 | 439 | var x17: u64 = undefined; |
| 441 | 440 | var x18: u1 = undefined; |
| 442 | 441 | addcarryxU64(&x17, &x18, x16, x8, x5); |
| 443 | | const x19 = (cast(u64, x18) + x6); |
| 442 | const x19 = (@as(u64, x18) + x6); |
| 444 | 443 | var x20: u64 = undefined; |
| 445 | 444 | var x21: u64 = undefined; |
| 446 | 445 | mulxU64(&x20, &x21, x11, 0xffffffff00000001); |
| ... | ... | @@ -453,7 +452,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 453 | 452 | var x26: u64 = undefined; |
| 454 | 453 | var x27: u1 = undefined; |
| 455 | 454 | addcarryxU64(&x26, &x27, 0x0, x25, x22); |
| 456 | | const x28 = (cast(u64, x27) + x23); |
| 455 | const x28 = (@as(u64, x27) + x23); |
| 457 | 456 | var x29: u64 = undefined; |
| 458 | 457 | var x30: u1 = undefined; |
| 459 | 458 | addcarryxU64(&x29, &x30, 0x0, x11, x24); |
| ... | ... | @@ -490,7 +489,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 490 | 489 | var x51: u64 = undefined; |
| 491 | 490 | var x52: u1 = undefined; |
| 492 | 491 | addcarryxU64(&x51, &x52, x50, x42, x39); |
| 493 | | const x53 = (cast(u64, x52) + x40); |
| 492 | const x53 = (@as(u64, x52) + x40); |
| 494 | 493 | var x54: u64 = undefined; |
| 495 | 494 | var x55: u1 = undefined; |
| 496 | 495 | addcarryxU64(&x54, &x55, 0x0, x31, x45); |
| ... | ... | @@ -505,7 +504,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 505 | 504 | addcarryxU64(&x60, &x61, x59, x37, x51); |
| 506 | 505 | var x62: u64 = undefined; |
| 507 | 506 | var x63: u1 = undefined; |
| 508 | | addcarryxU64(&x62, &x63, x61, cast(u64, x38), x53); |
| 507 | addcarryxU64(&x62, &x63, x61, @as(u64, x38), x53); |
| 509 | 508 | var x64: u64 = undefined; |
| 510 | 509 | var x65: u64 = undefined; |
| 511 | 510 | mulxU64(&x64, &x65, x54, 0xffffffff00000001); |
| ... | ... | @@ -518,7 +517,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 518 | 517 | var x70: u64 = undefined; |
| 519 | 518 | var x71: u1 = undefined; |
| 520 | 519 | addcarryxU64(&x70, &x71, 0x0, x69, x66); |
| 521 | | const x72 = (cast(u64, x71) + x67); |
| 520 | const x72 = (@as(u64, x71) + x67); |
| 522 | 521 | var x73: u64 = undefined; |
| 523 | 522 | var x74: u1 = undefined; |
| 524 | 523 | addcarryxU64(&x73, &x74, 0x0, x54, x68); |
| ... | ... | @@ -534,7 +533,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 534 | 533 | var x81: u64 = undefined; |
| 535 | 534 | var x82: u1 = undefined; |
| 536 | 535 | addcarryxU64(&x81, &x82, x80, x62, x65); |
| 537 | | const x83 = (cast(u64, x82) + cast(u64, x63)); |
| 536 | const x83 = (@as(u64, x82) + @as(u64, x63)); |
| 538 | 537 | var x84: u64 = undefined; |
| 539 | 538 | var x85: u64 = undefined; |
| 540 | 539 | mulxU64(&x84, &x85, x2, (arg1[3])); |
| ... | ... | @@ -556,7 +555,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 556 | 555 | var x96: u64 = undefined; |
| 557 | 556 | var x97: u1 = undefined; |
| 558 | 557 | addcarryxU64(&x96, &x97, x95, x87, x84); |
| 559 | | const x98 = (cast(u64, x97) + x85); |
| 558 | const x98 = (@as(u64, x97) + x85); |
| 560 | 559 | var x99: u64 = undefined; |
| 561 | 560 | var x100: u1 = undefined; |
| 562 | 561 | addcarryxU64(&x99, &x100, 0x0, x75, x90); |
| ... | ... | @@ -584,7 +583,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 584 | 583 | var x115: u64 = undefined; |
| 585 | 584 | var x116: u1 = undefined; |
| 586 | 585 | addcarryxU64(&x115, &x116, 0x0, x114, x111); |
| 587 | | const x117 = (cast(u64, x116) + x112); |
| 586 | const x117 = (@as(u64, x116) + x112); |
| 588 | 587 | var x118: u64 = undefined; |
| 589 | 588 | var x119: u1 = undefined; |
| 590 | 589 | addcarryxU64(&x118, &x119, 0x0, x99, x113); |
| ... | ... | @@ -600,7 +599,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 600 | 599 | var x126: u64 = undefined; |
| 601 | 600 | var x127: u1 = undefined; |
| 602 | 601 | addcarryxU64(&x126, &x127, x125, x107, x110); |
| 603 | | const x128 = (cast(u64, x127) + cast(u64, x108)); |
| 602 | const x128 = (@as(u64, x127) + @as(u64, x108)); |
| 604 | 603 | var x129: u64 = undefined; |
| 605 | 604 | var x130: u64 = undefined; |
| 606 | 605 | mulxU64(&x129, &x130, x3, (arg1[3])); |
| ... | ... | @@ -622,7 +621,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 622 | 621 | var x141: u64 = undefined; |
| 623 | 622 | var x142: u1 = undefined; |
| 624 | 623 | addcarryxU64(&x141, &x142, x140, x132, x129); |
| 625 | | const x143 = (cast(u64, x142) + x130); |
| 624 | const x143 = (@as(u64, x142) + x130); |
| 626 | 625 | var x144: u64 = undefined; |
| 627 | 626 | var x145: u1 = undefined; |
| 628 | 627 | addcarryxU64(&x144, &x145, 0x0, x120, x135); |
| ... | ... | @@ -650,7 +649,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 650 | 649 | var x160: u64 = undefined; |
| 651 | 650 | var x161: u1 = undefined; |
| 652 | 651 | addcarryxU64(&x160, &x161, 0x0, x159, x156); |
| 653 | | const x162 = (cast(u64, x161) + x157); |
| 652 | const x162 = (@as(u64, x161) + x157); |
| 654 | 653 | var x163: u64 = undefined; |
| 655 | 654 | var x164: u1 = undefined; |
| 656 | 655 | addcarryxU64(&x163, &x164, 0x0, x144, x158); |
| ... | ... | @@ -666,7 +665,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 666 | 665 | var x171: u64 = undefined; |
| 667 | 666 | var x172: u1 = undefined; |
| 668 | 667 | addcarryxU64(&x171, &x172, x170, x152, x155); |
| 669 | | const x173 = (cast(u64, x172) + cast(u64, x153)); |
| 668 | const x173 = (@as(u64, x172) + @as(u64, x153)); |
| 670 | 669 | var x174: u64 = undefined; |
| 671 | 670 | var x175: u1 = undefined; |
| 672 | 671 | subborrowxU64(&x174, &x175, 0x0, x165, 0xffffffffffffffff); |
| ... | ... | @@ -675,13 +674,13 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl |
| 675 | 674 | subborrowxU64(&x176, &x177, x175, x167, 0xffffffff); |
| 676 | 675 | var x178: u64 = undefined; |
| 677 | 676 | var x179: u1 = undefined; |
| 678 | | subborrowxU64(&x178, &x179, x177, x169, cast(u64, 0x0)); |
| 677 | subborrowxU64(&x178, &x179, x177, x169, @as(u64, 0x0)); |
| 679 | 678 | var x180: u64 = undefined; |
| 680 | 679 | var x181: u1 = undefined; |
| 681 | 680 | subborrowxU64(&x180, &x181, x179, x171, 0xffffffff00000001); |
| 682 | 681 | var x182: u64 = undefined; |
| 683 | 682 | var x183: u1 = undefined; |
| 684 | | subborrowxU64(&x182, &x183, x181, x173, cast(u64, 0x0)); |
| 683 | subborrowxU64(&x182, &x183, x181, x173, @as(u64, 0x0)); |
| 685 | 684 | var x184: u64 = undefined; |
| 686 | 685 | cmovznzU64(&x184, x183, x174, x165); |
| 687 | 686 | var x185: u64 = undefined; |
| ... | ... | @@ -728,13 +727,13 @@ pub fn add(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 728 | 727 | subborrowxU64(&x11, &x12, x10, x3, 0xffffffff); |
| 729 | 728 | var x13: u64 = undefined; |
| 730 | 729 | var x14: u1 = undefined; |
| 731 | | subborrowxU64(&x13, &x14, x12, x5, cast(u64, 0x0)); |
| 730 | subborrowxU64(&x13, &x14, x12, x5, @as(u64, 0x0)); |
| 732 | 731 | var x15: u64 = undefined; |
| 733 | 732 | var x16: u1 = undefined; |
| 734 | 733 | subborrowxU64(&x15, &x16, x14, x7, 0xffffffff00000001); |
| 735 | 734 | var x17: u64 = undefined; |
| 736 | 735 | var x18: u1 = undefined; |
| 737 | | subborrowxU64(&x17, &x18, x16, cast(u64, x8), cast(u64, 0x0)); |
| 736 | subborrowxU64(&x17, &x18, x16, @as(u64, x8), @as(u64, 0x0)); |
| 738 | 737 | var x19: u64 = undefined; |
| 739 | 738 | cmovznzU64(&x19, x18, x9, x1); |
| 740 | 739 | var x20: u64 = undefined; |
| ... | ... | @@ -774,7 +773,7 @@ pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 774 | 773 | var x8: u1 = undefined; |
| 775 | 774 | subborrowxU64(&x7, &x8, x6, (arg1[3]), (arg2[3])); |
| 776 | 775 | var x9: u64 = undefined; |
| 777 | | cmovznzU64(&x9, x8, cast(u64, 0x0), 0xffffffffffffffff); |
| 776 | cmovznzU64(&x9, x8, @as(u64, 0x0), 0xffffffffffffffff); |
| 778 | 777 | var x10: u64 = undefined; |
| 779 | 778 | var x11: u1 = undefined; |
| 780 | 779 | addcarryxU64(&x10, &x11, 0x0, x1, x9); |
| ... | ... | @@ -783,7 +782,7 @@ pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 783 | 782 | addcarryxU64(&x12, &x13, x11, x3, (x9 & 0xffffffff)); |
| 784 | 783 | var x14: u64 = undefined; |
| 785 | 784 | var x15: u1 = undefined; |
| 786 | | addcarryxU64(&x14, &x15, x13, x5, cast(u64, 0x0)); |
| 785 | addcarryxU64(&x14, &x15, x13, x5, @as(u64, 0x0)); |
| 787 | 786 | var x16: u64 = undefined; |
| 788 | 787 | var x17: u1 = undefined; |
| 789 | 788 | addcarryxU64(&x16, &x17, x15, x7, (x9 & 0xffffffff00000001)); |
| ... | ... | @@ -806,18 +805,18 @@ pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 806 | 805 | |
| 807 | 806 | var x1: u64 = undefined; |
| 808 | 807 | var x2: u1 = undefined; |
| 809 | | subborrowxU64(&x1, &x2, 0x0, cast(u64, 0x0), (arg1[0])); |
| 808 | subborrowxU64(&x1, &x2, 0x0, @as(u64, 0x0), (arg1[0])); |
| 810 | 809 | var x3: u64 = undefined; |
| 811 | 810 | var x4: u1 = undefined; |
| 812 | | subborrowxU64(&x3, &x4, x2, cast(u64, 0x0), (arg1[1])); |
| 811 | subborrowxU64(&x3, &x4, x2, @as(u64, 0x0), (arg1[1])); |
| 813 | 812 | var x5: u64 = undefined; |
| 814 | 813 | var x6: u1 = undefined; |
| 815 | | subborrowxU64(&x5, &x6, x4, cast(u64, 0x0), (arg1[2])); |
| 814 | subborrowxU64(&x5, &x6, x4, @as(u64, 0x0), (arg1[2])); |
| 816 | 815 | var x7: u64 = undefined; |
| 817 | 816 | var x8: u1 = undefined; |
| 818 | | subborrowxU64(&x7, &x8, x6, cast(u64, 0x0), (arg1[3])); |
| 817 | subborrowxU64(&x7, &x8, x6, @as(u64, 0x0), (arg1[3])); |
| 819 | 818 | var x9: u64 = undefined; |
| 820 | | cmovznzU64(&x9, x8, cast(u64, 0x0), 0xffffffffffffffff); |
| 819 | cmovznzU64(&x9, x8, @as(u64, 0x0), 0xffffffffffffffff); |
| 821 | 820 | var x10: u64 = undefined; |
| 822 | 821 | var x11: u1 = undefined; |
| 823 | 822 | addcarryxU64(&x10, &x11, 0x0, x1, x9); |
| ... | ... | @@ -826,7 +825,7 @@ pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme |
| 826 | 825 | addcarryxU64(&x12, &x13, x11, x3, (x9 & 0xffffffff)); |
| 827 | 826 | var x14: u64 = undefined; |
| 828 | 827 | var x15: u1 = undefined; |
| 829 | | addcarryxU64(&x14, &x15, x13, x5, cast(u64, 0x0)); |
| 828 | addcarryxU64(&x14, &x15, x13, x5, @as(u64, 0x0)); |
| 830 | 829 | var x16: u64 = undefined; |
| 831 | 830 | var x17: u1 = undefined; |
| 832 | 831 | addcarryxU64(&x16, &x17, x15, x7, (x9 & 0xffffffff00000001)); |
| ... | ... | @@ -865,7 +864,7 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo |
| 865 | 864 | addcarryxU64(&x10, &x11, 0x0, x1, x6); |
| 866 | 865 | var x12: u64 = undefined; |
| 867 | 866 | var x13: u1 = undefined; |
| 868 | | addcarryxU64(&x12, &x13, x11, cast(u64, 0x0), x8); |
| 867 | addcarryxU64(&x12, &x13, x11, @as(u64, 0x0), x8); |
| 869 | 868 | var x14: u64 = undefined; |
| 870 | 869 | var x15: u1 = undefined; |
| 871 | 870 | addcarryxU64(&x14, &x15, 0x0, x12, (arg1[1])); |
| ... | ... | @@ -886,10 +885,10 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo |
| 886 | 885 | addcarryxU64(&x24, &x25, 0x0, x14, x20); |
| 887 | 886 | var x26: u64 = undefined; |
| 888 | 887 | var x27: u1 = undefined; |
| 889 | | addcarryxU64(&x26, &x27, x25, (cast(u64, x15) + (cast(u64, x13) + (cast(u64, x9) + x5))), x22); |
| 888 | addcarryxU64(&x26, &x27, x25, (@as(u64, x15) + (@as(u64, x13) + (@as(u64, x9) + x5))), x22); |
| 890 | 889 | var x28: u64 = undefined; |
| 891 | 890 | var x29: u1 = undefined; |
| 892 | | addcarryxU64(&x28, &x29, x27, x2, (cast(u64, x23) + x19)); |
| 891 | addcarryxU64(&x28, &x29, x27, x2, (@as(u64, x23) + x19)); |
| 893 | 892 | var x30: u64 = undefined; |
| 894 | 893 | var x31: u1 = undefined; |
| 895 | 894 | addcarryxU64(&x30, &x31, x29, x3, x16); |
| ... | ... | @@ -898,10 +897,10 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo |
| 898 | 897 | addcarryxU64(&x32, &x33, 0x0, x26, (arg1[2])); |
| 899 | 898 | var x34: u64 = undefined; |
| 900 | 899 | var x35: u1 = undefined; |
| 901 | | addcarryxU64(&x34, &x35, x33, x28, cast(u64, 0x0)); |
| 900 | addcarryxU64(&x34, &x35, x33, x28, @as(u64, 0x0)); |
| 902 | 901 | var x36: u64 = undefined; |
| 903 | 902 | var x37: u1 = undefined; |
| 904 | | addcarryxU64(&x36, &x37, x35, x30, cast(u64, 0x0)); |
| 903 | addcarryxU64(&x36, &x37, x35, x30, @as(u64, 0x0)); |
| 905 | 904 | var x38: u64 = undefined; |
| 906 | 905 | var x39: u64 = undefined; |
| 907 | 906 | mulxU64(&x38, &x39, x32, 0xffffffff00000001); |
| ... | ... | @@ -922,19 +921,19 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo |
| 922 | 921 | addcarryxU64(&x48, &x49, x47, x34, x44); |
| 923 | 922 | var x50: u64 = undefined; |
| 924 | 923 | var x51: u1 = undefined; |
| 925 | | addcarryxU64(&x50, &x51, x49, x36, (cast(u64, x45) + x41)); |
| 924 | addcarryxU64(&x50, &x51, x49, x36, (@as(u64, x45) + x41)); |
| 926 | 925 | var x52: u64 = undefined; |
| 927 | 926 | var x53: u1 = undefined; |
| 928 | | addcarryxU64(&x52, &x53, x51, (cast(u64, x37) + (cast(u64, x31) + x17)), x38); |
| 927 | addcarryxU64(&x52, &x53, x51, (@as(u64, x37) + (@as(u64, x31) + x17)), x38); |
| 929 | 928 | var x54: u64 = undefined; |
| 930 | 929 | var x55: u1 = undefined; |
| 931 | 930 | addcarryxU64(&x54, &x55, 0x0, x48, (arg1[3])); |
| 932 | 931 | var x56: u64 = undefined; |
| 933 | 932 | var x57: u1 = undefined; |
| 934 | | addcarryxU64(&x56, &x57, x55, x50, cast(u64, 0x0)); |
| 933 | addcarryxU64(&x56, &x57, x55, x50, @as(u64, 0x0)); |
| 935 | 934 | var x58: u64 = undefined; |
| 936 | 935 | var x59: u1 = undefined; |
| 937 | | addcarryxU64(&x58, &x59, x57, x52, cast(u64, 0x0)); |
| 936 | addcarryxU64(&x58, &x59, x57, x52, @as(u64, 0x0)); |
| 938 | 937 | var x60: u64 = undefined; |
| 939 | 938 | var x61: u64 = undefined; |
| 940 | 939 | mulxU64(&x60, &x61, x54, 0xffffffff00000001); |
| ... | ... | @@ -955,11 +954,11 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo |
| 955 | 954 | addcarryxU64(&x70, &x71, x69, x56, x66); |
| 956 | 955 | var x72: u64 = undefined; |
| 957 | 956 | var x73: u1 = undefined; |
| 958 | | addcarryxU64(&x72, &x73, x71, x58, (cast(u64, x67) + x63)); |
| 957 | addcarryxU64(&x72, &x73, x71, x58, (@as(u64, x67) + x63)); |
| 959 | 958 | var x74: u64 = undefined; |
| 960 | 959 | var x75: u1 = undefined; |
| 961 | | addcarryxU64(&x74, &x75, x73, (cast(u64, x59) + (cast(u64, x53) + x39)), x60); |
| 962 | | const x76 = (cast(u64, x75) + x61); |
| 960 | addcarryxU64(&x74, &x75, x73, (@as(u64, x59) + (@as(u64, x53) + x39)), x60); |
| 961 | const x76 = (@as(u64, x75) + x61); |
| 963 | 962 | var x77: u64 = undefined; |
| 964 | 963 | var x78: u1 = undefined; |
| 965 | 964 | subborrowxU64(&x77, &x78, 0x0, x70, 0xffffffffffffffff); |
| ... | ... | @@ -968,13 +967,13 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo |
| 968 | 967 | subborrowxU64(&x79, &x80, x78, x72, 0xffffffff); |
| 969 | 968 | var x81: u64 = undefined; |
| 970 | 969 | var x82: u1 = undefined; |
| 971 | | subborrowxU64(&x81, &x82, x80, x74, cast(u64, 0x0)); |
| 970 | subborrowxU64(&x81, &x82, x80, x74, @as(u64, 0x0)); |
| 972 | 971 | var x83: u64 = undefined; |
| 973 | 972 | var x84: u1 = undefined; |
| 974 | 973 | subborrowxU64(&x83, &x84, x82, x76, 0xffffffff00000001); |
| 975 | 974 | var x85: u64 = undefined; |
| 976 | 975 | var x86: u1 = undefined; |
| 977 | | subborrowxU64(&x85, &x86, x84, cast(u64, 0x0), cast(u64, 0x0)); |
| 976 | subborrowxU64(&x85, &x86, x84, @as(u64, 0x0), @as(u64, 0x0)); |
| 978 | 977 | var x87: u64 = undefined; |
| 979 | 978 | cmovznzU64(&x87, x86, x77, x70); |
| 980 | 979 | var x88: u64 = undefined; |
| ... | ... | @@ -1045,13 +1044,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma |
| 1045 | 1044 | addcarryxU64(&x29, &x30, x28, x13, x25); |
| 1046 | 1045 | var x31: u64 = undefined; |
| 1047 | 1046 | var x32: u1 = undefined; |
| 1048 | | addcarryxU64(&x31, &x32, x30, x15, (cast(u64, x26) + x22)); |
| 1047 | addcarryxU64(&x31, &x32, x30, x15, (@as(u64, x26) + x22)); |
| 1049 | 1048 | var x33: u64 = undefined; |
| 1050 | 1049 | var x34: u1 = undefined; |
| 1051 | 1050 | addcarryxU64(&x33, &x34, x32, x17, x19); |
| 1052 | 1051 | var x35: u64 = undefined; |
| 1053 | 1052 | var x36: u1 = undefined; |
| 1054 | | addcarryxU64(&x35, &x36, x34, (cast(u64, x18) + x6), x20); |
| 1053 | addcarryxU64(&x35, &x36, x34, (@as(u64, x18) + x6), x20); |
| 1055 | 1054 | var x37: u64 = undefined; |
| 1056 | 1055 | var x38: u64 = undefined; |
| 1057 | 1056 | mulxU64(&x37, &x38, x1, 0x4fffffffd); |
| ... | ... | @@ -1105,13 +1104,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma |
| 1105 | 1104 | addcarryxU64(&x69, &x70, x68, x53, x65); |
| 1106 | 1105 | var x71: u64 = undefined; |
| 1107 | 1106 | var x72: u1 = undefined; |
| 1108 | | addcarryxU64(&x71, &x72, x70, x55, (cast(u64, x66) + x62)); |
| 1107 | addcarryxU64(&x71, &x72, x70, x55, (@as(u64, x66) + x62)); |
| 1109 | 1108 | var x73: u64 = undefined; |
| 1110 | 1109 | var x74: u1 = undefined; |
| 1111 | 1110 | addcarryxU64(&x73, &x74, x72, x57, x59); |
| 1112 | 1111 | var x75: u64 = undefined; |
| 1113 | 1112 | var x76: u1 = undefined; |
| 1114 | | addcarryxU64(&x75, &x76, x74, ((cast(u64, x58) + cast(u64, x36)) + (cast(u64, x50) + x38)), x60); |
| 1113 | addcarryxU64(&x75, &x76, x74, ((@as(u64, x58) + @as(u64, x36)) + (@as(u64, x50) + x38)), x60); |
| 1115 | 1114 | var x77: u64 = undefined; |
| 1116 | 1115 | var x78: u64 = undefined; |
| 1117 | 1116 | mulxU64(&x77, &x78, x2, 0x4fffffffd); |
| ... | ... | @@ -1165,13 +1164,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma |
| 1165 | 1164 | addcarryxU64(&x109, &x110, x108, x93, x105); |
| 1166 | 1165 | var x111: u64 = undefined; |
| 1167 | 1166 | var x112: u1 = undefined; |
| 1168 | | addcarryxU64(&x111, &x112, x110, x95, (cast(u64, x106) + x102)); |
| 1167 | addcarryxU64(&x111, &x112, x110, x95, (@as(u64, x106) + x102)); |
| 1169 | 1168 | var x113: u64 = undefined; |
| 1170 | 1169 | var x114: u1 = undefined; |
| 1171 | 1170 | addcarryxU64(&x113, &x114, x112, x97, x99); |
| 1172 | 1171 | var x115: u64 = undefined; |
| 1173 | 1172 | var x116: u1 = undefined; |
| 1174 | | addcarryxU64(&x115, &x116, x114, ((cast(u64, x98) + cast(u64, x76)) + (cast(u64, x90) + x78)), x100); |
| 1173 | addcarryxU64(&x115, &x116, x114, ((@as(u64, x98) + @as(u64, x76)) + (@as(u64, x90) + x78)), x100); |
| 1175 | 1174 | var x117: u64 = undefined; |
| 1176 | 1175 | var x118: u64 = undefined; |
| 1177 | 1176 | mulxU64(&x117, &x118, x3, 0x4fffffffd); |
| ... | ... | @@ -1225,13 +1224,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma |
| 1225 | 1224 | addcarryxU64(&x149, &x150, x148, x133, x145); |
| 1226 | 1225 | var x151: u64 = undefined; |
| 1227 | 1226 | var x152: u1 = undefined; |
| 1228 | | addcarryxU64(&x151, &x152, x150, x135, (cast(u64, x146) + x142)); |
| 1227 | addcarryxU64(&x151, &x152, x150, x135, (@as(u64, x146) + x142)); |
| 1229 | 1228 | var x153: u64 = undefined; |
| 1230 | 1229 | var x154: u1 = undefined; |
| 1231 | 1230 | addcarryxU64(&x153, &x154, x152, x137, x139); |
| 1232 | 1231 | var x155: u64 = undefined; |
| 1233 | 1232 | var x156: u1 = undefined; |
| 1234 | | addcarryxU64(&x155, &x156, x154, ((cast(u64, x138) + cast(u64, x116)) + (cast(u64, x130) + x118)), x140); |
| 1233 | addcarryxU64(&x155, &x156, x154, ((@as(u64, x138) + @as(u64, x116)) + (@as(u64, x130) + x118)), x140); |
| 1235 | 1234 | var x157: u64 = undefined; |
| 1236 | 1235 | var x158: u1 = undefined; |
| 1237 | 1236 | subborrowxU64(&x157, &x158, 0x0, x149, 0xffffffffffffffff); |
| ... | ... | @@ -1240,13 +1239,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma |
| 1240 | 1239 | subborrowxU64(&x159, &x160, x158, x151, 0xffffffff); |
| 1241 | 1240 | var x161: u64 = undefined; |
| 1242 | 1241 | var x162: u1 = undefined; |
| 1243 | | subborrowxU64(&x161, &x162, x160, x153, cast(u64, 0x0)); |
| 1242 | subborrowxU64(&x161, &x162, x160, x153, @as(u64, 0x0)); |
| 1244 | 1243 | var x163: u64 = undefined; |
| 1245 | 1244 | var x164: u1 = undefined; |
| 1246 | 1245 | subborrowxU64(&x163, &x164, x162, x155, 0xffffffff00000001); |
| 1247 | 1246 | var x165: u64 = undefined; |
| 1248 | 1247 | var x166: u1 = undefined; |
| 1249 | | subborrowxU64(&x165, &x166, x164, cast(u64, x156), cast(u64, 0x0)); |
| 1248 | subborrowxU64(&x165, &x166, x164, @as(u64, x156), @as(u64, 0x0)); |
| 1250 | 1249 | var x167: u64 = undefined; |
| 1251 | 1250 | cmovznzU64(&x167, x166, x157, x149); |
| 1252 | 1251 | var x168: u64 = undefined; |
| ... | ... | @@ -1325,62 +1324,62 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void { |
| 1325 | 1324 | const x2 = (arg1[2]); |
| 1326 | 1325 | const x3 = (arg1[1]); |
| 1327 | 1326 | const x4 = (arg1[0]); |
| 1328 | | const x5 = cast(u8, (x4 & cast(u64, 0xff))); |
| 1327 | const x5 = @truncate(u8, (x4 & @as(u64, 0xff))); |
| 1329 | 1328 | const x6 = (x4 >> 8); |
| 1330 | | const x7 = cast(u8, (x6 & cast(u64, 0xff))); |
| 1329 | const x7 = @truncate(u8, (x6 & @as(u64, 0xff))); |
| 1331 | 1330 | const x8 = (x6 >> 8); |
| 1332 | | const x9 = cast(u8, (x8 & cast(u64, 0xff))); |
| 1331 | const x9 = @truncate(u8, (x8 & @as(u64, 0xff))); |
| 1333 | 1332 | const x10 = (x8 >> 8); |
| 1334 | | const x11 = cast(u8, (x10 & cast(u64, 0xff))); |
| 1333 | const x11 = @truncate(u8, (x10 & @as(u64, 0xff))); |
| 1335 | 1334 | const x12 = (x10 >> 8); |
| 1336 | | const x13 = cast(u8, (x12 & cast(u64, 0xff))); |
| 1335 | const x13 = @truncate(u8, (x12 & @as(u64, 0xff))); |
| 1337 | 1336 | const x14 = (x12 >> 8); |
| 1338 | | const x15 = cast(u8, (x14 & cast(u64, 0xff))); |
| 1337 | const x15 = @truncate(u8, (x14 & @as(u64, 0xff))); |
| 1339 | 1338 | const x16 = (x14 >> 8); |
| 1340 | | const x17 = cast(u8, (x16 & cast(u64, 0xff))); |
| 1341 | | const x18 = cast(u8, (x16 >> 8)); |
| 1342 | | const x19 = cast(u8, (x3 & cast(u64, 0xff))); |
| 1339 | const x17 = @truncate(u8, (x16 & @as(u64, 0xff))); |
| 1340 | const x18 = @truncate(u8, (x16 >> 8)); |
| 1341 | const x19 = @truncate(u8, (x3 & @as(u64, 0xff))); |
| 1343 | 1342 | const x20 = (x3 >> 8); |
| 1344 | | const x21 = cast(u8, (x20 & cast(u64, 0xff))); |
| 1343 | const x21 = @truncate(u8, (x20 & @as(u64, 0xff))); |
| 1345 | 1344 | const x22 = (x20 >> 8); |
| 1346 | | const x23 = cast(u8, (x22 & cast(u64, 0xff))); |
| 1345 | const x23 = @truncate(u8, (x22 & @as(u64, 0xff))); |
| 1347 | 1346 | const x24 = (x22 >> 8); |
| 1348 | | const x25 = cast(u8, (x24 & cast(u64, 0xff))); |
| 1347 | const x25 = @truncate(u8, (x24 & @as(u64, 0xff))); |
| 1349 | 1348 | const x26 = (x24 >> 8); |
| 1350 | | const x27 = cast(u8, (x26 & cast(u64, 0xff))); |
| 1349 | const x27 = @truncate(u8, (x26 & @as(u64, 0xff))); |
| 1351 | 1350 | const x28 = (x26 >> 8); |
| 1352 | | const x29 = cast(u8, (x28 & cast(u64, 0xff))); |
| 1351 | const x29 = @truncate(u8, (x28 & @as(u64, 0xff))); |
| 1353 | 1352 | const x30 = (x28 >> 8); |
| 1354 | | const x31 = cast(u8, (x30 & cast(u64, 0xff))); |
| 1355 | | const x32 = cast(u8, (x30 >> 8)); |
| 1356 | | const x33 = cast(u8, (x2 & cast(u64, 0xff))); |
| 1353 | const x31 = @truncate(u8, (x30 & @as(u64, 0xff))); |
| 1354 | const x32 = @truncate(u8, (x30 >> 8)); |
| 1355 | const x33 = @truncate(u8, (x2 & @as(u64, 0xff))); |
| 1357 | 1356 | const x34 = (x2 >> 8); |
| 1358 | | const x35 = cast(u8, (x34 & cast(u64, 0xff))); |
| 1357 | const x35 = @truncate(u8, (x34 & @as(u64, 0xff))); |
| 1359 | 1358 | const x36 = (x34 >> 8); |
| 1360 | | const x37 = cast(u8, (x36 & cast(u64, 0xff))); |
| 1359 | const x37 = @truncate(u8, (x36 & @as(u64, 0xff))); |
| 1361 | 1360 | const x38 = (x36 >> 8); |
| 1362 | | const x39 = cast(u8, (x38 & cast(u64, 0xff))); |
| 1361 | const x39 = @truncate(u8, (x38 & @as(u64, 0xff))); |
| 1363 | 1362 | const x40 = (x38 >> 8); |
| 1364 | | const x41 = cast(u8, (x40 & cast(u64, 0xff))); |
| 1363 | const x41 = @truncate(u8, (x40 & @as(u64, 0xff))); |
| 1365 | 1364 | const x42 = (x40 >> 8); |
| 1366 | | const x43 = cast(u8, (x42 & cast(u64, 0xff))); |
| 1365 | const x43 = @truncate(u8, (x42 & @as(u64, 0xff))); |
| 1367 | 1366 | const x44 = (x42 >> 8); |
| 1368 | | const x45 = cast(u8, (x44 & cast(u64, 0xff))); |
| 1369 | | const x46 = cast(u8, (x44 >> 8)); |
| 1370 | | const x47 = cast(u8, (x1 & cast(u64, 0xff))); |
| 1367 | const x45 = @truncate(u8, (x44 & @as(u64, 0xff))); |
| 1368 | const x46 = @truncate(u8, (x44 >> 8)); |
| 1369 | const x47 = @truncate(u8, (x1 & @as(u64, 0xff))); |
| 1371 | 1370 | const x48 = (x1 >> 8); |
| 1372 | | const x49 = cast(u8, (x48 & cast(u64, 0xff))); |
| 1371 | const x49 = @truncate(u8, (x48 & @as(u64, 0xff))); |
| 1373 | 1372 | const x50 = (x48 >> 8); |
| 1374 | | const x51 = cast(u8, (x50 & cast(u64, 0xff))); |
| 1373 | const x51 = @truncate(u8, (x50 & @as(u64, 0xff))); |
| 1375 | 1374 | const x52 = (x50 >> 8); |
| 1376 | | const x53 = cast(u8, (x52 & cast(u64, 0xff))); |
| 1375 | const x53 = @truncate(u8, (x52 & @as(u64, 0xff))); |
| 1377 | 1376 | const x54 = (x52 >> 8); |
| 1378 | | const x55 = cast(u8, (x54 & cast(u64, 0xff))); |
| 1377 | const x55 = @truncate(u8, (x54 & @as(u64, 0xff))); |
| 1379 | 1378 | const x56 = (x54 >> 8); |
| 1380 | | const x57 = cast(u8, (x56 & cast(u64, 0xff))); |
| 1379 | const x57 = @truncate(u8, (x56 & @as(u64, 0xff))); |
| 1381 | 1380 | const x58 = (x56 >> 8); |
| 1382 | | const x59 = cast(u8, (x58 & cast(u64, 0xff))); |
| 1383 | | const x60 = cast(u8, (x58 >> 8)); |
| 1381 | const x59 = @truncate(u8, (x58 & @as(u64, 0xff))); |
| 1382 | const x60 = @truncate(u8, (x58 >> 8)); |
| 1384 | 1383 | out1[0] = x5; |
| 1385 | 1384 | out1[1] = x7; |
| 1386 | 1385 | out1[2] = x9; |
| ... | ... | @@ -1430,60 +1429,60 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void { |
| 1430 | 1429 | pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void { |
| 1431 | 1430 | @setRuntimeSafety(mode == .Debug); |
| 1432 | 1431 | |
| 1433 | | const x1 = (cast(u64, (arg1[31])) << 56); |
| 1434 | | const x2 = (cast(u64, (arg1[30])) << 48); |
| 1435 | | const x3 = (cast(u64, (arg1[29])) << 40); |
| 1436 | | const x4 = (cast(u64, (arg1[28])) << 32); |
| 1437 | | const x5 = (cast(u64, (arg1[27])) << 24); |
| 1438 | | const x6 = (cast(u64, (arg1[26])) << 16); |
| 1439 | | const x7 = (cast(u64, (arg1[25])) << 8); |
| 1432 | const x1 = (@as(u64, (arg1[31])) << 56); |
| 1433 | const x2 = (@as(u64, (arg1[30])) << 48); |
| 1434 | const x3 = (@as(u64, (arg1[29])) << 40); |
| 1435 | const x4 = (@as(u64, (arg1[28])) << 32); |
| 1436 | const x5 = (@as(u64, (arg1[27])) << 24); |
| 1437 | const x6 = (@as(u64, (arg1[26])) << 16); |
| 1438 | const x7 = (@as(u64, (arg1[25])) << 8); |
| 1440 | 1439 | const x8 = (arg1[24]); |
| 1441 | | const x9 = (cast(u64, (arg1[23])) << 56); |
| 1442 | | const x10 = (cast(u64, (arg1[22])) << 48); |
| 1443 | | const x11 = (cast(u64, (arg1[21])) << 40); |
| 1444 | | const x12 = (cast(u64, (arg1[20])) << 32); |
| 1445 | | const x13 = (cast(u64, (arg1[19])) << 24); |
| 1446 | | const x14 = (cast(u64, (arg1[18])) << 16); |
| 1447 | | const x15 = (cast(u64, (arg1[17])) << 8); |
| 1440 | const x9 = (@as(u64, (arg1[23])) << 56); |
| 1441 | const x10 = (@as(u64, (arg1[22])) << 48); |
| 1442 | const x11 = (@as(u64, (arg1[21])) << 40); |
| 1443 | const x12 = (@as(u64, (arg1[20])) << 32); |
| 1444 | const x13 = (@as(u64, (arg1[19])) << 24); |
| 1445 | const x14 = (@as(u64, (arg1[18])) << 16); |
| 1446 | const x15 = (@as(u64, (arg1[17])) << 8); |
| 1448 | 1447 | const x16 = (arg1[16]); |
| 1449 | | const x17 = (cast(u64, (arg1[15])) << 56); |
| 1450 | | const x18 = (cast(u64, (arg1[14])) << 48); |
| 1451 | | const x19 = (cast(u64, (arg1[13])) << 40); |
| 1452 | | const x20 = (cast(u64, (arg1[12])) << 32); |
| 1453 | | const x21 = (cast(u64, (arg1[11])) << 24); |
| 1454 | | const x22 = (cast(u64, (arg1[10])) << 16); |
| 1455 | | const x23 = (cast(u64, (arg1[9])) << 8); |
| 1448 | const x17 = (@as(u64, (arg1[15])) << 56); |
| 1449 | const x18 = (@as(u64, (arg1[14])) << 48); |
| 1450 | const x19 = (@as(u64, (arg1[13])) << 40); |
| 1451 | const x20 = (@as(u64, (arg1[12])) << 32); |
| 1452 | const x21 = (@as(u64, (arg1[11])) << 24); |
| 1453 | const x22 = (@as(u64, (arg1[10])) << 16); |
| 1454 | const x23 = (@as(u64, (arg1[9])) << 8); |
| 1456 | 1455 | const x24 = (arg1[8]); |
| 1457 | | const x25 = (cast(u64, (arg1[7])) << 56); |
| 1458 | | const x26 = (cast(u64, (arg1[6])) << 48); |
| 1459 | | const x27 = (cast(u64, (arg1[5])) << 40); |
| 1460 | | const x28 = (cast(u64, (arg1[4])) << 32); |
| 1461 | | const x29 = (cast(u64, (arg1[3])) << 24); |
| 1462 | | const x30 = (cast(u64, (arg1[2])) << 16); |
| 1463 | | const x31 = (cast(u64, (arg1[1])) << 8); |
| 1456 | const x25 = (@as(u64, (arg1[7])) << 56); |
| 1457 | const x26 = (@as(u64, (arg1[6])) << 48); |
| 1458 | const x27 = (@as(u64, (arg1[5])) << 40); |
| 1459 | const x28 = (@as(u64, (arg1[4])) << 32); |
| 1460 | const x29 = (@as(u64, (arg1[3])) << 24); |
| 1461 | const x30 = (@as(u64, (arg1[2])) << 16); |
| 1462 | const x31 = (@as(u64, (arg1[1])) << 8); |
| 1464 | 1463 | const x32 = (arg1[0]); |
| 1465 | | const x33 = (x31 + cast(u64, x32)); |
| 1464 | const x33 = (x31 + @as(u64, x32)); |
| 1466 | 1465 | const x34 = (x30 + x33); |
| 1467 | 1466 | const x35 = (x29 + x34); |
| 1468 | 1467 | const x36 = (x28 + x35); |
| 1469 | 1468 | const x37 = (x27 + x36); |
| 1470 | 1469 | const x38 = (x26 + x37); |
| 1471 | 1470 | const x39 = (x25 + x38); |
| 1472 | | const x40 = (x23 + cast(u64, x24)); |
| 1471 | const x40 = (x23 + @as(u64, x24)); |
| 1473 | 1472 | const x41 = (x22 + x40); |
| 1474 | 1473 | const x42 = (x21 + x41); |
| 1475 | 1474 | const x43 = (x20 + x42); |
| 1476 | 1475 | const x44 = (x19 + x43); |
| 1477 | 1476 | const x45 = (x18 + x44); |
| 1478 | 1477 | const x46 = (x17 + x45); |
| 1479 | | const x47 = (x15 + cast(u64, x16)); |
| 1478 | const x47 = (x15 + @as(u64, x16)); |
| 1480 | 1479 | const x48 = (x14 + x47); |
| 1481 | 1480 | const x49 = (x13 + x48); |
| 1482 | 1481 | const x50 = (x12 + x49); |
| 1483 | 1482 | const x51 = (x11 + x50); |
| 1484 | 1483 | const x52 = (x10 + x51); |
| 1485 | 1484 | const x53 = (x9 + x52); |
| 1486 | | const x54 = (x7 + cast(u64, x8)); |
| 1485 | const x54 = (x7 + @as(u64, x8)); |
| 1487 | 1486 | const x55 = (x6 + x54); |
| 1488 | 1487 | const x56 = (x5 + x55); |
| 1489 | 1488 | const x57 = (x4 + x56); |
| ... | ... | @@ -1505,7 +1504,7 @@ pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void { |
| 1505 | 1504 | pub fn setOne(out1: *MontgomeryDomainFieldElement) void { |
| 1506 | 1505 | @setRuntimeSafety(mode == .Debug); |
| 1507 | 1506 | |
| 1508 | | out1[0] = cast(u64, 0x1); |
| 1507 | out1[0] = @as(u64, 0x1); |
| 1509 | 1508 | out1[1] = 0xffffffff00000000; |
| 1510 | 1509 | out1[2] = 0xffffffffffffffff; |
| 1511 | 1510 | out1[3] = 0xfffffffe; |
| ... | ... | @@ -1524,9 +1523,9 @@ pub fn msat(out1: *[5]u64) void { |
| 1524 | 1523 | |
| 1525 | 1524 | out1[0] = 0xffffffffffffffff; |
| 1526 | 1525 | out1[1] = 0xffffffff; |
| 1527 | | out1[2] = cast(u64, 0x0); |
| 1526 | out1[2] = @as(u64, 0x0); |
| 1528 | 1527 | out1[3] = 0xffffffff00000001; |
| 1529 | | out1[4] = cast(u64, 0x0); |
| 1528 | out1[4] = @as(u64, 0x0); |
| 1530 | 1529 | } |
| 1531 | 1530 | |
| 1532 | 1531 | /// The function divstep computes a divstep. |
| ... | ... | @@ -1562,11 +1561,11 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1562 | 1561 | |
| 1563 | 1562 | var x1: u64 = undefined; |
| 1564 | 1563 | var x2: u1 = undefined; |
| 1565 | | addcarryxU64(&x1, &x2, 0x0, (~arg1), cast(u64, 0x1)); |
| 1566 | | const x3 = (cast(u1, (x1 >> 63)) & cast(u1, ((arg3[0]) & cast(u64, 0x1)))); |
| 1564 | addcarryxU64(&x1, &x2, 0x0, (~arg1), @as(u64, 0x1)); |
| 1565 | const x3 = (@truncate(u1, (x1 >> 63)) & @truncate(u1, ((arg3[0]) & @as(u64, 0x1)))); |
| 1567 | 1566 | var x4: u64 = undefined; |
| 1568 | 1567 | var x5: u1 = undefined; |
| 1569 | | addcarryxU64(&x4, &x5, 0x0, (~arg1), cast(u64, 0x1)); |
| 1568 | addcarryxU64(&x4, &x5, 0x0, (~arg1), @as(u64, 0x1)); |
| 1570 | 1569 | var x6: u64 = undefined; |
| 1571 | 1570 | cmovznzU64(&x6, x3, arg1, x4); |
| 1572 | 1571 | var x7: u64 = undefined; |
| ... | ... | @@ -1581,19 +1580,19 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1581 | 1580 | cmovznzU64(&x11, x3, (arg2[4]), (arg3[4])); |
| 1582 | 1581 | var x12: u64 = undefined; |
| 1583 | 1582 | var x13: u1 = undefined; |
| 1584 | | addcarryxU64(&x12, &x13, 0x0, cast(u64, 0x1), (~(arg2[0]))); |
| 1583 | addcarryxU64(&x12, &x13, 0x0, @as(u64, 0x1), (~(arg2[0]))); |
| 1585 | 1584 | var x14: u64 = undefined; |
| 1586 | 1585 | var x15: u1 = undefined; |
| 1587 | | addcarryxU64(&x14, &x15, x13, cast(u64, 0x0), (~(arg2[1]))); |
| 1586 | addcarryxU64(&x14, &x15, x13, @as(u64, 0x0), (~(arg2[1]))); |
| 1588 | 1587 | var x16: u64 = undefined; |
| 1589 | 1588 | var x17: u1 = undefined; |
| 1590 | | addcarryxU64(&x16, &x17, x15, cast(u64, 0x0), (~(arg2[2]))); |
| 1589 | addcarryxU64(&x16, &x17, x15, @as(u64, 0x0), (~(arg2[2]))); |
| 1591 | 1590 | var x18: u64 = undefined; |
| 1592 | 1591 | var x19: u1 = undefined; |
| 1593 | | addcarryxU64(&x18, &x19, x17, cast(u64, 0x0), (~(arg2[3]))); |
| 1592 | addcarryxU64(&x18, &x19, x17, @as(u64, 0x0), (~(arg2[3]))); |
| 1594 | 1593 | var x20: u64 = undefined; |
| 1595 | 1594 | var x21: u1 = undefined; |
| 1596 | | addcarryxU64(&x20, &x21, x19, cast(u64, 0x0), (~(arg2[4]))); |
| 1595 | addcarryxU64(&x20, &x21, x19, @as(u64, 0x0), (~(arg2[4]))); |
| 1597 | 1596 | var x22: u64 = undefined; |
| 1598 | 1597 | cmovznzU64(&x22, x3, (arg3[0]), x12); |
| 1599 | 1598 | var x23: u64 = undefined; |
| ... | ... | @@ -1632,31 +1631,31 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1632 | 1631 | subborrowxU64(&x41, &x42, x40, x33, 0xffffffff); |
| 1633 | 1632 | var x43: u64 = undefined; |
| 1634 | 1633 | var x44: u1 = undefined; |
| 1635 | | subborrowxU64(&x43, &x44, x42, x35, cast(u64, 0x0)); |
| 1634 | subborrowxU64(&x43, &x44, x42, x35, @as(u64, 0x0)); |
| 1636 | 1635 | var x45: u64 = undefined; |
| 1637 | 1636 | var x46: u1 = undefined; |
| 1638 | 1637 | subborrowxU64(&x45, &x46, x44, x37, 0xffffffff00000001); |
| 1639 | 1638 | var x47: u64 = undefined; |
| 1640 | 1639 | var x48: u1 = undefined; |
| 1641 | | subborrowxU64(&x47, &x48, x46, cast(u64, x38), cast(u64, 0x0)); |
| 1640 | subborrowxU64(&x47, &x48, x46, @as(u64, x38), @as(u64, 0x0)); |
| 1642 | 1641 | const x49 = (arg4[3]); |
| 1643 | 1642 | const x50 = (arg4[2]); |
| 1644 | 1643 | const x51 = (arg4[1]); |
| 1645 | 1644 | const x52 = (arg4[0]); |
| 1646 | 1645 | var x53: u64 = undefined; |
| 1647 | 1646 | var x54: u1 = undefined; |
| 1648 | | subborrowxU64(&x53, &x54, 0x0, cast(u64, 0x0), x52); |
| 1647 | subborrowxU64(&x53, &x54, 0x0, @as(u64, 0x0), x52); |
| 1649 | 1648 | var x55: u64 = undefined; |
| 1650 | 1649 | var x56: u1 = undefined; |
| 1651 | | subborrowxU64(&x55, &x56, x54, cast(u64, 0x0), x51); |
| 1650 | subborrowxU64(&x55, &x56, x54, @as(u64, 0x0), x51); |
| 1652 | 1651 | var x57: u64 = undefined; |
| 1653 | 1652 | var x58: u1 = undefined; |
| 1654 | | subborrowxU64(&x57, &x58, x56, cast(u64, 0x0), x50); |
| 1653 | subborrowxU64(&x57, &x58, x56, @as(u64, 0x0), x50); |
| 1655 | 1654 | var x59: u64 = undefined; |
| 1656 | 1655 | var x60: u1 = undefined; |
| 1657 | | subborrowxU64(&x59, &x60, x58, cast(u64, 0x0), x49); |
| 1656 | subborrowxU64(&x59, &x60, x58, @as(u64, 0x0), x49); |
| 1658 | 1657 | var x61: u64 = undefined; |
| 1659 | | cmovznzU64(&x61, x60, cast(u64, 0x0), 0xffffffffffffffff); |
| 1658 | cmovznzU64(&x61, x60, @as(u64, 0x0), 0xffffffffffffffff); |
| 1660 | 1659 | var x62: u64 = undefined; |
| 1661 | 1660 | var x63: u1 = undefined; |
| 1662 | 1661 | addcarryxU64(&x62, &x63, 0x0, x53, x61); |
| ... | ... | @@ -1665,7 +1664,7 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1665 | 1664 | addcarryxU64(&x64, &x65, x63, x55, (x61 & 0xffffffff)); |
| 1666 | 1665 | var x66: u64 = undefined; |
| 1667 | 1666 | var x67: u1 = undefined; |
| 1668 | | addcarryxU64(&x66, &x67, x65, x57, cast(u64, 0x0)); |
| 1667 | addcarryxU64(&x66, &x67, x65, x57, @as(u64, 0x0)); |
| 1669 | 1668 | var x68: u64 = undefined; |
| 1670 | 1669 | var x69: u1 = undefined; |
| 1671 | 1670 | addcarryxU64(&x68, &x69, x67, x59, (x61 & 0xffffffff00000001)); |
| ... | ... | @@ -1677,17 +1676,17 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1677 | 1676 | cmovznzU64(&x72, x3, (arg5[2]), x66); |
| 1678 | 1677 | var x73: u64 = undefined; |
| 1679 | 1678 | cmovznzU64(&x73, x3, (arg5[3]), x68); |
| 1680 | | const x74 = cast(u1, (x22 & cast(u64, 0x1))); |
| 1679 | const x74 = @truncate(u1, (x22 & @as(u64, 0x1))); |
| 1681 | 1680 | var x75: u64 = undefined; |
| 1682 | | cmovznzU64(&x75, x74, cast(u64, 0x0), x7); |
| 1681 | cmovznzU64(&x75, x74, @as(u64, 0x0), x7); |
| 1683 | 1682 | var x76: u64 = undefined; |
| 1684 | | cmovznzU64(&x76, x74, cast(u64, 0x0), x8); |
| 1683 | cmovznzU64(&x76, x74, @as(u64, 0x0), x8); |
| 1685 | 1684 | var x77: u64 = undefined; |
| 1686 | | cmovznzU64(&x77, x74, cast(u64, 0x0), x9); |
| 1685 | cmovznzU64(&x77, x74, @as(u64, 0x0), x9); |
| 1687 | 1686 | var x78: u64 = undefined; |
| 1688 | | cmovznzU64(&x78, x74, cast(u64, 0x0), x10); |
| 1687 | cmovznzU64(&x78, x74, @as(u64, 0x0), x10); |
| 1689 | 1688 | var x79: u64 = undefined; |
| 1690 | | cmovznzU64(&x79, x74, cast(u64, 0x0), x11); |
| 1689 | cmovznzU64(&x79, x74, @as(u64, 0x0), x11); |
| 1691 | 1690 | var x80: u64 = undefined; |
| 1692 | 1691 | var x81: u1 = undefined; |
| 1693 | 1692 | addcarryxU64(&x80, &x81, 0x0, x22, x75); |
| ... | ... | @@ -1704,13 +1703,13 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1704 | 1703 | var x89: u1 = undefined; |
| 1705 | 1704 | addcarryxU64(&x88, &x89, x87, x26, x79); |
| 1706 | 1705 | var x90: u64 = undefined; |
| 1707 | | cmovznzU64(&x90, x74, cast(u64, 0x0), x27); |
| 1706 | cmovznzU64(&x90, x74, @as(u64, 0x0), x27); |
| 1708 | 1707 | var x91: u64 = undefined; |
| 1709 | | cmovznzU64(&x91, x74, cast(u64, 0x0), x28); |
| 1708 | cmovznzU64(&x91, x74, @as(u64, 0x0), x28); |
| 1710 | 1709 | var x92: u64 = undefined; |
| 1711 | | cmovznzU64(&x92, x74, cast(u64, 0x0), x29); |
| 1710 | cmovznzU64(&x92, x74, @as(u64, 0x0), x29); |
| 1712 | 1711 | var x93: u64 = undefined; |
| 1713 | | cmovznzU64(&x93, x74, cast(u64, 0x0), x30); |
| 1712 | cmovznzU64(&x93, x74, @as(u64, 0x0), x30); |
| 1714 | 1713 | var x94: u64 = undefined; |
| 1715 | 1714 | var x95: u1 = undefined; |
| 1716 | 1715 | addcarryxU64(&x94, &x95, 0x0, x70, x90); |
| ... | ... | @@ -1731,16 +1730,16 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ |
| 1731 | 1730 | subborrowxU64(&x104, &x105, x103, x96, 0xffffffff); |
| 1732 | 1731 | var x106: u64 = undefined; |
| 1733 | 1732 | var x107: u1 = undefined; |
| 1734 | | subborrowxU64(&x106, &x107, x105, x98, cast(u64, 0x0)); |
| 1733 | subborrowxU64(&x106, &x107, x105, x98, @as(u64, 0x0)); |
| 1735 | 1734 | var x108: u64 = undefined; |
| 1736 | 1735 | var x109: u1 = undefined; |
| 1737 | 1736 | subborrowxU64(&x108, &x109, x107, x100, 0xffffffff00000001); |
| 1738 | 1737 | var x110: u64 = undefined; |
| 1739 | 1738 | var x111: u1 = undefined; |
| 1740 | | subborrowxU64(&x110, &x111, x109, cast(u64, x101), cast(u64, 0x0)); |
| 1739 | subborrowxU64(&x110, &x111, x109, @as(u64, x101), @as(u64, 0x0)); |
| 1741 | 1740 | var x112: u64 = undefined; |
| 1742 | 1741 | var x113: u1 = undefined; |
| 1743 | | addcarryxU64(&x112, &x113, 0x0, x6, cast(u64, 0x1)); |
| 1742 | addcarryxU64(&x112, &x113, 0x0, x6, @as(u64, 0x1)); |
| 1744 | 1743 | const x114 = ((x80 >> 1) | ((x82 << 63) & 0xffffffffffffffff)); |
| 1745 | 1744 | const x115 = ((x82 >> 1) | ((x84 << 63) & 0xffffffffffffffff)); |
| 1746 | 1745 | const x116 = ((x84 >> 1) | ((x86 << 63) & 0xffffffffffffffff)); |