void NaClAddRepPrefixFlagsIfApplicable() {
  if (NaClInInstructionSet(kAllowableRepMnemonic,
                           NACL_ARRAY_SIZE(kAllowableRepMnemonic),
                           kAllowableRepMnemonicOpseq,
                           NACL_ARRAY_SIZE(kAllowableRepMnemonicOpseq))) {
    NaClAddIFlags(NACL_IFLAG(OpcodeAllowsRep));
  }
  if (NaClInInstructionSet(kAllowableRepneMnemonic,
                           NACL_ARRAY_SIZE(kAllowableRepneMnemonic),
                           NULL, 0)) {
    NaClAddIFlags(NACL_IFLAG(OpcodeAllowsRepne));
  }
}
/* Add OperandZeroExtends_v instruction flag if applicable. */
void NaClAddZeroExtend32FlagIfApplicable(void) {
  if ((X86_64 == NACL_FLAGS_run_mode) &&
      NaClInInstructionSet(kZeroExtend32Op,
                           NACL_ARRAY_SIZE(kZeroExtend32Op),
                           kZeroExtend32Opseq,
                           NACL_ARRAY_SIZE(kZeroExtend32Opseq))) {
    AddZeroExtendToOpDestArgs(NaClGetDefInst());
  }
}
Esempio n. 3
0
/* Add LongMode instruction flag if applicable. */
void NaClAddLongModeIfApplicable() {
  if (NaClInInstructionSet(kLongModeOp, NACL_ARRAY_SIZE(kLongModeOp),
                           NULL, 0)) {
    NaClAddIFlags(NACL_IFLAG(LongMode));
  }
}
static void NaClAddJumpFlags(NaClIFlag flag, const NaClMnemonic* name,
                             size_t name_size) {
  if (NaClInInstructionSet(name, name_size, NULL, 0)) {
    NaClGetDefInst()->flags |= NACL_IFLAG(flag);
  }
}