lkml.org 
[lkml]   [2012]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] x86-64: Fix CFI data for common_interrupt
    >>> Mark Wielaard <mjw@redhat.com> 02/21/12 11:08 PM >>>
    >On Tue, Feb 21, 2012 at 03:26:30PM +0000, Jan Beulich wrote:
    >> >>> On 21.02.12 at 15:43, Mark Wielaard <mjw@redhat.com> wrote:
    >> > For DW_CFA_def_register DWARF4 explicitly says so: "This operation is
    >> > valid only if the current CFA rule is defined to use a register and
    >> > offset." So one needs to use CFI_DEF_CFA with both a register and an
    >> > offset here after the def_cfa_expression.
    >>
    >> Hmm, that's in contrast to the gas implementation (but I'd certainly
    >> give the specification preference if it explicitly states so, so gas
    >> should at least emit a warning here rather than considering this
    >> valid).
    >
    >I am afraid gas cannot help us here. Since like you pointed out in your
    >patch:
    >
    >This requires the use of .cfi_escape (allowing arbitrary byte
    >streams to be emitted into .eh_frame), as there is no
    >.cfi_def_cfa_expression (which also cannot reasonably be
    >expected, as it would require a full expression parser).
    >
    >So we are on our own here.

    Hmm, yes, probably it wouldn't be nice if gas reset all its state when
    .cfi_escape is used.

    >> But provided the specification mandates this, I'm okay with the change
    >> in principle. Just that specifying an offset of 0 doesn't look right then.
    >
    >Yeah, I dunno what I was thinking. The offset should be set to the offset
    >that was there before when rsi was pushed. The attached patch does that
    >by using the same value as was used at the start of common_interrupt.
    >Does that look OK?

    I would have thought that it should be SS+8-RBP (as %rbp is at the top
    of the stack at that point). I can't verify this immediately, though, as I'm
    not in the office today.

    Jan



    \
     
     \ /
      Last update: 2012-02-22 09:07    [W:0.032 / U:1.564 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site