Reading few CPU flags from D code

bearophile bearophileHUGS at lycos.com
Sat Mar 20 07:59:11 PDT 2010


A simple way to implement it is to define few magic variables inside the std.intrinsic module, and then allow them to be used only inside an if, alone, like this:

import std.intrinsic: overflow_flag;

if (overflow_flag) {...} else {...}

But magic variables are not tidy. So a tidier solution is to turn them into boolean functions that the compiler manages in a special way, as the other intrinsics:

bool o = if overflow_flag();
Or:
if (overflow_flag()) {...} else {...}

But then the compiler has to manage them efficiently (for example here using a single JNO or JO instruction).

Bye,
bearophile



More information about the Digitalmars-d mailing list