odd bit optimized function

claptrap clap at trap.com
Fri Sep 22 22:48:34 UTC 2023


On Friday, 22 September 2023 at 14:29:08 UTC, Vitaliy Fadeev 
wrote:
> x86 first bit check (odd check):
> ```asm
> AND EAX, EAX  ; update FLAG OF  // odd flag
> JO  Label
> ```
>
> Is there D-Lang operator of optimized library function ?

There's no "odd" flag, theres the overflow flag "O", and "JO" is 
jump on overflow. Or there's the parity flag "P", which signals 
an odd or even number of bits in the lowest byte of the result 
(on x86 anyway).

If you just want to test if an int is odd or even, just do

if (x & 1) writeln("is odd");
else writeln("is even");

that'll compile to an AND and a jmp, or conditional move maybe.

If you want to access the parity flag I think you're out of luck 
aside from using inline asm.


More information about the Digitalmars-d-learn mailing list