static inline bool csky_insn_reg_set_val()

in kernel/probes/simulate-insn.c [39:66]


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

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

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

	return true;
fail:
	return false;
}