lkml.org 
[lkml]   [2017]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 1/4] x86/paravirt: Fix output constraint macro names
    Date
    Some of the paravirt '*_CLOBBERS' macros refer to output constraints
    instead of clobbers, which makes the code extra confusing. Rename the
    output constraint related macros to '*_OUTPUTS'.

    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    ---
    arch/x86/include/asm/paravirt_types.h | 34 +++++++++++++++++-----------------
    1 file changed, 17 insertions(+), 17 deletions(-)

    diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
    index 9ffc36bfe4cd..0d793ef08e3d 100644
    --- a/arch/x86/include/asm/paravirt_types.h
    +++ b/arch/x86/include/asm/paravirt_types.h
    @@ -479,12 +479,12 @@ int paravirt_disable_iospace(void);
    #define PVOP_CALL_ARG2(x) "d" ((unsigned long)(x))
    #define PVOP_CALL_ARG3(x) "c" ((unsigned long)(x))

    -#define PVOP_VCALL_CLOBBERS "=a" (__eax), "=d" (__edx), \
    +#define PVOP_VCALL_OUTPUTS "=a" (__eax), "=d" (__edx), \
    "=c" (__ecx)
    -#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS
    +#define PVOP_CALL_OUTPUTS PVOP_VCALL_OUTPUTS

    -#define PVOP_VCALLEE_CLOBBERS "=a" (__eax), "=d" (__edx)
    -#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
    +#define PVOP_VCALLEE_OUTPUTS "=a" (__eax), "=d" (__edx)
    +#define PVOP_CALLEE_OUTPUTS PVOP_VCALLEE_OUTPUTS

    #define EXTRA_CLOBBERS
    #define VEXTRA_CLOBBERS
    @@ -501,14 +501,14 @@ int paravirt_disable_iospace(void);
    #define PVOP_CALL_ARG3(x) "d" ((unsigned long)(x))
    #define PVOP_CALL_ARG4(x) "c" ((unsigned long)(x))

    -#define PVOP_VCALL_CLOBBERS "=D" (__edi), \
    +#define PVOP_VCALL_OUTPUTS "=D" (__edi), \
    "=S" (__esi), "=d" (__edx), \
    "=c" (__ecx)
    -#define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax)
    +#define PVOP_CALL_OUTPUTS PVOP_VCALL_OUTPUTS, "=a" (__eax)

    /* void functions are still allowed [re]ax for scratch */
    -#define PVOP_VCALLEE_CLOBBERS "=a" (__eax)
    -#define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS
    +#define PVOP_VCALLEE_OUTPUTS "=a" (__eax)
    +#define PVOP_CALLEE_OUTPUTS PVOP_VCALLEE_OUTPUTS

    #define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11"
    #define VEXTRA_CLOBBERS , "rax", "r8", "r9", "r10", "r11"
    @@ -532,7 +532,7 @@ int paravirt_disable_iospace(void);
    })


    -#define ____PVOP_CALL(rettype, op, clbr, call_clbr, extra_clbr, \
    +#define ____PVOP_CALL(rettype, op, clbr, outputs, extra_clbr, \
    pre, post, ...) \
    ({ \
    rettype __ret; \
    @@ -544,7 +544,7 @@ int paravirt_disable_iospace(void);
    asm volatile(pre \
    paravirt_alt(PARAVIRT_CALL) \
    post \
    - : call_clbr, "+r" (__sp) \
    + : outputs, "+r" (__sp) \
    : paravirt_type(op), \
    paravirt_clobber(clbr), \
    ##__VA_ARGS__ \
    @@ -554,7 +554,7 @@ int paravirt_disable_iospace(void);
    asm volatile(pre \
    paravirt_alt(PARAVIRT_CALL) \
    post \
    - : call_clbr, "+r" (__sp) \
    + : outputs, "+r" (__sp) \
    : paravirt_type(op), \
    paravirt_clobber(clbr), \
    ##__VA_ARGS__ \
    @@ -565,23 +565,23 @@ int paravirt_disable_iospace(void);
    })

    #define __PVOP_CALL(rettype, op, pre, post, ...) \
    - ____PVOP_CALL(rettype, op, CLBR_ANY, PVOP_CALL_CLOBBERS, \
    + ____PVOP_CALL(rettype, op, CLBR_ANY, PVOP_CALL_OUTPUTS, \
    EXTRA_CLOBBERS, pre, post, ##__VA_ARGS__)

    #define __PVOP_CALLEESAVE(rettype, op, pre, post, ...) \
    ____PVOP_CALL(rettype, op.func, CLBR_RET_REG, \
    - PVOP_CALLEE_CLOBBERS, , \
    + PVOP_CALLEE_OUTPUTS, , \
    pre, post, ##__VA_ARGS__)


    -#define ____PVOP_VCALL(op, clbr, call_clbr, extra_clbr, pre, post, ...) \
    +#define ____PVOP_VCALL(op, clbr, outputs, extra_clbr, pre, post, ...) \
    ({ \
    PVOP_VCALL_ARGS; \
    PVOP_TEST_NULL(op); \
    asm volatile(pre \
    paravirt_alt(PARAVIRT_CALL) \
    post \
    - : call_clbr, "+r" (__sp) \
    + : outputs, "+r" (__sp) \
    : paravirt_type(op), \
    paravirt_clobber(clbr), \
    ##__VA_ARGS__ \
    @@ -589,13 +589,13 @@ int paravirt_disable_iospace(void);
    })

    #define __PVOP_VCALL(op, pre, post, ...) \
    - ____PVOP_VCALL(op, CLBR_ANY, PVOP_VCALL_CLOBBERS, \
    + ____PVOP_VCALL(op, CLBR_ANY, PVOP_VCALL_OUTPUTS, \
    VEXTRA_CLOBBERS, \
    pre, post, ##__VA_ARGS__)

    #define __PVOP_VCALLEESAVE(op, pre, post, ...) \
    ____PVOP_VCALL(op.func, CLBR_RET_REG, \
    - PVOP_VCALLEE_CLOBBERS, , \
    + PVOP_VCALLEE_OUTPUTS, , \
    pre, post, ##__VA_ARGS__)


    --
    2.13.5
    \
     
     \ /
      Last update: 2017-08-31 16:15    [W:3.604 / U:0.620 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site