Lines Matching refs:instr
172 uint8_t *instr, *limit;
186 instr = (uint8_t *) symval->value;
190 while (instr < limit) {
191 if (*instr == FBT_PUSHL_EBP)
194 if ((size = dtrace_instr_size(instr)) <= 0)
197 instr += size;
200 if (instr >= limit || *instr != FBT_PUSHL_EBP) {
209 if (instr[0] != FBT_PUSHL_EBP)
212 if (!(instr[1] == FBT_MOVL_ESP_EBP0_V0 &&
213 instr[2] == FBT_MOVL_ESP_EBP1_V0) &&
214 !(instr[1] == FBT_MOVL_ESP_EBP0_V1 &&
215 instr[2] == FBT_MOVL_ESP_EBP1_V1))
223 fbt->fbtp_patchpoint = instr;
227 fbt->fbtp_savedval = *instr;
231 for (hash = fbt_probetab[FBT_ADDR2NDX(instr)]; hash != NULL;
240 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
241 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
248 if (instr >= limit)
256 if ((size = dtrace_instr_size(instr)) <= 0)
265 if (*instr != FBT_RET) {
266 instr += size;
271 (*instr == FBT_POPL_EBP || *instr == FBT_LEAVE) &&
272 (*(instr + 1) == FBT_RET ||
273 *(instr + 1) == FBT_RET_IMM16))) {
274 instr += size;
291 caddr_t check = (caddr_t) instr - j;
303 instr += size;
323 fbt->fbtp_patchpoint = instr;
329 if (*instr == FBT_POPL_EBP) {
332 ASSERT(*instr == FBT_LEAVE);
336 (uintptr_t)(instr - (uint8_t *) symval->value) + 1;
339 ASSERT(*instr == FBT_RET);
342 (uintptr_t)(instr - (uint8_t *) symval->value);
345 fbt->fbtp_savedval = *instr;
347 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)];
348 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt;
352 instr += size;