blob: b09b9dcd31f24e967394d0aa654065d1e02d6601 (
plain) (
tree)
|
|
; Linux rdi rsi rdx rcx
; Win rcx rdx r8 r9
%ifdef _WIN64
%define p1org rcx
%define p2org rdx
%define p3org r8
%define p4org r9
%else
%define p1org rdi
%define p2org rsi
%define p3org rdx
%define p4org rcx
%endif
%imacro proc 1
global %1
%1:
%endmacro
segment .text
%imacro addPre 1
mov rax, [p2org]
add rax, [p3org]
mov [p1org], rax
%assign i 1
%rep %1
mov rax, [p2org + i * 8]
adc rax, [p3org + i * 8]
mov [p1org + i * 8], rax
%assign i (i+1)
%endrep
setc al
movzx eax, al
ret
%endmacro
%imacro subNC 1
mov rax, [p2org]
sub rax, [p3org]
mov [p1org], rax
%assign i 1
%rep %1
mov rax, [p2org + i * 8]
sbb rax, [p3org + i * 8]
mov [p1org + i * 8], rax
%assign i (i+1)
%endrep
setc al
movzx eax, al
ret
%endmacro
proc mcl_fp_addPre64
addPre 0
proc mcl_fp_addPre128
addPre 1
proc mcl_fp_addPre192
addPre 2
proc mcl_fp_addPre256
addPre 3
proc mcl_fp_addPre320
addPre 4
proc mcl_fp_addPre384
addPre 5
proc mcl_fp_addPre448
addPre 6
proc mcl_fp_addPre512
addPre 7
proc mcl_fp_addPre576
addPre 8
proc mcl_fp_addPre640
addPre 9
proc mcl_fp_addPre704
addPre 10
proc mcl_fp_addPre768
addPre 11
proc mcl_fp_addPre832
addPre 12
proc mcl_fp_addPre896
addPre 13
proc mcl_fp_addPre960
addPre 14
proc mcl_fp_addPre1024
addPre 15
proc mcl_fp_addPre1088
addPre 16
proc mcl_fp_addPre1152
addPre 17
proc mcl_fp_addPre1216
addPre 18
proc mcl_fp_addPre1280
addPre 19
proc mcl_fp_addPre1344
addPre 20
proc mcl_fp_addPre1408
addPre 21
proc mcl_fp_addPre1472
addPre 22
proc mcl_fp_addPre1536
addPre 23
proc mcl_fp_subNC64
subNC 0
proc mcl_fp_subNC128
subNC 1
proc mcl_fp_subNC192
subNC 2
proc mcl_fp_subNC256
subNC 3
proc mcl_fp_subNC320
subNC 4
proc mcl_fp_subNC384
subNC 5
proc mcl_fp_subNC448
subNC 6
proc mcl_fp_subNC512
subNC 7
proc mcl_fp_subNC576
subNC 8
proc mcl_fp_subNC640
subNC 9
proc mcl_fp_subNC704
subNC 10
proc mcl_fp_subNC768
subNC 11
proc mcl_fp_subNC832
subNC 12
proc mcl_fp_subNC896
subNC 13
proc mcl_fp_subNC960
subNC 14
proc mcl_fp_subNC1024
subNC 15
proc mcl_fp_subNC1088
subNC 16
proc mcl_fp_subNC1152
subNC 17
proc mcl_fp_subNC1216
subNC 18
proc mcl_fp_subNC1280
subNC 19
proc mcl_fp_subNC1344
subNC 20
proc mcl_fp_subNC1408
subNC 21
proc mcl_fp_subNC1472
subNC 22
proc mcl_fp_subNC1536
subNC 23
|