-rw-r--r-- 4824 high-ctidh-20210523/uintbig2048.S
/* DO NOT EDIT! generated by ./autogen */
.intel_syntax noprefix
#include "uintbig_namespace.h"
.section .rodata
.global uintbig_1
uintbig_1:
.quad 1, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.global uintbig_p
uintbig_p:
.quad 0x7790d615ea034943, 0xdc703f0cd8c4d918, 0x95a98036c813c788, 0xe111b0d22ab8ecaa
.quad 0x6478407d7a9a56ee, 0xa7bec86fabaf787f, 0x44454e851cf305ab, 0x44084e1a73c76cb2
.quad 0x2842bbe4dbacc65e, 0x58e89497ef35bbb9, 0x9796620b3ad8a5d4, 0x5377d53e856cc9a3
.quad 0x7c4cb419996f45e7, 0x88c691b2d452a8ac, 0x0da1783672767abb, 0x9844e5c09baf59ec
.quad 0xe33586d1208a1017, 0x7d84f102b5fde2ea, 0x30d2edfe50198c64, 0x095ac8a9f3ce2b0c
.quad 0x93e73abd17e3aa46, 0xc680497933375253, 0x6557ebe96d91aedd, 0x4dd6024bf2f8feab
.quad 0xb8523d6a302abf28, 0x33a8779a1ec8b8c2, 0x584eb12932f72abb, 0xdbd1fc2133770253
.quad 0xddffdcf1aee53f12, 0x4d8854e8b3e19c53, 0x97fefc90e8196ed9, 0x438efcab10254c64
.global uintbig_four_sqrt_p
uintbig_four_sqrt_p:
.quad 0x713138678208efe5, 0x99b865c7a60b9d15, 0xcb9d5709a6d520ec, 0x8ba25da98b117e65
.quad 0xb53f431fbbbc1b57, 0xa182b3a2a32514ca, 0xbd8509d767f7a86c, 0x50d56ce140ad8057
.quad 0xf15c586b92287b69, 0x89a81119287fc51f, 0x5721ecd10a5f822a, 0xbc1272d7e7a1d02c
.quad 0x8ae8830a4b03c676, 0xb4c29be61adeea3a, 0xd31c1b050625e30b, 0x0e0aa7f8149f0a5a
.quad 2, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.quad 0, 0, 0, 0
.section .text
.global uintbig_set
uintbig_set:
cld
mov rax, rsi
stosq
xor rax, rax
mov rcx, 31
rep stosq
ret
.global uintbig_bit
uintbig_bit:
mov rcx, rsi
and rcx, 0x3f
shr rsi, 6
mov rax, [rdi + 8*rsi]
shr rax, cl
and rax, 1
ret
.global uintbig_add3
uintbig_add3:
mov rax, [rsi + 0]
add rax, [rdx + 0]
mov [rdi + 0], rax
.set k, 1
.rept 31
mov rax, [rsi + 8*k]
adc rax, [rdx + 8*k]
mov [rdi + 8*k], rax
.set k, k+1
.endr
setc al
movzx rax, al
ret
.global uintbig_sub3
uintbig_sub3:
mov rax, [rsi + 0]
sub rax, [rdx + 0]
mov [rdi + 0], rax
.set k, 1
.rept 31
mov rax, [rsi + 8*k]
sbb rax, [rdx + 8*k]
mov [rdi + 8*k], rax
.set k, k+1
.endr
setc al
movzx rax, al
ret
.global uintbig_mul3_64
uintbig_mul3_64:
mulx r10, rax, [rsi + 0]
mov [rdi + 0], rax
mulx r11, rax, [rsi + 8]
add rax, r10
mov [rdi + 8], rax
mulx r10, rax, [rsi + 16]
adcx rax, r11
mov [rdi + 16], rax
mulx r11, rax, [rsi + 24]
adcx rax, r10
mov [rdi + 24], rax
mulx r10, rax, [rsi + 32]
adcx rax, r11
mov [rdi + 32], rax
mulx r11, rax, [rsi + 40]
adcx rax, r10
mov [rdi + 40], rax
mulx r10, rax, [rsi + 48]
adcx rax, r11
mov [rdi + 48], rax
mulx r11, rax, [rsi + 56]
adcx rax, r10
mov [rdi + 56], rax
mulx r10, rax, [rsi + 64]
adcx rax, r11
mov [rdi + 64], rax
mulx r11, rax, [rsi + 72]
adcx rax, r10
mov [rdi + 72], rax
mulx r10, rax, [rsi + 80]
adcx rax, r11
mov [rdi + 80], rax
mulx r11, rax, [rsi + 88]
adcx rax, r10
mov [rdi + 88], rax
mulx r10, rax, [rsi + 96]
adcx rax, r11
mov [rdi + 96], rax
mulx r11, rax, [rsi + 104]
adcx rax, r10
mov [rdi + 104], rax
mulx r10, rax, [rsi + 112]
adcx rax, r11
mov [rdi + 112], rax
mulx r11, rax, [rsi + 120]
adcx rax, r10
mov [rdi + 120], rax
mulx r10, rax, [rsi + 128]
adcx rax, r11
mov [rdi + 128], rax
mulx r11, rax, [rsi + 136]
adcx rax, r10
mov [rdi + 136], rax
mulx r10, rax, [rsi + 144]
adcx rax, r11
mov [rdi + 144], rax
mulx r11, rax, [rsi + 152]
adcx rax, r10
mov [rdi + 152], rax
mulx r10, rax, [rsi + 160]
adcx rax, r11
mov [rdi + 160], rax
mulx r11, rax, [rsi + 168]
adcx rax, r10
mov [rdi + 168], rax
mulx r10, rax, [rsi + 176]
adcx rax, r11
mov [rdi + 176], rax
mulx r11, rax, [rsi + 184]
adcx rax, r10
mov [rdi + 184], rax
mulx r10, rax, [rsi + 192]
adcx rax, r11
mov [rdi + 192], rax
mulx r11, rax, [rsi + 200]
adcx rax, r10
mov [rdi + 200], rax
mulx r10, rax, [rsi + 208]
adcx rax, r11
mov [rdi + 208], rax
mulx r11, rax, [rsi + 216]
adcx rax, r10
mov [rdi + 216], rax
mulx r10, rax, [rsi + 224]
adcx rax, r11
mov [rdi + 224], rax
mulx r11, rax, [rsi + 232]
adcx rax, r10
mov [rdi + 232], rax
mulx r10, rax, [rsi + 240]
adcx rax, r11
mov [rdi + 240], rax
mulx r11, rax, [rsi + 248]
adcx rax, r10
mov [rdi + 248], rax
ret