本文整理汇总了C++中asmjit::X86Assembler::and_方法的典型用法代码示例。如果您正苦于以下问题:C++ X86Assembler::and_方法的具体用法?C++ X86Assembler::and_怎么用?C++ X86Assembler::and_使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类asmjit::X86Assembler
的用法示例。
在下文中一共展示了X86Assembler::and_方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exp
bool BITZeroP::exp(asmjit::X86Assembler& a, MemoryMapper& m) {
m.emitLoad(a, operand, asmjit::x86::al);
// @COMPLETENESS: We should check and set the S_ flags here before the and
a.push(asmjit::x86::rax);
a.and_(asmjit::x86::al, REG_A);
auto Zero = a.newLabel();
auto Exit = a.newLabel();
a.jz(Zero);
//Not zero
a.btr(REG_S, S_ZERO);
a.jmp(Exit);
a.bind(Zero);
a.bts(REG_S, S_ZERO);
a.bind(Exit);
a.pop(asmjit::x86::rax);
{
a.btr(REG_S, S_OVERFLOW);
a.bt(asmjit::x86::al, 6);
auto End = a.newLabel();
a.jnc(End);
a.bts(REG_S, S_OVERFLOW);
a.bind(End);
}
{
a.btr(REG_S, S_NEGATIVE);
a.bt(asmjit::x86::al, 7);
auto End = a.newLabel();
a.jnc(End);
a.bts(REG_S, S_NEGATIVE);
a.bind(End);
}
return true;
}