Lines Matching defs:instr
205 uint8_t *instr, *limit;
284 instr = (uint8_t *)sym->st_value;
288 while (instr < limit) {
289 if (*instr == FBT_PUSHL_EBP)
292 if ((size = dtrace_instr_size(instr)) <= 0)
295 instr += size;
298 if (instr >= limit || *instr != FBT_PUSHL_EBP) {
307 if (instr[0] != FBT_PUSHL_EBP)
310 if (!(instr[1] == FBT_MOVL_ESP_EBP0_V0 &&
311 instr[2] == FBT_MOVL_ESP_EBP1_V0) &&
312 !(instr[1] == FBT_MOVL_ESP_EBP0_V1 &&
313 instr[2] == FBT_MOVL_ESP_EBP1_V1))
321 fbt->fbtp_patchpoint = instr;
325 fbt->fbtp_savedval = *instr;
328 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
330 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
336 if (instr >= limit)
344 if ((size = dtrace_instr_size(instr)) <= 0)
353 if (*instr != FBT_RET) {
354 instr += size;
359 (*instr == FBT_POPL_EBP || *instr == FBT_LEAVE) &&
360 (*(instr + 1) == FBT_RET ||
361 *(instr + 1) == FBT_RET_IMM16))) {
362 instr += size;
379 uintptr_t check = (uintptr_t)instr - j;
391 instr += size;
411 fbt->fbtp_patchpoint = instr;
416 if (*instr == FBT_POPL_EBP) {
419 ASSERT(*instr == FBT_LEAVE);
423 (uintptr_t)(instr - (uint8_t *)sym->st_value) + 1;
426 ASSERT(*instr == FBT_RET);
429 (uintptr_t)(instr - (uint8_t *)sym->st_value);
432 fbt->fbtp_savedval = *instr;
434 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
436 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
440 instr += size;