linux/arch/arm64/lib
Xu Kuohai f1e8a24ed2 arm64: Add LDR (literal) instruction
Add LDR (literal) instruction to load data from address relative to PC.
This instruction will be used to implement long jump from bpf prog to
bpf trampoline in the follow-up patch.

The instruction encoding:

    3       2   2     2                                     0        0
    0       7   6     4                                     5        0
+-----+-------+---+-----+-------------------------------------+--------+
| 0 x | 0 1 1 | 0 | 0 0 |                imm19                |   Rt   |
+-----+-------+---+-----+-------------------------------------+--------+

for 32-bit, variant x == 0; for 64-bit, x == 1.

branch_imm_common() is used to check the distance between pc and target
address, since it's reused by this patch and LDR (literal) is not a branch
instruction, rename it to label_imm_common().

Signed-off-by: Xu Kuohai <xukuohai@huawei.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/bpf/20220711150823.2128542-3-xukuohai@huawei.com
2022-07-11 21:04:58 +02:00
..
clear_page.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
clear_user.S arm64: extable: consolidate definitions 2021-10-21 10:45:22 +01:00
copy_from_user.S arm64: lib: __arch_copy_from_user(): fold fixups into body 2021-10-21 10:45:21 +01:00
copy_page.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
copy_template.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
copy_to_user.S arm64: lib: __arch_copy_to_user(): fold fixups into body 2021-10-21 10:45:21 +01:00
crc32.S arm64: lib: accelerate crc32_be 2022-01-31 11:21:43 +11:00
csum.c arm64: csum: Disable KASAN for do_csum() 2020-04-15 21:36:41 +01:00
delay.c arm64: Use WFxT for __delay() when possible 2022-04-20 13:24:44 +01:00
error-inject.c arm64: Add support for function error injection 2019-08-07 13:53:09 +01:00
insn.c arm64: Add LDR (literal) instruction 2022-07-11 21:04:58 +02:00
kasan_sw_tags.S arm64: Use BTI C directly and unconditionally 2021-12-14 18:12:58 +00:00
Makefile isystem: delete global -isystem compile option 2021-09-22 09:26:24 +09:00
memchr.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
memcmp.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
memcpy.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
memset.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
mte.S arm64: mte: Clean up user tag accessors 2022-05-16 19:11:03 +01:00
strchr.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
strcmp.S Merge branch 'for-next/strings' into for-next/core 2022-03-14 19:02:52 +00:00
strlen.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
strncmp.S Merge branch 'for-next/strings' into for-next/core 2022-03-14 19:02:52 +00:00
strnlen.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
strrchr.S arm64: clean up symbol aliasing 2022-02-22 16:21:34 +00:00
tishift.S arm64: lib: Use modern annotations for assembly functions 2020-01-08 12:23:02 +00:00
uaccess_flushcache.c arm64: Rename arm64-internal cache maintenance functions 2021-05-25 19:27:49 +01:00
xor-neon.c lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00