Loading crypto/ec/asm/ecp_nistz256-x86_64.pl +133 −0 Original line number Original line Diff line number Diff line Loading @@ -131,8 +131,11 @@ $code.=<<___; .type ecp_nistz256_mul_by_2,\@function,2 .type ecp_nistz256_mul_by_2,\@function,2 .align 64 .align 64 ecp_nistz256_mul_by_2: ecp_nistz256_mul_by_2: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lmul_by_2_body: .Lmul_by_2_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -167,10 +170,14 @@ ecp_nistz256_mul_by_2: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lmul_by_2_epilogue: .Lmul_by_2_epilogue: ret ret .cfi_endproc .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 ################################################################################ ################################################################################ Loading @@ -179,8 +186,11 @@ ecp_nistz256_mul_by_2: .type ecp_nistz256_div_by_2,\@function,2 .type ecp_nistz256_div_by_2,\@function,2 .align 32 .align 32 ecp_nistz256_div_by_2: ecp_nistz256_div_by_2: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Ldiv_by_2_body: .Ldiv_by_2_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -230,10 +240,14 @@ ecp_nistz256_div_by_2: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Ldiv_by_2_epilogue: .Ldiv_by_2_epilogue: ret ret .cfi_endproc .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 ################################################################################ ################################################################################ Loading @@ -242,8 +256,11 @@ ecp_nistz256_div_by_2: .type ecp_nistz256_mul_by_3,\@function,2 .type ecp_nistz256_mul_by_3,\@function,2 .align 32 .align 32 ecp_nistz256_mul_by_3: ecp_nistz256_mul_by_3: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lmul_by_3_body: .Lmul_by_3_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -299,10 +316,14 @@ ecp_nistz256_mul_by_3: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lmul_by_3_epilogue: .Lmul_by_3_epilogue: ret ret .cfi_endproc .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 ################################################################################ ################################################################################ Loading @@ -311,8 +332,11 @@ ecp_nistz256_mul_by_3: .type ecp_nistz256_add,\@function,3 .type ecp_nistz256_add,\@function,3 .align 32 .align 32 ecp_nistz256_add: ecp_nistz256_add: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Ladd_body: .Ladd_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -348,10 +372,14 @@ ecp_nistz256_add: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Ladd_epilogue: .Ladd_epilogue: ret ret .cfi_endproc .size ecp_nistz256_add,.-ecp_nistz256_add .size ecp_nistz256_add,.-ecp_nistz256_add ################################################################################ ################################################################################ Loading @@ -360,8 +388,11 @@ ecp_nistz256_add: .type ecp_nistz256_sub,\@function,3 .type ecp_nistz256_sub,\@function,3 .align 32 .align 32 ecp_nistz256_sub: ecp_nistz256_sub: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lsub_body: .Lsub_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -397,10 +428,14 @@ ecp_nistz256_sub: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lsub_epilogue: .Lsub_epilogue: ret ret .cfi_endproc .size ecp_nistz256_sub,.-ecp_nistz256_sub .size ecp_nistz256_sub,.-ecp_nistz256_sub ################################################################################ ################################################################################ Loading @@ -409,8 +444,11 @@ ecp_nistz256_sub: .type ecp_nistz256_neg,\@function,2 .type ecp_nistz256_neg,\@function,2 .align 32 .align 32 ecp_nistz256_neg: ecp_nistz256_neg: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lneg_body: .Lneg_body: xor $a0, $a0 xor $a0, $a0 Loading Loading @@ -446,10 +484,14 @@ ecp_nistz256_neg: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lneg_epilogue: .Lneg_epilogue: ret ret .cfi_endproc .size ecp_nistz256_neg,.-ecp_nistz256_neg .size ecp_nistz256_neg,.-ecp_nistz256_neg ___ ___ } } Loading Loading @@ -488,6 +530,7 @@ $code.=<<___; .type ecp_nistz256_mul_mont,\@function,3 .type ecp_nistz256_mul_mont,\@function,3 .align 32 .align 32 ecp_nistz256_mul_mont: ecp_nistz256_mul_mont: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -496,11 +539,17 @@ ___ $code.=<<___; $code.=<<___; .Lmul_mont: .Lmul_mont: push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 .Lmul_body: .Lmul_body: ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); Loading Loading @@ -535,14 +584,22 @@ ___ $code.=<<___; $code.=<<___; .Lmul_mont_done: .Lmul_mont_done: mov 0(%rsp),%r15 mov 0(%rsp),%r15 .cfi_restore %r15 mov 8(%rsp),%r14 mov 8(%rsp),%r14 .cfi_restore %r14 mov 16(%rsp),%r13 mov 16(%rsp),%r13 .cfi_restore %r13 mov 24(%rsp),%r12 mov 24(%rsp),%r12 .cfi_restore %r12 mov 32(%rsp),%rbx mov 32(%rsp),%rbx .cfi_restore %rbx mov 40(%rsp),%rbp mov 40(%rsp),%rbp .cfi_restore %rbp lea 48(%rsp),%rsp lea 48(%rsp),%rsp .cfi_adjust_cfa_offset -48 .Lmul_epilogue: .Lmul_epilogue: ret ret .cfi_endproc .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont .type __ecp_nistz256_mul_montq,\@abi-omnipotent .type __ecp_nistz256_mul_montq,\@abi-omnipotent Loading Loading @@ -772,6 +829,7 @@ __ecp_nistz256_mul_montq: .type ecp_nistz256_sqr_mont,\@function,2 .type ecp_nistz256_sqr_mont,\@function,2 .align 32 .align 32 ecp_nistz256_sqr_mont: ecp_nistz256_sqr_mont: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -779,11 +837,17 @@ $code.=<<___ if ($addx); ___ ___ $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 .Lsqr_body: .Lsqr_body: ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); Loading Loading @@ -814,14 +878,22 @@ ___ $code.=<<___; $code.=<<___; .Lsqr_mont_done: .Lsqr_mont_done: mov 0(%rsp),%r15 mov 0(%rsp),%r15 .cfi_restore %r15 mov 8(%rsp),%r14 mov 8(%rsp),%r14 .cfi_restore %r14 mov 16(%rsp),%r13 mov 16(%rsp),%r13 .cfi_restore %r13 mov 24(%rsp),%r12 mov 24(%rsp),%r12 .cfi_restore %r12 mov 32(%rsp),%rbx mov 32(%rsp),%rbx .cfi_restore %rbx mov 40(%rsp),%rbp mov 40(%rsp),%rbp .cfi_restore %rbp lea 48(%rsp),%rsp lea 48(%rsp),%rsp .cfi_adjust_cfa_offset -48 .Lsqr_epilogue: .Lsqr_epilogue: ret ret .cfi_endproc .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont .type __ecp_nistz256_sqr_montq,\@abi-omnipotent .type __ecp_nistz256_sqr_montq,\@abi-omnipotent Loading Loading @@ -1306,8 +1378,11 @@ $code.=<<___; .type ecp_nistz256_from_mont,\@function,2 .type ecp_nistz256_from_mont,\@function,2 .align 32 .align 32 ecp_nistz256_from_mont: ecp_nistz256_from_mont: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lfrom_body: .Lfrom_body: mov 8*0($in_ptr), %rax mov 8*0($in_ptr), %rax Loading Loading @@ -1390,10 +1465,14 @@ ecp_nistz256_from_mont: mov $acc3, 8*3($r_ptr) mov $acc3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lfrom_epilogue: .Lfrom_epilogue: ret ret .cfi_endproc .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont ___ ___ } } Loading Loading @@ -2055,6 +2134,7 @@ $code.=<<___; .type ecp_nistz256_point_double,\@function,2 .type ecp_nistz256_point_double,\@function,2 .align 32 .align 32 ecp_nistz256_point_double: ecp_nistz256_point_double: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -2071,17 +2151,25 @@ $code.=<<___; .type ecp_nistz256_point_doublex,\@function,2 .type ecp_nistz256_point_doublex,\@function,2 .align 32 .align 32 ecp_nistz256_point_doublex: ecp_nistz256_point_doublex: .cfi_startproc .Lpoint_doublex: .Lpoint_doublex: ___ ___ } } $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 sub \$32*5+8, %rsp sub \$32*5+8, %rsp .cfi_adjust_cfa_offset 32*5+8 .Lpoint_double${x}_body: .Lpoint_double${x}_body: .Lpoint_double_shortcut$x: .Lpoint_double_shortcut$x: Loading Loading @@ -2254,15 +2342,24 @@ $code.=<<___; call __ecp_nistz256_sub_from$x # p256_sub(res_y, S, res_y); call __ecp_nistz256_sub_from$x # p256_sub(res_y, S, res_y); lea 32*5+56(%rsp), %rsi lea 32*5+56(%rsp), %rsi .cfi_def_cfa %rsi,8 mov -48(%rsi),%r15 mov -48(%rsi),%r15 .cfi_restore %r15 mov -40(%rsi),%r14 mov -40(%rsi),%r14 .cfi_restore %r14 mov -32(%rsi),%r13 mov -32(%rsi),%r13 .cfi_restore %r13 mov -24(%rsi),%r12 mov -24(%rsi),%r12 .cfi_restore %r12 mov -16(%rsi),%rbx mov -16(%rsi),%rbx .cfi_restore %rbx mov -8(%rsi),%rbp mov -8(%rsi),%rbp .cfi_restore %rbp lea (%rsi),%rsp lea (%rsi),%rsp .cfi_def_cfa_register %rsp .Lpoint_double${x}_epilogue: .Lpoint_double${x}_epilogue: ret ret .cfi_endproc .size ecp_nistz256_point_double$sfx,.-ecp_nistz256_point_double$sfx .size ecp_nistz256_point_double$sfx,.-ecp_nistz256_point_double$sfx ___ ___ } } Loading @@ -2288,6 +2385,7 @@ $code.=<<___; .type ecp_nistz256_point_add,\@function,3 .type ecp_nistz256_point_add,\@function,3 .align 32 .align 32 ecp_nistz256_point_add: ecp_nistz256_point_add: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -2304,17 +2402,25 @@ $code.=<<___; .type ecp_nistz256_point_addx,\@function,3 .type ecp_nistz256_point_addx,\@function,3 .align 32 .align 32 ecp_nistz256_point_addx: ecp_nistz256_point_addx: .cfi_startproc .Lpoint_addx: .Lpoint_addx: ___ ___ } } $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 sub \$32*18+8, %rsp sub \$32*18+8, %rsp .cfi_adjust_cfa_offset 32*18+8 .Lpoint_add${x}_body: .Lpoint_add${x}_body: movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr Loading Loading @@ -2625,15 +2731,24 @@ $code.=<<___; .Ladd_done$x: .Ladd_done$x: lea 32*18+56(%rsp), %rsi lea 32*18+56(%rsp), %rsi .cfi_def_cfa %rsi,8 mov -48(%rsi),%r15 mov -48(%rsi),%r15 .cfi_restore %r15 mov -40(%rsi),%r14 mov -40(%rsi),%r14 .cfi_restore %r14 mov -32(%rsi),%r13 mov -32(%rsi),%r13 .cfi_restore %r13 mov -24(%rsi),%r12 mov -24(%rsi),%r12 .cfi_restore %r12 mov -16(%rsi),%rbx mov -16(%rsi),%rbx .cfi_restore %rbx mov -8(%rsi),%rbp mov -8(%rsi),%rbp .cfi_restore %rbp lea (%rsi),%rsp lea (%rsi),%rsp .cfi_def_cfa_register %rsp .Lpoint_add${x}_epilogue: .Lpoint_add${x}_epilogue: ret ret .cfi_endproc .size ecp_nistz256_point_add$sfx,.-ecp_nistz256_point_add$sfx .size ecp_nistz256_point_add$sfx,.-ecp_nistz256_point_add$sfx ___ ___ } } Loading @@ -2658,6 +2773,7 @@ $code.=<<___; .type ecp_nistz256_point_add_affine,\@function,3 .type ecp_nistz256_point_add_affine,\@function,3 .align 32 .align 32 ecp_nistz256_point_add_affine: ecp_nistz256_point_add_affine: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -2674,17 +2790,25 @@ $code.=<<___; .type ecp_nistz256_point_add_affinex,\@function,3 .type ecp_nistz256_point_add_affinex,\@function,3 .align 32 .align 32 ecp_nistz256_point_add_affinex: ecp_nistz256_point_add_affinex: .cfi_startproc .Lpoint_add_affinex: .Lpoint_add_affinex: ___ ___ } } $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 sub \$32*15+8, %rsp sub \$32*15+8, %rsp .cfi_adjust_cfa_offset 32*15+8 .Ladd_affine${x}_body: .Ladd_affine${x}_body: movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr Loading Loading @@ -2931,15 +3055,24 @@ $code.=<<___; movdqu %xmm3, 0x30($r_ptr) movdqu %xmm3, 0x30($r_ptr) lea 32*15+56(%rsp), %rsi lea 32*15+56(%rsp), %rsi .cfi_def_cfa %rsi,8 mov -48(%rsi),%r15 mov -48(%rsi),%r15 .cfi_restore %r15 mov -40(%rsi),%r14 mov -40(%rsi),%r14 .cfi_restore %r14 mov -32(%rsi),%r13 mov -32(%rsi),%r13 .cfi_restore %r13 mov -24(%rsi),%r12 mov -24(%rsi),%r12 .cfi_restore %r12 mov -16(%rsi),%rbx mov -16(%rsi),%rbx .cfi_restore %rbx mov -8(%rsi),%rbp mov -8(%rsi),%rbp .cfi_restore %rbp lea (%rsi),%rsp lea (%rsi),%rsp .cfi_def_cfa_register %rsp .Ladd_affine${x}_epilogue: .Ladd_affine${x}_epilogue: ret ret .cfi_endproc .size ecp_nistz256_point_add_affine$sfx,.-ecp_nistz256_point_add_affine$sfx .size ecp_nistz256_point_add_affine$sfx,.-ecp_nistz256_point_add_affine$sfx ___ ___ } } Loading Loading
crypto/ec/asm/ecp_nistz256-x86_64.pl +133 −0 Original line number Original line Diff line number Diff line Loading @@ -131,8 +131,11 @@ $code.=<<___; .type ecp_nistz256_mul_by_2,\@function,2 .type ecp_nistz256_mul_by_2,\@function,2 .align 64 .align 64 ecp_nistz256_mul_by_2: ecp_nistz256_mul_by_2: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lmul_by_2_body: .Lmul_by_2_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -167,10 +170,14 @@ ecp_nistz256_mul_by_2: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lmul_by_2_epilogue: .Lmul_by_2_epilogue: ret ret .cfi_endproc .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 ################################################################################ ################################################################################ Loading @@ -179,8 +186,11 @@ ecp_nistz256_mul_by_2: .type ecp_nistz256_div_by_2,\@function,2 .type ecp_nistz256_div_by_2,\@function,2 .align 32 .align 32 ecp_nistz256_div_by_2: ecp_nistz256_div_by_2: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Ldiv_by_2_body: .Ldiv_by_2_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -230,10 +240,14 @@ ecp_nistz256_div_by_2: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Ldiv_by_2_epilogue: .Ldiv_by_2_epilogue: ret ret .cfi_endproc .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 ################################################################################ ################################################################################ Loading @@ -242,8 +256,11 @@ ecp_nistz256_div_by_2: .type ecp_nistz256_mul_by_3,\@function,2 .type ecp_nistz256_mul_by_3,\@function,2 .align 32 .align 32 ecp_nistz256_mul_by_3: ecp_nistz256_mul_by_3: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lmul_by_3_body: .Lmul_by_3_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -299,10 +316,14 @@ ecp_nistz256_mul_by_3: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lmul_by_3_epilogue: .Lmul_by_3_epilogue: ret ret .cfi_endproc .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 ################################################################################ ################################################################################ Loading @@ -311,8 +332,11 @@ ecp_nistz256_mul_by_3: .type ecp_nistz256_add,\@function,3 .type ecp_nistz256_add,\@function,3 .align 32 .align 32 ecp_nistz256_add: ecp_nistz256_add: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Ladd_body: .Ladd_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -348,10 +372,14 @@ ecp_nistz256_add: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Ladd_epilogue: .Ladd_epilogue: ret ret .cfi_endproc .size ecp_nistz256_add,.-ecp_nistz256_add .size ecp_nistz256_add,.-ecp_nistz256_add ################################################################################ ################################################################################ Loading @@ -360,8 +388,11 @@ ecp_nistz256_add: .type ecp_nistz256_sub,\@function,3 .type ecp_nistz256_sub,\@function,3 .align 32 .align 32 ecp_nistz256_sub: ecp_nistz256_sub: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lsub_body: .Lsub_body: mov 8*0($a_ptr), $a0 mov 8*0($a_ptr), $a0 Loading Loading @@ -397,10 +428,14 @@ ecp_nistz256_sub: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lsub_epilogue: .Lsub_epilogue: ret ret .cfi_endproc .size ecp_nistz256_sub,.-ecp_nistz256_sub .size ecp_nistz256_sub,.-ecp_nistz256_sub ################################################################################ ################################################################################ Loading @@ -409,8 +444,11 @@ ecp_nistz256_sub: .type ecp_nistz256_neg,\@function,2 .type ecp_nistz256_neg,\@function,2 .align 32 .align 32 ecp_nistz256_neg: ecp_nistz256_neg: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lneg_body: .Lneg_body: xor $a0, $a0 xor $a0, $a0 Loading Loading @@ -446,10 +484,14 @@ ecp_nistz256_neg: mov $a3, 8*3($r_ptr) mov $a3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lneg_epilogue: .Lneg_epilogue: ret ret .cfi_endproc .size ecp_nistz256_neg,.-ecp_nistz256_neg .size ecp_nistz256_neg,.-ecp_nistz256_neg ___ ___ } } Loading Loading @@ -488,6 +530,7 @@ $code.=<<___; .type ecp_nistz256_mul_mont,\@function,3 .type ecp_nistz256_mul_mont,\@function,3 .align 32 .align 32 ecp_nistz256_mul_mont: ecp_nistz256_mul_mont: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -496,11 +539,17 @@ ___ $code.=<<___; $code.=<<___; .Lmul_mont: .Lmul_mont: push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 .Lmul_body: .Lmul_body: ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); Loading Loading @@ -535,14 +584,22 @@ ___ $code.=<<___; $code.=<<___; .Lmul_mont_done: .Lmul_mont_done: mov 0(%rsp),%r15 mov 0(%rsp),%r15 .cfi_restore %r15 mov 8(%rsp),%r14 mov 8(%rsp),%r14 .cfi_restore %r14 mov 16(%rsp),%r13 mov 16(%rsp),%r13 .cfi_restore %r13 mov 24(%rsp),%r12 mov 24(%rsp),%r12 .cfi_restore %r12 mov 32(%rsp),%rbx mov 32(%rsp),%rbx .cfi_restore %rbx mov 40(%rsp),%rbp mov 40(%rsp),%rbp .cfi_restore %rbp lea 48(%rsp),%rsp lea 48(%rsp),%rsp .cfi_adjust_cfa_offset -48 .Lmul_epilogue: .Lmul_epilogue: ret ret .cfi_endproc .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont .type __ecp_nistz256_mul_montq,\@abi-omnipotent .type __ecp_nistz256_mul_montq,\@abi-omnipotent Loading Loading @@ -772,6 +829,7 @@ __ecp_nistz256_mul_montq: .type ecp_nistz256_sqr_mont,\@function,2 .type ecp_nistz256_sqr_mont,\@function,2 .align 32 .align 32 ecp_nistz256_sqr_mont: ecp_nistz256_sqr_mont: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -779,11 +837,17 @@ $code.=<<___ if ($addx); ___ ___ $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 .Lsqr_body: .Lsqr_body: ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); Loading Loading @@ -814,14 +878,22 @@ ___ $code.=<<___; $code.=<<___; .Lsqr_mont_done: .Lsqr_mont_done: mov 0(%rsp),%r15 mov 0(%rsp),%r15 .cfi_restore %r15 mov 8(%rsp),%r14 mov 8(%rsp),%r14 .cfi_restore %r14 mov 16(%rsp),%r13 mov 16(%rsp),%r13 .cfi_restore %r13 mov 24(%rsp),%r12 mov 24(%rsp),%r12 .cfi_restore %r12 mov 32(%rsp),%rbx mov 32(%rsp),%rbx .cfi_restore %rbx mov 40(%rsp),%rbp mov 40(%rsp),%rbp .cfi_restore %rbp lea 48(%rsp),%rsp lea 48(%rsp),%rsp .cfi_adjust_cfa_offset -48 .Lsqr_epilogue: .Lsqr_epilogue: ret ret .cfi_endproc .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont .type __ecp_nistz256_sqr_montq,\@abi-omnipotent .type __ecp_nistz256_sqr_montq,\@abi-omnipotent Loading Loading @@ -1306,8 +1378,11 @@ $code.=<<___; .type ecp_nistz256_from_mont,\@function,2 .type ecp_nistz256_from_mont,\@function,2 .align 32 .align 32 ecp_nistz256_from_mont: ecp_nistz256_from_mont: .cfi_startproc push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 .Lfrom_body: .Lfrom_body: mov 8*0($in_ptr), %rax mov 8*0($in_ptr), %rax Loading Loading @@ -1390,10 +1465,14 @@ ecp_nistz256_from_mont: mov $acc3, 8*3($r_ptr) mov $acc3, 8*3($r_ptr) mov 0(%rsp),%r13 mov 0(%rsp),%r13 .cfi_restore %r13 mov 8(%rsp),%r12 mov 8(%rsp),%r12 .cfi_restore %r12 lea 16(%rsp),%rsp lea 16(%rsp),%rsp .cfi_adjust_cfa_offset -16 .Lfrom_epilogue: .Lfrom_epilogue: ret ret .cfi_endproc .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont ___ ___ } } Loading Loading @@ -2055,6 +2134,7 @@ $code.=<<___; .type ecp_nistz256_point_double,\@function,2 .type ecp_nistz256_point_double,\@function,2 .align 32 .align 32 ecp_nistz256_point_double: ecp_nistz256_point_double: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -2071,17 +2151,25 @@ $code.=<<___; .type ecp_nistz256_point_doublex,\@function,2 .type ecp_nistz256_point_doublex,\@function,2 .align 32 .align 32 ecp_nistz256_point_doublex: ecp_nistz256_point_doublex: .cfi_startproc .Lpoint_doublex: .Lpoint_doublex: ___ ___ } } $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 sub \$32*5+8, %rsp sub \$32*5+8, %rsp .cfi_adjust_cfa_offset 32*5+8 .Lpoint_double${x}_body: .Lpoint_double${x}_body: .Lpoint_double_shortcut$x: .Lpoint_double_shortcut$x: Loading Loading @@ -2254,15 +2342,24 @@ $code.=<<___; call __ecp_nistz256_sub_from$x # p256_sub(res_y, S, res_y); call __ecp_nistz256_sub_from$x # p256_sub(res_y, S, res_y); lea 32*5+56(%rsp), %rsi lea 32*5+56(%rsp), %rsi .cfi_def_cfa %rsi,8 mov -48(%rsi),%r15 mov -48(%rsi),%r15 .cfi_restore %r15 mov -40(%rsi),%r14 mov -40(%rsi),%r14 .cfi_restore %r14 mov -32(%rsi),%r13 mov -32(%rsi),%r13 .cfi_restore %r13 mov -24(%rsi),%r12 mov -24(%rsi),%r12 .cfi_restore %r12 mov -16(%rsi),%rbx mov -16(%rsi),%rbx .cfi_restore %rbx mov -8(%rsi),%rbp mov -8(%rsi),%rbp .cfi_restore %rbp lea (%rsi),%rsp lea (%rsi),%rsp .cfi_def_cfa_register %rsp .Lpoint_double${x}_epilogue: .Lpoint_double${x}_epilogue: ret ret .cfi_endproc .size ecp_nistz256_point_double$sfx,.-ecp_nistz256_point_double$sfx .size ecp_nistz256_point_double$sfx,.-ecp_nistz256_point_double$sfx ___ ___ } } Loading @@ -2288,6 +2385,7 @@ $code.=<<___; .type ecp_nistz256_point_add,\@function,3 .type ecp_nistz256_point_add,\@function,3 .align 32 .align 32 ecp_nistz256_point_add: ecp_nistz256_point_add: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -2304,17 +2402,25 @@ $code.=<<___; .type ecp_nistz256_point_addx,\@function,3 .type ecp_nistz256_point_addx,\@function,3 .align 32 .align 32 ecp_nistz256_point_addx: ecp_nistz256_point_addx: .cfi_startproc .Lpoint_addx: .Lpoint_addx: ___ ___ } } $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 sub \$32*18+8, %rsp sub \$32*18+8, %rsp .cfi_adjust_cfa_offset 32*18+8 .Lpoint_add${x}_body: .Lpoint_add${x}_body: movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr Loading Loading @@ -2625,15 +2731,24 @@ $code.=<<___; .Ladd_done$x: .Ladd_done$x: lea 32*18+56(%rsp), %rsi lea 32*18+56(%rsp), %rsi .cfi_def_cfa %rsi,8 mov -48(%rsi),%r15 mov -48(%rsi),%r15 .cfi_restore %r15 mov -40(%rsi),%r14 mov -40(%rsi),%r14 .cfi_restore %r14 mov -32(%rsi),%r13 mov -32(%rsi),%r13 .cfi_restore %r13 mov -24(%rsi),%r12 mov -24(%rsi),%r12 .cfi_restore %r12 mov -16(%rsi),%rbx mov -16(%rsi),%rbx .cfi_restore %rbx mov -8(%rsi),%rbp mov -8(%rsi),%rbp .cfi_restore %rbp lea (%rsi),%rsp lea (%rsi),%rsp .cfi_def_cfa_register %rsp .Lpoint_add${x}_epilogue: .Lpoint_add${x}_epilogue: ret ret .cfi_endproc .size ecp_nistz256_point_add$sfx,.-ecp_nistz256_point_add$sfx .size ecp_nistz256_point_add$sfx,.-ecp_nistz256_point_add$sfx ___ ___ } } Loading @@ -2658,6 +2773,7 @@ $code.=<<___; .type ecp_nistz256_point_add_affine,\@function,3 .type ecp_nistz256_point_add_affine,\@function,3 .align 32 .align 32 ecp_nistz256_point_add_affine: ecp_nistz256_point_add_affine: .cfi_startproc ___ ___ $code.=<<___ if ($addx); $code.=<<___ if ($addx); mov \$0x80100, %ecx mov \$0x80100, %ecx Loading @@ -2674,17 +2790,25 @@ $code.=<<___; .type ecp_nistz256_point_add_affinex,\@function,3 .type ecp_nistz256_point_add_affinex,\@function,3 .align 32 .align 32 ecp_nistz256_point_add_affinex: ecp_nistz256_point_add_affinex: .cfi_startproc .Lpoint_add_affinex: .Lpoint_add_affinex: ___ ___ } } $code.=<<___; $code.=<<___; push %rbp push %rbp .cfi_push %rbp push %rbx push %rbx .cfi_push %rbx push %r12 push %r12 .cfi_push %r12 push %r13 push %r13 .cfi_push %r13 push %r14 push %r14 .cfi_push %r14 push %r15 push %r15 .cfi_push %r15 sub \$32*15+8, %rsp sub \$32*15+8, %rsp .cfi_adjust_cfa_offset 32*15+8 .Ladd_affine${x}_body: .Ladd_affine${x}_body: movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr movdqu 0x00($a_ptr), %xmm0 # copy *(P256_POINT *)$a_ptr Loading Loading @@ -2931,15 +3055,24 @@ $code.=<<___; movdqu %xmm3, 0x30($r_ptr) movdqu %xmm3, 0x30($r_ptr) lea 32*15+56(%rsp), %rsi lea 32*15+56(%rsp), %rsi .cfi_def_cfa %rsi,8 mov -48(%rsi),%r15 mov -48(%rsi),%r15 .cfi_restore %r15 mov -40(%rsi),%r14 mov -40(%rsi),%r14 .cfi_restore %r14 mov -32(%rsi),%r13 mov -32(%rsi),%r13 .cfi_restore %r13 mov -24(%rsi),%r12 mov -24(%rsi),%r12 .cfi_restore %r12 mov -16(%rsi),%rbx mov -16(%rsi),%rbx .cfi_restore %rbx mov -8(%rsi),%rbp mov -8(%rsi),%rbp .cfi_restore %rbp lea (%rsi),%rsp lea (%rsi),%rsp .cfi_def_cfa_register %rsp .Ladd_affine${x}_epilogue: .Ladd_affine${x}_epilogue: ret ret .cfi_endproc .size ecp_nistz256_point_add_affine$sfx,.-ecp_nistz256_point_add_affine$sfx .size ecp_nistz256_point_add_affine$sfx,.-ecp_nistz256_point_add_affine$sfx ___ ___ } } Loading