Lines Matching defs:instr
186 uint8_t *instr, *limit;
200 instr = (uint8_t *) symval->value;
204 while (instr < limit) {
205 if (*instr == FBT_PUSHL_EBP)
208 if ((size = dtrace_instr_size(instr)) <= 0)
211 instr += size;
214 if (instr >= limit || *instr != FBT_PUSHL_EBP) {
223 if (instr[0] != FBT_PUSHL_EBP)
226 if (!(instr[1] == FBT_MOVL_ESP_EBP0_V0 &&
227 instr[2] == FBT_MOVL_ESP_EBP1_V0) &&
228 !(instr[1] == FBT_MOVL_ESP_EBP0_V1 &&
229 instr[2] == FBT_MOVL_ESP_EBP1_V1))
237 fbt->fbtp_patchpoint = instr;
241 fbt->fbtp_savedval = *instr;
245 for (hash = fbt_probetab[FBT_ADDR2NDX(instr)]; hash != NULL;
254 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
255 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
262 if (instr >= limit)
270 if ((size = dtrace_instr_size(instr)) <= 0)
279 if (*instr != FBT_RET) {
280 instr += size;
285 (*instr == FBT_POPL_EBP || *instr == FBT_LEAVE) &&
286 (*(instr + 1) == FBT_RET ||
287 *(instr + 1) == FBT_RET_IMM16))) {
288 instr += size;
305 caddr_t check = (caddr_t) instr - j;
317 instr += size;
337 fbt->fbtp_patchpoint = instr;
343 if (*instr == FBT_POPL_EBP) {
346 ASSERT(*instr == FBT_LEAVE);
350 (uintptr_t)(instr - (uint8_t *) symval->value) + 1;
353 ASSERT(*instr == FBT_RET);
356 (uintptr_t)(instr - (uint8_t *) symval->value);
359 fbt->fbtp_savedval = *instr;
361 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
362 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
366 instr += size;