diff options
author | Josh Poimboeuf <jpoimboe@redhat.com> | 2021-02-24 10:29:19 -0600 |
---|---|---|
committer | Josh Poimboeuf <jpoimboe@redhat.com> | 2021-04-19 12:36:34 -0500 |
commit | 2b02ed55482a1c5c310a7f53707292fcf1601e7a (patch) | |
tree | 1afc6339bff0c3814dd591e4db8ffe353bc07b17 /arch/x86/crypto | |
parent | dabe5167a3cbb4bf16b20c0e5b6497513e2e3a08 (diff) |
x86/crypto/crc32c-pcl-intel: Standardize jump table
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>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Sami Tolvanen <samitolvanen@google.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Link: https://lore.kernel.org/r/5357a039def90b8ef6b5874ef12cda008ecf18ba.1614182415.git.jpoimboe@redhat.com
Diffstat (limited to 'arch/x86/crypto')
-rw-r--r-- | arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 7 |
1 files 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 ################################################################ |