lkml.org 
[lkml]   [2015]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Avoiding unnecessary jump relocations in gas?
    From
    Date
    Okay, let's go with it. that also let us merge this constant with the length of the array in the C header file.

    On May 20, 2015 2:47:10 PM PDT, Andy Lutomirski <luto@amacapital.net> wrote:
    >On Wed, May 20, 2015 at 1:59 PM, H. Peter Anvin <hpa@zytor.com> wrote:
    >> On 05/20/2015 01:53 PM, Andy Lutomirski wrote:
    >>> Egads. Now I understand what that code is. I don't like the
    >balign,
    >>> since this has nothing to do with alignment -- we're creating an
    >array
    >>> of functions.
    >>
    >> Actually it does... we align to the beginning of each slot. If
    >.balign
    >> could be something other than a power of 2 that would work, too.
    >
    >When I see "align", I think that we want to align to a multiple of X
    >but we don't particularly care which multiple of X. Here we want a
    >specific address and any other address would be an error.
    >
    >>
    >> I was mostly looking to minimize the amount of gas magic we rely on.
    >>
    >>> Can't we make it explicit?
    >>>
    >>> #define EARLY_IDT_HANDLER_STRIDE 9
    >>>
    >>> ...
    >>>
    >>> .rept NUM_EXCEPTION_VECTORS
    >>> . = early_idt_handlers + i * EARLY_IDT_HANDLER_STRIDE
    >>> .if (EXCEPTION_ERRCODE_MASK >> i) & 1
    >>> ASM_NOP2
    >>> .else
    >>> pushl $0 # Dummy error code, to make stack frame uniform
    >>> .endif
    >>> pushl $i # 20(%esp) Vector number
    >>> jmp early_idt_handler
    >>> i = i + 1
    >>> .endr
    >>>
    >>> gas will error out if we try to move . backwards, so this should be
    >safe.
    >>
    >> If that works too with all the versions of gas we care about, that
    >would
    >> be fine (and I do appreciate the explicitness.) However, .[b]align
    >is
    >> something that will have been well exercised in every version of gas,
    >so
    >> I do feel slightly safer with it.
    >
    >I have no idea how to easily test my approach on really old binutils
    >versions, but I'm reasonably confident that assigning to . is common.
    >
    >--Andy

    --
    Sent from my mobile phone. Please pardon brevity and lack of formatting.


    \
     
     \ /
      Last update: 2015-05-21 00:21    [W:4.236 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site