Lines Matching refs:X86
36 return Reg == X86::RSP || Reg == X86::ESP || Reg == X86::SP; in IsStackReg()
104 case X86::MOV8mi: in InstrumentMOV()
105 case X86::MOV8mr: in InstrumentMOV()
106 case X86::MOV8rm: in InstrumentMOV()
109 case X86::MOV16mi: in InstrumentMOV()
110 case X86::MOV16mr: in InstrumentMOV()
111 case X86::MOV16rm: in InstrumentMOV()
114 case X86::MOV32mi: in InstrumentMOV()
115 case X86::MOV32mr: in InstrumentMOV()
116 case X86::MOV32rm: in InstrumentMOV()
119 case X86::MOV64mi32: in InstrumentMOV()
120 case X86::MOV64mr: in InstrumentMOV()
121 case X86::MOV64rm: in InstrumentMOV()
124 case X86::MOVAPDmr: in InstrumentMOV()
125 case X86::MOVAPSmr: in InstrumentMOV()
126 case X86::MOVAPDrm: in InstrumentMOV()
127 case X86::MOVAPSrm: in InstrumentMOV()
161 EmitInstruction(Out, MCInstBuilder(X86::CLD)); in EmitCallAsanReport()
162 EmitInstruction(Out, MCInstBuilder(X86::MMX_EMMS)); in EmitCallAsanReport()
164 EmitInstruction(Out, MCInstBuilder(X86::AND64ri8).addReg(X86::ESP) in EmitCallAsanReport()
165 .addReg(X86::ESP).addImm(-16)); in EmitCallAsanReport()
166 EmitInstruction(Out, MCInstBuilder(X86::PUSH32r).addReg(AddressReg)); in EmitCallAsanReport()
173 EmitInstruction(Out, MCInstBuilder(X86::CALLpcrel32).addExpr(FnExpr)); in EmitCallAsanReport()
180 EmitInstruction(Out, MCInstBuilder(X86::PUSH32r).addReg(X86::EAX)); in InstrumentMemOperandSmallImpl()
181 EmitInstruction(Out, MCInstBuilder(X86::PUSH32r).addReg(X86::ECX)); in InstrumentMemOperandSmallImpl()
182 EmitInstruction(Out, MCInstBuilder(X86::PUSH32r).addReg(X86::EDX)); in InstrumentMemOperandSmallImpl()
183 EmitInstruction(Out, MCInstBuilder(X86::PUSHF32)); in InstrumentMemOperandSmallImpl()
187 Inst.setOpcode(X86::LEA32r); in InstrumentMemOperandSmallImpl()
188 Inst.addOperand(MCOperand::CreateReg(X86::EAX)); in InstrumentMemOperandSmallImpl()
194 Out, MCInstBuilder(X86::MOV32rr).addReg(X86::ECX).addReg(X86::EAX)); in InstrumentMemOperandSmallImpl()
195 EmitInstruction(Out, MCInstBuilder(X86::SHR32ri).addReg(X86::ECX) in InstrumentMemOperandSmallImpl()
196 .addReg(X86::ECX).addImm(3)); in InstrumentMemOperandSmallImpl()
200 Inst.setOpcode(X86::MOV8rm); in InstrumentMemOperandSmallImpl()
201 Inst.addOperand(MCOperand::CreateReg(X86::CL)); in InstrumentMemOperandSmallImpl()
204 X86Operand::CreateMem(0, Disp, X86::ECX, 0, 1, SMLoc(), SMLoc())); in InstrumentMemOperandSmallImpl()
210 MCInstBuilder(X86::TEST8rr).addReg(X86::CL).addReg(X86::CL)); in InstrumentMemOperandSmallImpl()
213 EmitInstruction(Out, MCInstBuilder(X86::JE_4).addExpr(DoneExpr)); in InstrumentMemOperandSmallImpl()
216 Out, MCInstBuilder(X86::MOV32rr).addReg(X86::EDX).addReg(X86::EAX)); in InstrumentMemOperandSmallImpl()
217 EmitInstruction(Out, MCInstBuilder(X86::AND32ri).addReg(X86::EDX) in InstrumentMemOperandSmallImpl()
218 .addReg(X86::EDX).addImm(7)); in InstrumentMemOperandSmallImpl()
225 Inst.setOpcode(X86::LEA32r); in InstrumentMemOperandSmallImpl()
226 Inst.addOperand(MCOperand::CreateReg(X86::EDX)); in InstrumentMemOperandSmallImpl()
230 X86Operand::CreateMem(0, Disp, X86::EDX, 0, 1, SMLoc(), SMLoc())); in InstrumentMemOperandSmallImpl()
236 EmitInstruction(Out, MCInstBuilder(X86::ADD32ri8).addReg(X86::EDX) in InstrumentMemOperandSmallImpl()
237 .addReg(X86::EDX).addImm(3)); in InstrumentMemOperandSmallImpl()
245 Out, MCInstBuilder(X86::MOVSX32rr8).addReg(X86::ECX).addReg(X86::CL)); in InstrumentMemOperandSmallImpl()
247 Out, MCInstBuilder(X86::CMP32rr).addReg(X86::EDX).addReg(X86::ECX)); in InstrumentMemOperandSmallImpl()
248 EmitInstruction(Out, MCInstBuilder(X86::JL_4).addExpr(DoneExpr)); in InstrumentMemOperandSmallImpl()
250 EmitCallAsanReport(Ctx, Out, AccessSize, IsWrite, X86::EAX); in InstrumentMemOperandSmallImpl()
253 EmitInstruction(Out, MCInstBuilder(X86::POPF32)); in InstrumentMemOperandSmallImpl()
254 EmitInstruction(Out, MCInstBuilder(X86::POP32r).addReg(X86::EDX)); in InstrumentMemOperandSmallImpl()
255 EmitInstruction(Out, MCInstBuilder(X86::POP32r).addReg(X86::ECX)); in InstrumentMemOperandSmallImpl()
256 EmitInstruction(Out, MCInstBuilder(X86::POP32r).addReg(X86::EAX)); in InstrumentMemOperandSmallImpl()
262 EmitInstruction(Out, MCInstBuilder(X86::PUSH32r).addReg(X86::EAX)); in InstrumentMemOperandLargeImpl()
263 EmitInstruction(Out, MCInstBuilder(X86::PUSH32r).addReg(X86::ECX)); in InstrumentMemOperandLargeImpl()
264 EmitInstruction(Out, MCInstBuilder(X86::PUSHF32)); in InstrumentMemOperandLargeImpl()
268 Inst.setOpcode(X86::LEA32r); in InstrumentMemOperandLargeImpl()
269 Inst.addOperand(MCOperand::CreateReg(X86::EAX)); in InstrumentMemOperandLargeImpl()
274 Out, MCInstBuilder(X86::MOV32rr).addReg(X86::ECX).addReg(X86::EAX)); in InstrumentMemOperandLargeImpl()
275 EmitInstruction(Out, MCInstBuilder(X86::SHR32ri).addReg(X86::ECX) in InstrumentMemOperandLargeImpl()
276 .addReg(X86::ECX).addImm(3)); in InstrumentMemOperandLargeImpl()
281 Inst.setOpcode(X86::CMP8mi); in InstrumentMemOperandLargeImpl()
284 Inst.setOpcode(X86::CMP16mi); in InstrumentMemOperandLargeImpl()
292 X86Operand::CreateMem(0, Disp, X86::ECX, 0, 1, SMLoc(), SMLoc())); in InstrumentMemOperandLargeImpl()
299 EmitInstruction(Out, MCInstBuilder(X86::JE_4).addExpr(DoneExpr)); in InstrumentMemOperandLargeImpl()
301 EmitCallAsanReport(Ctx, Out, AccessSize, IsWrite, X86::EAX); in InstrumentMemOperandLargeImpl()
304 EmitInstruction(Out, MCInstBuilder(X86::POPF32)); in InstrumentMemOperandLargeImpl()
305 EmitInstruction(Out, MCInstBuilder(X86::POP32r).addReg(X86::ECX)); in InstrumentMemOperandLargeImpl()
306 EmitInstruction(Out, MCInstBuilder(X86::POP32r).addReg(X86::EAX)); in InstrumentMemOperandLargeImpl()
327 Inst.setOpcode(X86::LEA64r); in EmitAdjustRSP()
328 Inst.addOperand(MCOperand::CreateReg(X86::RSP)); in EmitAdjustRSP()
332 X86Operand::CreateMem(0, Disp, X86::RSP, 0, 1, SMLoc(), SMLoc())); in EmitAdjustRSP()
339 EmitInstruction(Out, MCInstBuilder(X86::CLD)); in EmitCallAsanReport()
340 EmitInstruction(Out, MCInstBuilder(X86::MMX_EMMS)); in EmitCallAsanReport()
342 EmitInstruction(Out, MCInstBuilder(X86::AND64ri8).addReg(X86::RSP) in EmitCallAsanReport()
343 .addReg(X86::RSP).addImm(-16)); in EmitCallAsanReport()
349 EmitInstruction(Out, MCInstBuilder(X86::CALL64pcrel32).addExpr(FnExpr)); in EmitCallAsanReport()
357 EmitInstruction(Out, MCInstBuilder(X86::PUSH64r).addReg(X86::RAX)); in InstrumentMemOperandSmallImpl()
358 EmitInstruction(Out, MCInstBuilder(X86::PUSH64r).addReg(X86::RCX)); in InstrumentMemOperandSmallImpl()
359 EmitInstruction(Out, MCInstBuilder(X86::PUSH64r).addReg(X86::RDI)); in InstrumentMemOperandSmallImpl()
360 EmitInstruction(Out, MCInstBuilder(X86::PUSHF64)); in InstrumentMemOperandSmallImpl()
363 Inst.setOpcode(X86::LEA64r); in InstrumentMemOperandSmallImpl()
364 Inst.addOperand(MCOperand::CreateReg(X86::RDI)); in InstrumentMemOperandSmallImpl()
369 Out, MCInstBuilder(X86::MOV64rr).addReg(X86::RAX).addReg(X86::RDI)); in InstrumentMemOperandSmallImpl()
370 EmitInstruction(Out, MCInstBuilder(X86::SHR64ri).addReg(X86::RAX) in InstrumentMemOperandSmallImpl()
371 .addReg(X86::RAX).addImm(3)); in InstrumentMemOperandSmallImpl()
374 Inst.setOpcode(X86::MOV8rm); in InstrumentMemOperandSmallImpl()
375 Inst.addOperand(MCOperand::CreateReg(X86::AL)); in InstrumentMemOperandSmallImpl()
378 X86Operand::CreateMem(0, Disp, X86::RAX, 0, 1, SMLoc(), SMLoc())); in InstrumentMemOperandSmallImpl()
384 MCInstBuilder(X86::TEST8rr).addReg(X86::AL).addReg(X86::AL)); in InstrumentMemOperandSmallImpl()
387 EmitInstruction(Out, MCInstBuilder(X86::JE_4).addExpr(DoneExpr)); in InstrumentMemOperandSmallImpl()
390 Out, MCInstBuilder(X86::MOV32rr).addReg(X86::ECX).addReg(X86::EDI)); in InstrumentMemOperandSmallImpl()
391 EmitInstruction(Out, MCInstBuilder(X86::AND32ri).addReg(X86::ECX) in InstrumentMemOperandSmallImpl()
392 .addReg(X86::ECX).addImm(7)); in InstrumentMemOperandSmallImpl()
399 Inst.setOpcode(X86::LEA32r); in InstrumentMemOperandSmallImpl()
400 Inst.addOperand(MCOperand::CreateReg(X86::ECX)); in InstrumentMemOperandSmallImpl()
404 X86Operand::CreateMem(0, Disp, X86::ECX, 0, 1, SMLoc(), SMLoc())); in InstrumentMemOperandSmallImpl()
410 EmitInstruction(Out, MCInstBuilder(X86::ADD32ri8).addReg(X86::ECX) in InstrumentMemOperandSmallImpl()
411 .addReg(X86::ECX).addImm(3)); in InstrumentMemOperandSmallImpl()
419 Out, MCInstBuilder(X86::MOVSX32rr8).addReg(X86::EAX).addReg(X86::AL)); in InstrumentMemOperandSmallImpl()
421 Out, MCInstBuilder(X86::CMP32rr).addReg(X86::ECX).addReg(X86::EAX)); in InstrumentMemOperandSmallImpl()
422 EmitInstruction(Out, MCInstBuilder(X86::JL_4).addExpr(DoneExpr)); in InstrumentMemOperandSmallImpl()
427 EmitInstruction(Out, MCInstBuilder(X86::POPF64)); in InstrumentMemOperandSmallImpl()
428 EmitInstruction(Out, MCInstBuilder(X86::POP64r).addReg(X86::RDI)); in InstrumentMemOperandSmallImpl()
429 EmitInstruction(Out, MCInstBuilder(X86::POP64r).addReg(X86::RCX)); in InstrumentMemOperandSmallImpl()
430 EmitInstruction(Out, MCInstBuilder(X86::POP64r).addReg(X86::RAX)); in InstrumentMemOperandSmallImpl()
438 EmitInstruction(Out, MCInstBuilder(X86::PUSH64r).addReg(X86::RAX)); in InstrumentMemOperandLargeImpl()
439 EmitInstruction(Out, MCInstBuilder(X86::PUSHF64)); in InstrumentMemOperandLargeImpl()
443 Inst.setOpcode(X86::LEA64r); in InstrumentMemOperandLargeImpl()
444 Inst.addOperand(MCOperand::CreateReg(X86::RAX)); in InstrumentMemOperandLargeImpl()
448 EmitInstruction(Out, MCInstBuilder(X86::SHR64ri).addReg(X86::RAX) in InstrumentMemOperandLargeImpl()
449 .addReg(X86::RAX).addImm(3)); in InstrumentMemOperandLargeImpl()
454 Inst.setOpcode(X86::CMP8mi); in InstrumentMemOperandLargeImpl()
457 Inst.setOpcode(X86::CMP16mi); in InstrumentMemOperandLargeImpl()
465 X86Operand::CreateMem(0, Disp, X86::RAX, 0, 1, SMLoc(), SMLoc())); in InstrumentMemOperandLargeImpl()
473 EmitInstruction(Out, MCInstBuilder(X86::JE_4).addExpr(DoneExpr)); in InstrumentMemOperandLargeImpl()
478 EmitInstruction(Out, MCInstBuilder(X86::POPF64)); in InstrumentMemOperandLargeImpl()
479 EmitInstruction(Out, MCInstBuilder(X86::POP64r).addReg(X86::RAX)); in InstrumentMemOperandLargeImpl()
499 if ((STI.getFeatureBits() & X86::Mode32Bit) != 0) in CreateX86AsmInstrumentation()
501 if ((STI.getFeatureBits() & X86::Mode64Bit) != 0) in CreateX86AsmInstrumentation()