Lines Matching defs:insn

196 prepare_emulated_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
201 u16 *thumb_insn = (u16 *)asi->insn;
205 return insn;
207 asi->insn[1] = __opcode_to_mem_arm(0xe12fff1e); /* ARM bx lr */
209 asi->insn[1] = __opcode_to_mem_arm(0xe1a0f00e); /* mov pc, lr */
212 if (insn < 0xe0000000)
213 insn = (insn | 0xe0000000) & ~0x10000000;
214 return insn;
222 set_emulated_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
227 u16 *ip = (u16 *)asi->insn;
228 if (is_wide_instruction(insn))
229 *ip++ = __opcode_to_mem_thumb16(insn >> 16);
230 *ip++ = __opcode_to_mem_thumb16(insn);
234 asi->insn[0] = __opcode_to_mem_arm(insn);
260 probes_opcode_t insn = *pinsn;
284 if ((insn ^ 0xdddddddd) & mask)
290 if ((insn ^ 0xffffffff) & mask)
296 if (((insn ^ 0xdddddddd) & mask) == 0)
303 if (((insn ^ 0xdddddddd) & 0xdddddddd & mask) == 0)
308 if (!is_writeback(insn))
314 if (((insn ^ 0xffffffff) & mask) == 0)
320 insn &= ~mask;
321 insn |= new_bits & mask;
325 *pinsn = insn;
343 int action, probes_opcode_t insn,
359 retval = checker_func(insn, asi, h);
396 * (insn & mask) == value
411 probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
420 * @insn can be modified by decode_regs. Save its original
423 probes_opcode_t origin_insn = insn;
443 insn = prepare_emulated_insn(insn, asi, thumb);
455 if (!matched && (insn & h->mask.bits) != h->value.bits)
458 if (!decode_regs(&insn, regs, emulate))
477 return actions[action].decoder(insn, asi, h);
502 return actions[action].decoder(insn, asi, h);
505 set_emulated_insn(insn, asi, thumb);