#include #include struct Code : Xbyak::CodeGenerator { Code(bool nf) { xor_(eax, eax); // CF = 0 mov(eax, -1); if (nf) { puts("no flags (with T_nf)"); add(eax|T_nf, eax, 1); // does not change CF } else { puts("change flags (without T_nf)"); add(eax, eax, 1); // CF = 1 } adc(eax, 0); // eax = CF ? 1 : 0 ret(); } }; int main() { for (int i = 0; i < 2; i++) { Code c(i); printf("i=%d ret=%d\n", i, c.getCode()()); } }