odd bit optimized function
Vitaliy Fadeev
vital.fadeev at gmail.com
Sat Sep 23 02:51:35 UTC 2023
On Friday, 22 September 2023 at 22:48:34 UTC, claptrap wrote:
> 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.
Thank, claptrap!
Yes, P FLAG, of course! JP instruction.
```asm
if (x & 1)
```
I am using the code above.
> using inline asm
OK, may be.
More information about the Digitalmars-d-learn
mailing list