Lines Matching refs:instr
94 uint32_t *instr, *limit; in fbt_provide_module_function() local
100 instr = (uint32_t *)symval->value; in fbt_provide_module_function()
107 if ((*instr & 0xfffff000) == FBT_SUBSP) in fbt_provide_module_function()
108 instr++; in fbt_provide_module_function()
113 if ((*instr & 0xffff0000) != FBT_PUSHM || in fbt_provide_module_function()
114 (*instr & (1 << LR)) == 0) in fbt_provide_module_function()
121 fbt->fbtp_patchpoint = instr; in fbt_provide_module_function()
124 fbt->fbtp_savedval = *instr; in fbt_provide_module_function()
129 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; in fbt_provide_module_function()
130 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; in fbt_provide_module_function()
134 popm = FBT_POPM | ((*instr) & 0x3FFF) | 0x8000; in fbt_provide_module_function()
138 for (; instr < limit; instr++) { in fbt_provide_module_function()
139 if (*instr == popm) in fbt_provide_module_function()
141 else if ((*instr & 0xff000000) == FBT_JUMP) { in fbt_provide_module_function()
145 offset = (*instr & 0xffffff); in fbt_provide_module_function()
148 target = instr + (2 + offset); in fbt_provide_module_function()
155 if (instr >= limit) in fbt_provide_module_function()
172 fbt->fbtp_patchpoint = instr; in fbt_provide_module_function()
176 if ((*instr & 0xff000000) == FBT_JUMP) in fbt_provide_module_function()
180 fbt->fbtp_roffset = (uintptr_t)instr - (uintptr_t)symval->value; in fbt_provide_module_function()
181 fbt->fbtp_savedval = *instr; in fbt_provide_module_function()
183 fbt->fbtp_hashnext = fbt_probetab[FBT_ADDR2NDX(instr)]; in fbt_provide_module_function()
184 fbt_probetab[FBT_ADDR2NDX(instr)] = fbt; in fbt_provide_module_function()
188 instr++; in fbt_provide_module_function()