diff options
| -rw-r--r-- | sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S | 2011 |
1 files changed, 1005 insertions, 1006 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S index 9d691ff9e1..51bddb11ff 100644 --- a/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S +++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log102_core_sse4.S @@ -29,1061 +29,1060 @@ /* Offsets for data table __svml_dlog10_data_internal */ -#define Log_HA_table 0 -#define Log_LA_table 4112 -#define poly_coeff 8224 -#define ExpMask 8304 -#define Two10 8320 -#define MinNorm 8336 -#define MaxNorm 8352 -#define HalfMask 8368 -#define One 8384 -#define Threshold 8400 -#define Bias 8416 -#define Bias1 8432 -#define L2 8448 +#define Log_HA_table 0 +#define Log_LA_table 4112 +#define poly_coeff 8224 +#define ExpMask 8304 +#define Two10 8320 +#define MinNorm 8336 +#define MaxNorm 8352 +#define HalfMask 8368 +#define One 8384 +#define Threshold 8400 +#define Bias 8416 +#define Bias1 8432 +#define L2 8448 /* Lookup bias for data table __svml_dlog10_data_internal. */ -#define Table_Lookup_Bias -0x406ff0 +#define Table_Lookup_Bias -0x406ff0 #include <sysdep.h> - .text - .section .text.sse4,"ax",@progbits + .section .text.sse4, "ax", @progbits ENTRY(_ZGVbN2v_log10_sse4) - pushq %rbp - cfi_def_cfa_offset(16) - movq %rsp, %rbp - cfi_def_cfa(6, 16) - cfi_offset(6, -16) - andq $-32, %rsp - subq $64, %rsp + pushq %rbp + cfi_def_cfa_offset(16) + movq %rsp, %rbp + cfi_def_cfa(6, 16) + cfi_offset(6, -16) + andq $-32, %rsp + subq $64, %rsp -/* exponent bits */ - movaps %xmm0, %xmm5 + /* exponent bits */ + movaps %xmm0, %xmm5 -/* preserve mantissa, set input exponent to 2^(-10) */ - movups ExpMask+__svml_dlog10_data_internal(%rip), %xmm1 - psrlq $20, %xmm5 - andps %xmm0, %xmm1 - lea Table_Lookup_Bias+__svml_dlog10_data_internal(%rip), %rsi - orps Two10+__svml_dlog10_data_internal(%rip), %xmm1 + /* preserve mantissa, set input exponent to 2^(-10) */ + movups ExpMask+__svml_dlog10_data_internal(%rip), %xmm1 + psrlq $20, %xmm5 + andps %xmm0, %xmm1 + lea Table_Lookup_Bias+__svml_dlog10_data_internal(%rip), %rsi + orps Two10+__svml_dlog10_data_internal(%rip), %xmm1 -/* check range */ - movaps %xmm0, %xmm8 + /* check range */ + movaps %xmm0, %xmm8 -/* reciprocal approximation good to at least 11 bits */ - cvtpd2ps %xmm1, %xmm2 - cmpltpd MinNorm+__svml_dlog10_data_internal(%rip), %xmm8 - movlhps %xmm2, %xmm2 - movaps %xmm0, %xmm7 - rcpps %xmm2, %xmm3 - cmpnlepd MaxNorm+__svml_dlog10_data_internal(%rip), %xmm7 - cvtps2pd %xmm3, %xmm12 + /* reciprocal approximation good to at least 11 bits */ + cvtpd2ps %xmm1, %xmm2 + cmpltpd MinNorm+__svml_dlog10_data_internal(%rip), %xmm8 + movlhps %xmm2, %xmm2 + movaps %xmm0, %xmm7 + rcpps %xmm2, %xmm3 + cmpnlepd MaxNorm+__svml_dlog10_data_internal(%rip), %xmm7 + cvtps2pd %xmm3, %xmm12 -/* round reciprocal to nearest integer, will have 1+9 mantissa bits */ - movups .FLT_12(%rip), %xmm4 - orps %xmm7, %xmm8 - addpd %xmm4, %xmm12 + /* round reciprocal to nearest integer, will have 1+9 mantissa bits */ + movups .FLT_12(%rip), %xmm4 + orps %xmm7, %xmm8 + addpd %xmm4, %xmm12 -/* combine and get argument value range mask */ - movmskpd %xmm8, %edx + /* combine and get argument value range mask */ + movmskpd %xmm8, %edx -/* argument reduction */ - movups HalfMask+__svml_dlog10_data_internal(%rip), %xmm9 - subpd %xmm4, %xmm12 - andps %xmm1, %xmm9 + /* argument reduction */ + movups HalfMask+__svml_dlog10_data_internal(%rip), %xmm9 + subpd %xmm4, %xmm12 + andps %xmm1, %xmm9 -/* - * prepare table index - * table lookup - */ - movaps %xmm12, %xmm10 - subpd %xmm9, %xmm1 - mulpd %xmm12, %xmm9 - mulpd %xmm12, %xmm1 - subpd One+__svml_dlog10_data_internal(%rip), %xmm9 - addpd %xmm9, %xmm1 + /* + * prepare table index + * table lookup + */ + movaps %xmm12, %xmm10 + subpd %xmm9, %xmm1 + mulpd %xmm12, %xmm9 + mulpd %xmm12, %xmm1 + subpd One+__svml_dlog10_data_internal(%rip), %xmm9 + addpd %xmm9, %xmm1 -/* polynomial */ - movups poly_coeff+__svml_dlog10_data_internal(%rip), %xmm14 - psrlq $40, %xmm10 - mulpd %xmm1, %xmm14 - movd %xmm10, %eax - pshufd $2, %xmm10, %xmm11 - movaps %xmm1, %xmm10 - movups poly_coeff+32+__svml_dlog10_data_internal(%rip), %xmm15 - mulpd %xmm1, %xmm10 - addpd poly_coeff+16+__svml_dlog10_data_internal(%rip), %xmm14 - mulpd %xmm1, %xmm15 - mulpd %xmm10, %xmm14 - addpd poly_coeff+48+__svml_dlog10_data_internal(%rip), %xmm15 - movd %xmm11, %ecx + /* polynomial */ + movups poly_coeff+__svml_dlog10_data_internal(%rip), %xmm14 + psrlq $40, %xmm10 + mulpd %xmm1, %xmm14 + movd %xmm10, %eax + pshufd $2, %xmm10, %xmm11 + movaps %xmm1, %xmm10 + movups poly_coeff+32+__svml_dlog10_data_internal(%rip), %xmm15 + mulpd %xmm1, %xmm10 + addpd poly_coeff+16+__svml_dlog10_data_internal(%rip), %xmm14 + mulpd %xmm1, %xmm15 + mulpd %xmm10, %xmm14 + addpd poly_coeff+48+__svml_dlog10_data_internal(%rip), %xmm15 + movd %xmm11, %ecx -/* exponent*log(2.0) */ - movups Threshold+__svml_dlog10_data_internal(%rip), %xmm13 - addpd %xmm14, %xmm15 - cmpltpd %xmm12, %xmm13 - mulpd %xmm15, %xmm10 - pshufd $221, %xmm5, %xmm6 - movups poly_coeff+64+__svml_dlog10_data_internal(%rip), %xmm11 + /* exponent*log(2.0) */ + movups Threshold+__svml_dlog10_data_internal(%rip), %xmm13 + addpd %xmm14, %xmm15 + cmpltpd %xmm12, %xmm13 + mulpd %xmm15, %xmm10 + pshufd $221, %xmm5, %xmm6 + movups poly_coeff+64+__svml_dlog10_data_internal(%rip), %xmm11 -/* biased exponent in DP format */ - cvtdq2pd %xmm6, %xmm3 - mulpd %xmm1, %xmm11 - andps Bias+__svml_dlog10_data_internal(%rip), %xmm13 - orps Bias1+__svml_dlog10_data_internal(%rip), %xmm13 - subpd %xmm13, %xmm3 - addpd %xmm10, %xmm11 - mulpd L2+__svml_dlog10_data_internal(%rip), %xmm3 - movslq %eax, %rax - movslq %ecx, %rcx - movsd (%rsi,%rax), %xmm2 - movhpd (%rsi,%rcx), %xmm2 + /* biased exponent in DP format */ + cvtdq2pd %xmm6, %xmm3 + mulpd %xmm1, %xmm11 + andps Bias+__svml_dlog10_data_internal(%rip), %xmm13 + orps Bias1+__svml_dlog10_data_internal(%rip), %xmm13 + subpd %xmm13, %xmm3 + addpd %xmm10, %xmm11 + mulpd L2+__svml_dlog10_data_internal(%rip), %xmm3 + movslq %eax, %rax + movslq %ecx, %rcx + movsd (%rsi, %rax), %xmm2 + movhpd (%rsi, %rcx), %xmm2 -/* reconstruction */ - addpd %xmm11, %xmm2 - addpd %xmm2, %xmm3 - testl %edx, %edx + /* reconstruction */ + addpd %xmm11, %xmm2 + addpd %xmm2, %xmm3 + testl %edx, %edx -/* Go to special inputs processing branch */ - jne L(SPECIAL_VALUES_BRANCH) - # LOE rbx r12 r13 r14 r15 edx xmm0 xmm3 + /* Go to special inputs processing branch */ + jne L(SPECIAL_VALUES_BRANCH) + # LOE rbx r12 r13 r14 r15 edx xmm0 xmm3 -/* Restore registers - * and exit the function - */ + /* Restore registers + * and exit the function + */ L(EXIT): - movaps %xmm3, %xmm0 - movq %rbp, %rsp - popq %rbp - cfi_def_cfa(7, 8) - cfi_restore(6) - ret - cfi_def_cfa(6, 16) - cfi_offset(6, -16) + movaps %xmm3, %xmm0 + movq %rbp, %rsp + popq %rbp + cfi_def_cfa(7, 8) + cfi_restore(6) + ret + cfi_def_cfa(6, 16) + cfi_offset(6, -16) -/* Branch to process - * special inputs - */ + /* Branch to process + * special inputs + */ L(SPECIAL_VALUES_BRANCH): - movups %xmm0, 32(%rsp) - movups %xmm3, 48(%rsp) - # LOE rbx r12 r13 r14 r15 edx + movups %xmm0, 32(%rsp) + movups %xmm3, 48(%rsp) + # LOE rbx r12 r13 r14 r15 edx - xorl %eax, %eax - movq %r12, 16(%rsp) - /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -48; DW_OP_plus) */ - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xff, 0xff, 0xff, 0x22 - movl %eax, %r12d - movq %r13, 8(%rsp) - /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -56; DW_OP_plus) */ - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xff, 0xff, 0xff, 0x22 - movl %edx, %r13d - movq %r14, (%rsp) - /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -64; DW_OP_plus) */ - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 - # LOE rbx r15 r12d r13d + xorl %eax, %eax + movq %r12, 16(%rsp) + /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -48; DW_OP_plus) */ + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xff, 0xff, 0xff, 0x22 + movl %eax, %r12d + movq %r13, 8(%rsp) + /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -56; DW_OP_plus) */ + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xff, 0xff, 0xff, 0x22 + movl %edx, %r13d + movq %r14, (%rsp) + /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -64; DW_OP_plus) */ + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 + # LOE rbx r15 r12d r13d -/* Range mask - * bits check - */ + /* Range mask + * bits check + */ L(RANGEMASK_CHECK): - btl %r12d, %r13d + btl %r12d, %r13d -/* Call scalar math function */ - jc L(SCALAR_MATH_CALL) - # LOE rbx r15 r12d r13d + /* Call scalar math function */ + jc L(SCALAR_MATH_CALL) + # LOE rbx r15 r12d r13d -/* Special inputs - * processing loop - */ + /* Special inputs + * processing loop + */ L(SPECIAL_VALUES_LOOP): - incl %r12d - cmpl $2, %r12d + incl %r12d + cmpl $2, %r12d -/* Check bits in range mask */ - jl L(RANGEMASK_CHECK) - # LOE rbx r15 r12d r13d + /* Check bits in range mask */ + jl L(RANGEMASK_CHECK) + # LOE rbx r15 r12d r13d - movq 16(%rsp), %r12 - cfi_restore(12) - movq 8(%rsp), %r13 - cfi_restore(13) - movq (%rsp), %r14 - cfi_restore(14) - movups 48(%rsp), %xmm3 + movq 16(%rsp), %r12 + cfi_restore(12) + movq 8(%rsp), %r13 + cfi_restore(13) + movq (%rsp), %r14 + cfi_restore(14) + movups 48(%rsp), %xmm3 -/* Go to exit */ - jmp L(EXIT) - /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -48; DW_OP_plus) */ - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xff, 0xff, 0xff, 0x22 - /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -56; DW_OP_plus) */ - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xff, 0xff, 0xff, 0x22 - /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -64; DW_OP_plus) */ - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 - # LOE rbx r12 r13 r14 r15 xmm3 + /* Go to exit */ + jmp L(EXIT) + /* DW_CFA_expression: r12 (r12) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -48; DW_OP_plus) */ + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd0, 0xff, 0xff, 0xff, 0x22 + /* DW_CFA_expression: r13 (r13) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -56; DW_OP_plus) */ + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc8, 0xff, 0xff, 0xff, 0x22 + /* DW_CFA_expression: r14 (r14) (DW_OP_lit8; DW_OP_minus; DW_OP_const4s: -32; DW_OP_and; DW_OP_const4s: -64; DW_OP_plus) */ + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22 + # LOE rbx r12 r13 r14 r15 xmm3 -/* Scalar math fucntion call - * to process special input - */ + /* Scalar math fucntion call + * to process special input + */ L(SCALAR_MATH_CALL): - movl %r12d, %r14d - movsd 32(%rsp,%r14,8), %xmm0 - call log10@PLT - # LOE rbx r14 r15 r12d r13d xmm0 + movl %r12d, %r14d + movsd 32(%rsp, %r14, 8), %xmm0 + call log10@PLT + # LOE rbx r14 r15 r12d r13d xmm0 - movsd %xmm0, 48(%rsp,%r14,8) + movsd %xmm0, 48(%rsp, %r14, 8) -/* Process special inputs in loop */ - jmp L(SPECIAL_VALUES_LOOP) - # LOE rbx r15 r12d r13d + /* Process special inputs in loop */ + jmp L(SPECIAL_VALUES_LOOP) + # LOE rbx r15 r12d r13d END(_ZGVbN2v_log10_sse4) - .section .rodata, "a" - .align 16 + .section .rodata, "a" + .align 16 #ifdef __svml_dlog10_data_internal_typedef typedef unsigned int VUINT32; typedef struct { - __declspec(align(16)) VUINT32 Log_HA_table[(1<<9)+2][2]; - __declspec(align(16)) VUINT32 Log_LA_table[(1<<9)+1][2]; - __declspec(align(16)) VUINT32 poly_coeff[5][2][2]; - __declspec(align(16)) VUINT32 ExpMask[2][2]; - __declspec(align(16)) VUINT32 Two10[2][2]; - __declspec(align(16)) VUINT32 MinNorm[2][2]; - __declspec(align(16)) VUINT32 MaxNorm[2][2]; - __declspec(align(16)) VUINT32 HalfMask[2][2]; - __declspec(align(16)) VUINT32 One[2][2]; - __declspec(align(16)) VUINT32 Threshold[2][2]; - __declspec(align(16)) VUINT32 Bias[2][2]; - __declspec(align(16)) VUINT32 Bias1[2][2]; - __declspec(align(16)) VUINT32 L2[2][2]; + __declspec(align(16)) VUINT32 Log_HA_table[(1<<9)+2][2]; + __declspec(align(16)) VUINT32 Log_LA_table[(1<<9)+1][2]; + __declspec(align(16)) VUINT32 poly_coeff[5][2][2]; + __declspec(align(16)) VUINT32 ExpMask[2][2]; + __declspec(align(16)) VUINT32 Two10[2][2]; + __declspec(align(16)) VUINT32 MinNorm[2][2]; + __declspec(align(16)) VUINT32 MaxNorm[2][2]; + __declspec(align(16)) VUINT32 HalfMask[2][2]; + __declspec(align(16)) VUINT32 One[2][2]; + __declspec(align(16)) VUINT32 Threshold[2][2]; + __declspec(align(16)) VUINT32 Bias[2][2]; + __declspec(align(16)) VUINT32 Bias1[2][2]; + __declspec(align(16)) VUINT32 L2[2][2]; } __svml_dlog10_data_internal; #endif __svml_dlog10_data_internal: - /* Log_HA_table */ - .quad 0xc0733a7146f6b080, 0xbe1e707ce619c200 - .quad 0xc0733a7547771970, 0xbe1e79c6c06d6f51 - .quad 0xc0733a7945aacb70, 0xbe1e78e225fad29c - .quad 0xc0733a7d41946970, 0xbe1e76d607f9693b - .quad 0xc0733a813b3691f0, 0xbe1e7704b3e0685b - .quad 0xc0733a853293df00, 0xbe1e79c1216a27fa - .quad 0xc0733a8927aee660, 0xbe1e76dce5734a81 - .quad 0xc0733a8d1a8a3920, 0xbe1e782ee2ca4dba - .quad 0xc0733a910b286430, 0xbe1e7812d1a0a61f - .quad 0xc0733a94f98bf010, 0xbe1e77e1b5ecbc61 - .quad 0xc0733a98e5b76100, 0xbe1e76635cac1586 - .quad 0xc0733a9ccfad36f0, 0xbe1e7638f7968f32 - .quad 0xc0733aa0b76feda0, 0xbe1e7840ee76e365 - .quad 0xc0733aa49d01fcb0, 0xbe1e79f3fd01907e - .quad 0xc0733aa88065d7a0, 0xbe1e77bbb3a9c38a - .quad 0xc0733aac619dedb0, 0xbe1e7742719bf41d - .quad 0xc0733ab040acaa20, 0xbe1e79bcedaf79cb - .quad 0xc0733ab41d947450, 0xbe1e762d63cb7ca0 - .quad 0xc0733ab7f857af50, 0xbe1e77a07be83403 - .quad 0xc0733abbd0f8ba80, 0xbe1e7763ff836ad0 - .quad 0xc0733abfa779f130, 0xbe1e7737720ead39 - .quad 0xc0733ac37bddaad0, 0xbe1e7776a08e55e7 - .quad 0xc0733ac74e263af0, 0xbe1e793e3c52dd36 - .quad 0xc0733acb1e55f160, 0xbe1e788a94695051 - .quad 0xc0733aceec6f1a10, 0xbe1e76508114a813 - .quad 0xc0733ad2b873fd20, 0xbe1e76909457d23e - .quad 0xc0733ad68266df10, 0xbe1e7664a24f9ca4 - .quad 0xc0733ada4a4a0090, 0xbe1e7a07b3d44b18 - .quad 0xc0733ade101f9ee0, 0xbe1e76d87594704d - .quad 0xc0733ae1d3e9f340, 0xbe1e79563595a182 - .quad 0xc0733ae595ab33b0, 0xbe1e771880c3c6ab - .quad 0xc0733ae955659250, 0xbe1e78c171f517d4 - .quad 0xc0733aed131b3df0, 0xbe1e77eac3874666 - .quad 0xc0733af0cece61b0, 0xbe1e790db479d8f6 - .quad 0xc0733af488812550, 0xbe1e7965d1aa5c90 - .quad 0xc0733af84035ad10, 0xbe1e78ceb398ba47 - .quad 0xc0733afbf5ee19c0, 0xbe1e779cc0dcb5aa - .quad 0xc0733affa9ac88c0, 0xbe1e7871053953ed - .quad 0xc0733b035b731420, 0xbe1e7a082cffa71a - .quad 0xc0733b070b43d2a0, 0xbe1e7904b4382fad - .quad 0xc0733b0ab920d790, 0xbe1e79b458d0b4f3 - .quad 0xc0733b0e650c3310, 0xbe1e79d0ded414c6 - .quad 0xc0733b120f07f200, 0xbe1e763c357a1943 - .quad 0xc0733b15b7161dd0, 0xbe1e78b80ba6daaa - .quad 0xc0733b195d38bd00, 0xbe1e7998e23b8ffd - .quad 0xc0733b1d0171d2c0, 0xbe1e7974aa65ee8c - .quad 0xc0733b20a3c35f20, 0xbe1e76ccfde752ab - .quad 0xc0733b24442f5ef0, 0xbe1e77b4ff19debb - .quad 0xc0733b27e2b7cc10, 0xbe1e7772ee478542 - .quad 0xc0733b2b7f5e9d30, 0xbe1e781d81b58b44 - .quad 0xc0733b2f1a25c600, 0xbe1e78350d967565 - .quad 0xc0733b32b30f3720, 0xbe1e783888e48152 - .quad 0xc0733b364a1cde30, 0xbe1e78367bf7c111 - .quad 0xc0733b39df50a5d0, 0xbe1e7959e57ca47d - .quad 0xc0733b3d72ac75c0, 0xbe1e777322423222 - .quad 0xc0733b41043232b0, 0xbe1e767ce42a60aa - .quad 0xc0733b4493e3be70, 0xbe1e781d445aea19 - .quad 0xc0733b4821c2f800, 0xbe1e7922fca18e18 - .quad 0xc0733b4badd1bb80, 0xbe1e76fed3d40647 - .quad 0xc0733b4f3811e210, 0xbe1e793948c9eabc - .quad 0xc0733b52c0854240, 0xbe1e76e487656b8c - .quad 0xc0733b56472daf90, 0xbe1e780ab2f71223 - .quad 0xc0733b59cc0cfaf0, 0xbe1e77189120b09c - .quad 0xc0733b5d4f24f270, 0xbe1e7644a0343a12 - .quad 0xc0733b60d0776160, 0xbe1e78f2a3e4733d - .quad 0xc0733b6450061080, 0xbe1e7913b2f73ae5 - .quad 0xc0733b67cdd2c5c0, 0xbe1e7882d08393b5 - .quad 0xc0733b6b49df4470, 0xbe1e765e1b209979 - .quad 0xc0733b6ec42d4d20, 0xbe1e785c9c4620d4 - .quad 0xc0733b75b394f240, 0xbe1e78878cd0e956 - .quad 0xc0733b7c9c178630, 0xbe1e789a4112d90b - .quad 0xc0733b837dc2b0f0, 0xbe1e79050b8a1766 - .quad 0xc0733b8a58a3f220, 0xbe1e7790dffc47aa - .quad 0xc0733b912cc8a180, 0xbe1e77174593b06a - .quad 0xc0733b97fa3defb0, 0xbe1e7677de2d2ecc - .quad 0xc0733b9ec110e6b0, 0xbe1e76cff477ca18 - .quad 0xc0733ba5814e6a80, 0xbe1e78f8644dec7b - .quad 0xc0733bac3b0339d0, 0xbe1e764e1361788d - .quad 0xc0733bb2ee3bee30, 0xbe1e78c913e738de - .quad 0xc0733bb99b04fd30, 0xbe1e76666f5bddaa - .quad 0xc0733bc0416ab850, 0xbe1e77e87cbd8ab6 - .quad 0xc0733bc6e1794e10, 0xbe1e76f18ba1c966 - .quad 0xc0733bcd7b3cca10, 0xbe1e777c9461b8db - .quad 0xc0733bd40ec115d0, 0xbe1e78b78526ffac - .quad 0xc0733bda9c11f920, 0xbe1e7942abecfede - .quad 0xc0733be1233b1aa0, 0xbe1e76d8a684fd8c - .quad 0xc0733be7a4480010, 0xbe1e79622b539ac9 - .quad 0xc0733bee1f440f30, 0xbe1e7978e7cc20ea - .quad 0xc0733bf4943a8de0, 0xbe1e765c9c9de825 - .quad 0xc0733bfb0336a290, 0xbe1e775d8b138ee2 - .quad 0xc0733c016c435500, 0xbe1e78bf33465c2f - .quad 0xc0733c07cf6b8e80, 0xbe1e78164f7cc441 - .quad 0xc0733c0e2cba1a50, 0xbe1e7824e64d0b23 - .quad 0xc0733c148439a630, 0xbe1e78373ae7dd81 - .quad 0xc0733c1ad5f4c2c0, 0xbe1e7704513e0afe - .quad 0xc0733c2121f5e3d0, 0xbe1e7914aa84200f - .quad 0xc0733c2768476110, 0xbe1e76b1cde25cf6 - .quad 0xc0733c2da8f37600, 0xbe1e796120e3862d - .quad 0xc0733c33e40442e0, 0xbe1e78ec836d7e7b - .quad 0xc0733c3a1983cca0, 0xbe1e77fb13b7dabb - .quad 0xc0733c40497bfd70, 0xbe1e783c6fcb2404 - .quad 0xc0733c4673f6a530, 0xbe1e7628bb93dce8 - .quad 0xc0733c4c98fd7990, 0xbe1e7857a47b5001 - .quad 0xc0733c52b89a16d0, 0xbe1e76708dc2831f - .quad 0xc0733c58d2d5ffa0, 0xbe1e77b6038651f1 - .quad 0xc0733c5ee7ba9de0, 0xbe1e792e855bb5b2 - .quad 0xc0733c64f75142d0, 0xbe1e776cacd5c105 - .quad 0xc0733c6b01a32740, 0xbe1e77f8a8011315 - .quad 0xc0733c7106b96c30, 0xbe1e765cf3efcfde - .quad 0xc0733c77069d1ad0, 0xbe1e78d837d2efac - .quad 0xc0733c7d01572530, 0xbe1e78b615cf772c - .quad 0xc0733c82f6f06640, 0xbe1e7650bbbd7a25 - .quad 0xc0733c88e771a220, 0xbe1e78bcf3495872 - .quad 0xc0733c8ed2e386c0, 0xbe1e792266832e84 - .quad 0xc0733c94b94eabd0, 0xbe1e79c1c3c2ca52 - .quad 0xc0733c9a9abb9340, 0xbe1e78aa61e5807d - .quad 0xc0733ca07732a970, 0xbe1e7620fc4cf156 - .quad 0xc0733ca64ebc4570, 0xbe1e76b914a832c5 - .quad 0xc0733cac2160a970, 0xbe1e79227f72020e - .quad 0xc0733cb1ef280300, 0xbe1e77ac972cc008 - .quad 0xc0733cb7b81a6b10, 0xbe1e798089be41f4 - .quad 0xc0733cbd7c3fe6a0, 0xbe1e77942ae037fe - .quad 0xc0733cc33ba06690, 0xbe1e7956ae6463d9 - .quad 0xc0733cc8f643c850, 0xbe1e7918a50c7942 - .quad 0xc0733cceac31d5d0, 0xbe1e78308eeab604 - .quad 0xc0733cd45d7245e0, 0xbe1e76dd4ea88445 - .quad 0xc0733cda0a0cbc60, 0xbe1e77e7c1aa5909 - .quad 0xc0733cdfb208caa0, 0xbe1e7804b9d20e54 - .quad 0xc0733ce5556def70, 0xbe1e78f88e99d49c - .quad 0xc0733ceaf4439780, 0xbe1e787d74682d68 - .quad 0xc0733cf08e911d80, 0xbe1e76edc24fe6e7 - .quad 0xc0733cf6245dca50, 0xbe1e79b347ec86d2 - .quad 0xc0733cfbb5b0d580, 0xbe1e797cceb2c39b - .quad 0xc0733d0142916530, 0xbe1e783adbdc6aa1 - .quad 0xc0733d06cb068e70, 0xbe1e76e4c20e3d9e - .quad 0xc0733d0c4f175570, 0xbe1e77070bf3cf61 - .quad 0xc0733d11cecaadc0, 0xbe1e781c43502734 - .quad 0xc0733d174a277a80, 0xbe1e78b11268ea72 - .quad 0xc0733d1cc1348e90, 0xbe1e7754b83bfc7d - .quad 0xc0733d2233f8acb0, 0xbe1e7756c29bf5e9 - .quad 0xc0733d27a27a87d0, 0xbe1e7952fc1d9333 - .quad 0xc0733d2d0cc0c350, 0xbe1e778c76ae6077 - .quad 0xc0733d3272d1f2e0, 0xbe1e7a1896ba8f43 - .quad 0xc0733d37d4b49b30, 0xbe1e76dafdf432d8 - .quad 0xc0733d3d326f3180, 0xbe1e795330184013 - .quad 0xc0733d428c081c80, 0xbe1e763cc774d30f - .quad 0xc0733d47e185b3d0, 0xbe1e77030a779c0a - .quad 0xc0733d4d32ee40b0, 0xbe1e7908af2a2d7e - .quad 0xc0733d528047fe00, 0xbe1e78c4953b797d - .quad 0xc0733d57c9991850, 0xbe1e78b43b096579 - .quad 0xc0733d5d0ee7ae30, 0xbe1e7824ae0a4804 - .quad 0xc0733d625039d040, 0xbe1e79d2b2fbb740 - .quad 0xc0733d678d958190, 0xbe1e7662de59a1a6 - .quad 0xc0733d6cc700b760, 0xbe1e76b251d59aaa - .quad 0xc0733d71fc8159b0, 0xbe1e7a00cfd1f487 - .quad 0xc0733d772e1d4360, 0xbe1e77f4d246167e - .quad 0xc0733d7c5bda4200, 0xbe1e767a4ee8e6fc - .quad 0xc0733d8185be1640, 0xbe1e777ccf0a8aed - .quad 0xc0733d86abce7420, 0xbe1e767d7e279ada - .quad 0xc0733d8bce1102d0, 0xbe1e7a05cef4bb90 - .quad 0xc0733d90ec8b5d40, 0xbe1e78f75369be5b - .quad 0xc0733d96074311d0, 0xbe1e77b9612e8c8a - .quad 0xc0733d9b1e3da2b0, 0xbe1e794518b9adeb - .quad 0xc0733da031808620, 0xbe1e7810626fb934 - .quad 0xc0733da541112650, 0xbe1e76d87223fa6d - .quad 0xc0733daa4cf4e1a0, 0xbe1e794c5e7ca3b5 - .quad 0xc0733daf55310af0, 0xbe1e789856ef816f - .quad 0xc0733db459cae970, 0xbe1e77d2004effbd - .quad 0xc0733db95ac7b8f0, 0xbe1e78467d31eb9c - .quad 0xc0733dbe582caa00, 0xbe1e79aaa4e25787 - .quad 0xc0733dc351fee220, 0xbe1e762de8f107bf - .quad 0xc0733dc848437b90, 0xbe1e7670670a63fe - .quad 0xc0733dcd3aff85d0, 0xbe1e795ca237c6cc - .quad 0xc0733dd22a3805b0, 0xbe1e77e55c53c1d9 - .quad 0xc0733dd715f1f520, 0xbe1e78a806213ac4 - .quad 0xc0733ddbfe3243b0, 0xbe1e77743a2bc615 - .quad 0xc0733de0e2fdd660, 0xbe1e78b8b45b0b7d - .quad 0xc0733de5c4598800, 0xbe1e78d635f2f4b9 - .quad 0xc0733deaa24a2920, 0xbe1e7758c396a11e - .quad 0xc0733def7cd48020, 0xbe1e7a17a8cc454c - .quad 0xc0733df453fd49a0, 0xbe1e783caa73f616 - .quad 0xc0733df927c93820, 0xbe1e7932cfa29664 - .quad 0xc0733dfdf83cf490, 0xbe1e777d265c72a6 - .quad 0xc0733e02c55d1e10, 0xbe1e7775e7c03c60 - .quad 0xc0733e078f2e4a40, 0xbe1e79f65d52d232 - .quad 0xc0733e0c55b50570, 0xbe1e76e7e7464b4e - .quad 0xc0733e1118f5d250, 0xbe1e77be81cad877 - .quad 0xc0733e15d8f52a80, 0xbe1e79dd25b5fb3a - .quad 0xc0733e1a95b77e80, 0xbe1e78e45f1418ef - .quad 0xc0733e1f4f4135a0, 0xbe1e78eb7289505b - .quad 0xc0733e240596ae50, 0xbe1e78a468c07cad - .quad 0xc0733e28b8bc3e20, 0xbe1e776b558a4009 - .quad 0xc0733e2d68b631d0, 0xbe1e77412eb9941e - .quad 0xc0733e321588cd80, 0xbe1e76b2853f845e - .quad 0xc0733e36bf384cb0, 0xbe1e76aa7184273c - .quad 0xc0733e3b65c8e260, 0xbe1e7832027f78fa - .quad 0xc0733e40093eb930, 0xbe1e7a1c7da131f5 - .quad 0xc0733e44a99df380, 0xbe1e76a0bc2ae4bc - .quad 0xc0733e4946eaab30, 0xbe1e78dff13b6f5d - .quad 0xc0733e4de128f250, 0xbe1e765a226dea2c - .quad 0xc0733e52785cd290, 0xbe1e78509b989111 - .quad 0xc0733e570c8a4de0, 0xbe1e7916a4e9803d - .quad 0xc0733e5b9db55e30, 0xbe1e7950c15758cc - .quad 0xc0733e602be1f5a0, 0xbe1e7922ba1ad420 - .quad 0xc0733e64b713fe90, 0xbe1e794cbaabcef6 - .quad 0xc0733e693f4f5bc0, 0xbe1e7837bf883fed - .quad 0 |
