trying to understand/do conversion of adcx adox assembly to instructions that do not support them
assembly code:
https://github.com/zkbitcoin/ffiasm/blob/master/benchmark/fr.asm
idea is to convery calls to adcx and adox (in examples below) to adc etc (on uspported platforms)
adcx example:
<code>; FirstLoop
mov rdx,[rsi + 0]
mulx rax,r11,[rcx]
mulx r8,r12,[rcx +8]
adcx r12,rax
mulx rax,r13,[rcx +16]
adcx r13,r8
mulx r8,r14,[rcx +24]
adcx r14,rax
mov r15,r10
adcx r15,r8
</code>
<code>; FirstLoop
mov rdx,[rsi + 0]
mulx rax,r11,[rcx]
mulx r8,r12,[rcx +8]
adcx r12,rax
mulx rax,r13,[rcx +16]
adcx r13,r8
mulx r8,r14,[rcx +24]
adcx r14,rax
mov r15,r10
adcx r15,r8
</code>
; FirstLoop
mov rdx,[rsi + 0]
mulx rax,r11,[rcx]
mulx r8,r12,[rcx +8]
adcx r12,rax
mulx rax,r13,[rcx +16]
adcx r13,r8
mulx r8,r14,[rcx +24]
adcx r14,rax
mov r15,r10
adcx r15,r8
adcx and adox examples
<code>
; SecondLoop
mov rdx,r9
mulx rax,rdx,r11
mulx r8,rax,[q]
adcx rax,r11
mulx rax,r11,[q +8]
adcx r11,r8
adox r11,r12
</code>
<code>
; SecondLoop
mov rdx,r9
mulx rax,rdx,r11
mulx r8,rax,[q]
adcx rax,r11
mulx rax,r11,[q +8]
adcx r11,r8
adox r11,r12
</code>
; SecondLoop
mov rdx,r9
mulx rax,rdx,r11
mulx r8,rax,[q]
adcx rax,r11
mulx rax,r11,[q +8]
adcx r11,r8
adox r11,r12