SgAsmX86Instruction* buildX86MultibyteNopInstruction(size_t nBytes) { ASSERT_require(nBytes > 0); ASSERT_require(nBytes <= 9); SgAsmX86Instruction *instruction = new SgAsmX86Instruction(0, "nop", x86_nop, x86_insnsize_32, x86_insnsize_32, x86_insnsize_32); // Build a simple version of multi-byte nop using repeated prefixes. SgUnsignedCharList insnbuf; for (size_t i = 1; i < nBytes; i++) insnbuf.push_back(0x66); insnbuf.push_back(0x90); instruction->set_raw_bytes(insnbuf); instruction->set_lockPrefix(false); instruction->set_repeatPrefix(x86_repeat_none); SgAsmOperandList *operands = new SgAsmOperandList(); instruction->set_operandList(operands); operands->set_parent(instruction); return instruction; }