On Thu, 16 Mar 2017 15:19:32 -0400
Steven Rostedt <[email protected]> wrote:
> 
> 
> The thing is we don't return, we jump to the location that may be
> modified to run the function graph tracer.

That said, maybe the below is better?

        /* restore flags */
        pushl   14*4(%esp)
        popf

        /* Move return ip back to its original location */
        movl    12*4(%esp), %eax
        movl    %eax, 14*4(%esp)

        popl    %ebx
        popl    %ecx
        popl    %edx
        popl    %esi
        popl    %edi
        popl    %ebp
        popl    %eax
        popl    %ds
        popl    %es
        popl    %fs
        popl    %gs

        /* use lea to not affect flags */
        lea     (3*4)%esp, %esp                 /* Skip orig_ax, ip and flags */

        jmp     .Lftrace_ret

-- Steve

Reply via email to