lkml.org 
[lkml]   [2018]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 1/4] x86/alternatives: Add macro comments
    Date
    From: Borislav Petkov <bp@suse.de>

    ... so that when one stares at the .s output, one can find her way
    around the resulting asm magic.

    For example, ALTERNATIVE looks like this now:

    # ALT: oldnstr
    661:
    ...
    662:
    # ALT: padding
    .skip ...
    663:
    .pushsection .altinstructions,"a"

    ...

    .popsection
    .pushsection .altinstr_replacement, "ax"
    # ALT: replacement 1
    6641:
    ...
    6651:
    .popsection

    Merge __OLDINSTR() into OLDINSTR(), while at it.

    No functional changes.

    Signed-off-by: Borislav Petkov <bp@suse.de>
    ---
    arch/x86/include/asm/alternative.h | 16 +++++++++-------
    1 file changed, 9 insertions(+), 7 deletions(-)

    diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
    index d7faa16622d8..8d38b296a18a 100644
    --- a/arch/x86/include/asm/alternative.h
    +++ b/arch/x86/include/asm/alternative.h
    @@ -87,13 +87,12 @@ static inline int alternatives_text_reserved(void *start, void *end)
    #define alt_total_slen alt_end_marker"b-661b"
    #define alt_rlen(num) e_replacement(num)"f-"b_replacement(num)"f"

    -#define __OLDINSTR(oldinstr, num) \
    +#define OLDINSTR(oldinstr, num) \
    + "# ALT: oldnstr\n" \
    "661:\n\t" oldinstr "\n662:\n" \
    + "# ALT: padding\n" \
    ".skip -(((" alt_rlen(num) ")-(" alt_slen ")) > 0) * " \
    - "((" alt_rlen(num) ")-(" alt_slen ")),0x90\n"
    -
    -#define OLDINSTR(oldinstr, num) \
    - __OLDINSTR(oldinstr, num) \
    + "((" alt_rlen(num) ")-(" alt_slen ")),0x90\n" \
    alt_end_marker ":\n"

    /*
    @@ -109,7 +108,9 @@ static inline int alternatives_text_reserved(void *start, void *end)
    * additionally longer than the first replacement alternative.
    */
    #define OLDINSTR_2(oldinstr, num1, num2) \
    + "# ALT: oldinstr2\n" \
    "661:\n\t" oldinstr "\n662:\n" \
    + "# ALT: padding2\n" \
    ".skip -((" alt_max_short(alt_rlen(num1), alt_rlen(num2)) " - (" alt_slen ")) > 0) * " \
    "(" alt_max_short(alt_rlen(num1), alt_rlen(num2)) " - (" alt_slen ")), 0x90\n" \
    alt_end_marker ":\n"
    @@ -122,8 +123,9 @@ static inline int alternatives_text_reserved(void *start, void *end)
    " .byte " alt_rlen(num) "\n" /* replacement len */ \
    " .byte " alt_pad_len "\n" /* pad len */

    -#define ALTINSTR_REPLACEMENT(newinstr, feature, num) /* replacement */ \
    - b_replacement(num)":\n\t" newinstr "\n" e_replacement(num) ":\n\t"
    +#define ALTINSTR_REPLACEMENT(newinstr, feature, num) /* replacement */ \
    + "# ALT: replacement " #num "\n" \
    + b_replacement(num)":\n\t" newinstr "\n" e_replacement(num) ":\n"

    /* alternative assembly primitive: */
    #define ALTERNATIVE(oldinstr, newinstr, feature) \
    --
    2.19.1
    \
     
     \ /
      Last update: 2018-12-11 23:24    [W:4.796 / U:0.992 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site