[lkml]   [2009]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH][GIT PULL][v2.6.32] tracing/x86: Add check to detect GCC messing with mcount prologue
    On 11/24/2009 07:46 AM, Andrew Haley wrote:
    >> Yes, a lot. The difference is that -maccumulate-outgoing-args allocates
    >> space for arguments of the callee with most arguments in the prologue, using
    >> subtraction from sp, then to pass arguments uses movl XXX, 4(%esp) etc.
    >> and the stack pointer doesn't usually change within the function (except for
    >> alloca/VLAs).
    >> With -mno-accumulate-outgoing-args args are pushed using push instructions
    >> and stack pointer is constantly changing.
    > Alright. So, it is possible in theory for gcc to generate code that
    > only uses -maccumulate-outgoing-args when it needs to realign SP.
    > And, therefore, we could have a nice option for the kernel: one with
    > (mostly) good code density and never generates the bizarre code
    > sequence in the prologue.

    If we're changing gcc anyway, then let's add the option of intercepting
    the function at the point where the machine state is well-defined by
    ABI, which is before the function stack frame is set up.

    -maccumulate-outgoing-args sounds like it would be painful on x86 (not
    using its cheap push/pop instructions), but I guess since it's only when
    tracing it's less of an issue.


    H. Peter Anvin, Intel Open Source Technology Center
    I work for Intel. I don't speak on their behalf.

     \ /
      Last update: 2009-11-24 17:45    [W:0.034 / U:180.436 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site