Home | History | Annotate | Download | only in tsan

Lines Matching refs:instr

232                              instr_t *instr, opnd_t opnd, bool is_w) {
242 dr_save_reg(drcontext, bb, instr, reg, SPILL_SLOT_2);
261 instrlist_meta_preinsert(bb, instr, tmp_instr);
264 dr_insert_clean_call(drcontext, bb, instr, callback, false,
266 OPND_CREATE_INTPTR(instr_get_app_pc(instr)),
270 dr_restore_reg(drcontext, bb, instr, REG_XAX, SPILL_SLOT_2);
277 instrlist_t *bb, instr_t *instr) {
279 for (int a = 0; a < instr_num_srcs(instr); a++) {
280 opnd_t curop = instr_get_src(instr, a);
282 InstrumentOneMop(drcontext, bb, instr, curop, false);
286 for (int a = 0; a < instr_num_dsts(instr); a++) {
287 opnd_t curop = instr_get_dst(instr, a);
289 InstrumentOneMop(drcontext, bb, instr, curop, true);
296 instr_t *instr) {
297 // instr_disassemble(drcontext, instr, 1);
299 if (instr_is_call_direct(instr)) {
300 dr_insert_call_instrumentation(drcontext, bb, instr,
302 } else if (instr_is_call_indirect(instr)) {
303 dr_insert_mbr_instrumentation(drcontext, bb, instr,
306 } else if (instr_reads_memory(instr) || instr_writes_memory(instr)) {
307 InstrumentMopInstruction(drcontext, bb, instr);
314 for (instr_t *instr = instrlist_first(trace); instr != NULL;
315 instr = instr_get_next(instr)) {
316 if (instr_get_app_pc(instr)) {
317 first_instr = instr;
418 instr_t *instr, *next_instr;
419 for (instr = instrlist_first(bb); instr != NULL; instr = next_instr) {
420 next_instr = instr_get_next(instr);
421 if (instr_get_app_pc(instr)) // don't instrument non-app code
422 InstrumentInstruction(drcontext, bb, instr);