I came up with even shorter variant of div
example 
function teDWordDivBy7_v4( divided : dword):dword; assembler; nostackframe;
asm
     mov ecx,divided
     mov rax,2635249153693862181
     mul rcx
     mov eax,edx
end;

current version for comparison

function teDWordDivBy7_v0( divided : dword):dword; assembler; nostackframe;
asm
     mov ecx,divided
     mov eax,613566757
     mul ecx
     add edx,ecx
     rcr edx,1
     shr edx,2
     mov eax,edx
end;

 
   
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to