On Thu, Nov 12, 2020 at 09:21:44AM +0100, Peter Zijlstra wrote:
> Also, do you want something like:
> 
> unsigned long ftrace_regs_get_register(struct ftrace_regs *regs, unsigned int 
> offset)
> {

I forgot the full regs case:

        if (regs->regs.cs)
                return regs_get_register(regs->regs, offset);

>       switch (offset / sizeof(long)) {
>       case  4: /* RBP */
> 
>       case  8: /* R9  */
>       case  9: /* R8  */
>       case 10: /* RAX */
>       case 11: /* RCX */
>       case 12: /* RDX */
>       case 13: /* RSI */
>       case 14: /* RDI */
>       case 15: /* ORIG_RAX */
>       case 16: /* RIP */
>               return *(unsigned long *)regs->regs + offset;
> 
>       default:
>               WARN_ON_ONCE(1);
>       }
>       return 0;
> }

Reply via email to