static inline bool csky_insn_reg_get_val()

in kernel/probes/simulate-insn.c [10:37]


static inline bool csky_insn_reg_get_val(struct pt_regs *regs,
					 unsigned long index,
					 unsigned long *ptr)
{
	if (index < 14)
		*ptr = *(&regs->a0 + index);

	if (index > 15 && index < 31)
		*ptr = *(&regs->exregs[0] + index - 16);

	switch (index) {
	case 14:
		*ptr = regs->usp;
		break;
	case 15:
		*ptr = regs->lr;
		break;
	case 31:
		*ptr = regs->tls;
		break;
	default:
		goto fail;
	}

	return true;
fail:
	return false;
}