Lines Matching refs:insn

70 	const unsigned long *insn;	/* pointer to the current instructions word */  member
232 ret = (*ctrl->insn >> (ctrl->byte * 8)) & 0xff; in unwind_get_byte()
235 ctrl->insn++; in unwind_get_byte()
278 unsigned long insn) in unwind_exec_pop_r4_to_rN() argument
284 for (reg = 4; reg <= 4 + (insn & 7); reg++) in unwind_exec_pop_r4_to_rN()
288 if (insn & 0x8) in unwind_exec_pop_r4_to_rN()
321 unsigned long insn = unwind_get_byte(ctrl); in unwind_exec_insn() local
324 pr_debug("%s: insn = %08lx\n", __func__, insn); in unwind_exec_insn()
326 if ((insn & 0xc0) == 0x00) in unwind_exec_insn()
327 ctrl->vrs[SP] += ((insn & 0x3f) << 2) + 4; in unwind_exec_insn()
328 else if ((insn & 0xc0) == 0x40) in unwind_exec_insn()
329 ctrl->vrs[SP] -= ((insn & 0x3f) << 2) + 4; in unwind_exec_insn()
330 else if ((insn & 0xf0) == 0x80) { in unwind_exec_insn()
333 insn = (insn << 8) | unwind_get_byte(ctrl); in unwind_exec_insn()
334 mask = insn & 0x0fff; in unwind_exec_insn()
337 insn); in unwind_exec_insn()
344 } else if ((insn & 0xf0) == 0x90 && in unwind_exec_insn()
345 (insn & 0x0d) != 0x0d) in unwind_exec_insn()
346 ctrl->vrs[SP] = ctrl->vrs[insn & 0x0f]; in unwind_exec_insn()
347 else if ((insn & 0xf0) == 0xa0) { in unwind_exec_insn()
348 ret = unwind_exec_pop_r4_to_rN(ctrl, insn); in unwind_exec_insn()
351 } else if (insn == 0xb0) { in unwind_exec_insn()
356 } else if (insn == 0xb1) { in unwind_exec_insn()
361 (insn << 8) | mask); in unwind_exec_insn()
368 } else if (insn == 0xb2) { in unwind_exec_insn()
373 pr_warn("unwind: Unhandled instruction %02lx\n", insn); in unwind_exec_insn()
415 if (idx->insn == 1) in unwind_frame()
418 else if ((idx->insn & 0x80000000) == 0) in unwind_frame()
420 ctrl.insn = (unsigned long *)prel31_to_addr(&idx->insn); in unwind_frame()
421 else if ((idx->insn & 0xff000000) == 0x80000000) in unwind_frame()
423 ctrl.insn = &idx->insn; in unwind_frame()
426 idx->insn, idx); in unwind_frame()
431 if ((*ctrl.insn & 0xff000000) == 0x80000000) { in unwind_frame()
434 } else if ((*ctrl.insn & 0xff000000) == 0x81000000) { in unwind_frame()
436 ctrl.entries = 1 + ((*ctrl.insn & 0x00ff0000) >> 16); in unwind_frame()
439 *ctrl.insn, ctrl.insn); in unwind_frame()