当前位置: 首页>>代码示例>>C++>>正文


C++ X64Assembler::emitCR方法代码示例

本文整理汇总了C++中X64Assembler::emitCR方法的典型用法代码示例。如果您正苦于以下问题:C++ X64Assembler::emitCR方法的具体用法?C++ X64Assembler::emitCR怎么用?C++ X64Assembler::emitCR使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在X64Assembler的用法示例。


在下文中一共展示了X64Assembler::emitCR方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: testEmitMethods


//.........这里部分代码省略.........
    if (supported_AM[i] & MASK_CI) {
      printf("  Address mode: CI\n");
      e.emitCI(op, CC_NE, 0xF1F1F1F1);
      e.emitCI(op, CC_G, 0xF1);
      e.emitCI(op, CC_S, -128);
      e.emitCI(op, CC_O, 127);
      e.emitCI(op, CC_O, 1);
    }

    if (supported_AM[i] & MASK_CMR) {
      printf("  Address mode: CMR\n");
      e.emitCMR(op, CC_NE, rsi, rdi, sz::word, -128, rax);
      e.emitCMR(op, CC_G, rbp, noreg, sz::dword, 127, rcx);
      e.emitCMR(op, CC_G, noreg, rbp, sz::byte, 127, rcx);
      e.emitCMR(op, CC_S, rsp, rbp, sz::qword, 0xF1, rbp);
      e.emitCMR(op, CC_O, noreg, noreg, sz::byte, 0xF1F1, rsp);
      e.emitCMR(op, CC_NE, rsi, rdi, sz::word, -128, r8);
      e.emitCMR(op, CC_G, rbp, noreg, sz::dword, 127, r9);
      e.emitCMR(op, CC_G, noreg, rbp, sz::byte, 127, r9);
      e.emitCMR(op, CC_S, rsp, rbp, sz::qword, 0xF1, r13);
      e.emitCMR(op, CC_O, noreg, noreg, sz::byte, 0xF1F1, r12);
      e.emitCMR(op, CC_NE, r14, rdi, sz::word, -128, rax);
      e.emitCMR(op, CC_G, r13, noreg, sz::dword, 127, rcx);
      e.emitCMR(op, CC_G, noreg, rbp, sz::byte, 127, rcx);
      e.emitCMR(op, CC_S, r12, rbp, sz::qword, 0xF1, rbp);
      e.emitCMR(op, CC_O, noreg, noreg, sz::byte, 0xF1F1, rsp);
      e.emitCMR(op, CC_NE, r14, rdi, sz::word, -128, r8);
      e.emitCMR(op, CC_G, r12, noreg, sz::dword, 127, r9);
      e.emitCMR(op, CC_G, noreg, rbp, sz::byte, 127, r9);
      e.emitCMR(op, CC_S, r12, rbp, sz::qword, 0xF1, r13);
      e.emitCMR(op, CC_O, noreg, noreg, sz::byte, 0xF1F1, r12);
    }

    if (supported_AM[i] & MASK_CR) {
      printf("  Address mode: CR\n");
      e.emitCR(op, CC_NE, rax);
      e.emitCR(op, CC_G, rcx);
      e.emitCR(op, CC_S, rbp);
      e.emitCR(op, CC_O, rsp);
      e.emitCR(op, CC_NE, r8);
      e.emitCR(op, CC_G, r9);
      e.emitCR(op, CC_S, r13);
      e.emitCR(op, CC_O, r12);
    }

    if (supported_AM[i] & MASK_CM) {
      printf("  Address mode: CM\n");
      e.emitCM(op, CC_NE, rsi, rdi, sz::word, -128);
      e.emitCM(op, CC_G, rbp, noreg, sz::dword, 127);
      e.emitCM(op, CC_G, noreg, rbp, sz::byte, 127);
      e.emitCM(op, CC_S, rsp, rbp, sz::qword, 0xF1);
      e.emitCM(op, CC_S, rbp, rbp, sz::qword, 0xF1);
      e.emitCM(op, CC_O, noreg, noreg, sz::byte, 0xF1F1);
      e.emitCM(op, CC_NE, rsi, r15, sz::word, -128);
      e.emitCM(op, CC_G, rbp, noreg, sz::dword, 127);
      e.emitCM(op, CC_G, noreg, r13, sz::byte, 127);
      e.emitCM(op, CC_S, rsp, r13, sz::qword, 0xF1);
      e.emitCM(op, CC_O, noreg, noreg, sz::byte, 0xF1F1);
      e.emitCM(op, CC_NE, r14, rdi, sz::word, -128);
      e.emitCM(op, CC_G, r13, noreg, sz::dword, 127);
      e.emitCM(op, CC_G, noreg, rbp, sz::byte, 127);
      e.emitCM(op, CC_S, r12, rbp, sz::qword, 0xF1);
      e.emitCM(op, CC_O, noreg, noreg, sz::byte, 0xF1F1);
      e.emitCM(op, CC_NE, r14, r15, sz::word, -128);
      e.emitCM(op, CC_G, r13, noreg, sz::dword, 127);
      e.emitCM(op, CC_G, noreg, r13, sz::byte, 127);
      e.emitCM(op, CC_S, r12, r13, sz::qword, 0xF1);
      e.emitCM(op, CC_O, noreg, noreg, sz::byte, 0xF1F1);
    }

    if (supported_AM[i] & MASK_CRR) {
      printf("  Address mode: CRR\n");
      e.emitCRR(op, CC_NE, rsi, rax);
      e.emitCRR(op, CC_G, rax, rdi);
      e.emitCRR(op, CC_S, rsi, rdi);
      e.emitCRR(op, CC_O, rbp, rsp);
      e.emitCRR(op, CC_E, rsp, rbp);
      e.emitCRR(op, CC_NP, rsi, r8);
      e.emitCRR(op, CC_P, rax, r15);
      e.emitCRR(op, CC_L, rsi, r15);
      e.emitCRR(op, CC_LE, rbp, r12);
      e.emitCRR(op, CC_BE, rsp, r13);
      e.emitCRR(op, CC_NO, r14, rax);
      e.emitCRR(op, CC_NS, r8, rdi);
      e.emitCRR(op, CC_NE, r14, rdi);
      e.emitCRR(op, CC_G, r13, rsp);
      e.emitCRR(op, CC_S, r12, rbp);
      e.emitCRR(op, CC_O, r14, r8);
      e.emitCRR(op, CC_E, r8, r15);
      e.emitCRR(op, CC_NP, r14, r15);
      e.emitCRR(op, CC_P, r13, r12);
      e.emitCRR(op, CC_L, r12, r13);
      e.emitCRR(op, CC_LE, rax, rax);
      e.emitCRR(op, CC_BE, rax, r8);
      e.emitCRR(op, CC_NO, r8, rax);
      e.emitCRR(op, CC_NS, r8, r8);
    }
    printf("\n");
  }
}
开发者ID:7755373049,项目名称:hiphop-php,代码行数:101,代码来源:asm-x64-test.cpp


注:本文中的X64Assembler::emitCR方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。