lkml.org 
[lkml]   [2021]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 06/13] x86/crypto/crc32c-pcl-intel: Standardize jump table
    Date
    Simplify the jump table code so that it resembles a compiler-generated
    table.

    This enables ORC unwinding by allowing objtool to follow all the
    potential code paths.

    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    ---
    arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
    index 884dc767b051..ac1f303eed0f 100644
    --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
    +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
    @@ -53,7 +53,7 @@
    .endm

    .macro JMPTBL_ENTRY i
    -.word crc_\i - crc_array
    +.quad crc_\i
    .endm

    .macro JNC_LESS_THAN j
    @@ -168,10 +168,7 @@ continue_block:
    xor crc2, crc2

    ## branch into array
    - lea jump_table(%rip), %bufp
    - movzwq (%bufp, %rax, 2), len
    - lea crc_array(%rip), %bufp
    - lea (%bufp, len, 1), %bufp
    + mov jump_table(,%rax,8), %bufp
    JMP_NOSPEC bufp

    ################################################################
    --
    2.29.2
    \
     
     \ /
      Last update: 2021-02-24 17:36    [W:4.133 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site