aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/kernel/tests/module_test/test_uleb128.S
diff options
context:
space:
mode:
authorGravatar Charlie Jenkins <charlie@rivosinc.com> 2023-11-01 11:33:01 -0700
committerGravatar Palmer Dabbelt <palmer@rivosinc.com> 2023-11-07 14:59:32 -0800
commitaf71bc194916b10f9b394f9b14419d99700a5e67 (patch)
tree3ba1d884a72d6407c576fba8bff7c1d71a7caa1b /arch/riscv/kernel/tests/module_test/test_uleb128.S
parentriscv: Add remaining module relocations (diff)
downloadlinux-af71bc194916b10f9b394f9b14419d99700a5e67.tar.gz
linux-af71bc194916b10f9b394f9b14419d99700a5e67.tar.bz2
linux-af71bc194916b10f9b394f9b14419d99700a5e67.zip
riscv: Add tests for riscv module loading
Add test cases for the two main groups of relocations added: SUB and SET, along with uleb128. Signed-off-by: Charlie Jenkins <charlie@rivosinc.com> Link: https://lore.kernel.org/r/20231101-module_relocations-v9-3-8dfa3483c400@rivosinc.com Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'arch/riscv/kernel/tests/module_test/test_uleb128.S')
-rw-r--r--arch/riscv/kernel/tests/module_test/test_uleb128.S31
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/riscv/kernel/tests/module_test/test_uleb128.S b/arch/riscv/kernel/tests/module_test/test_uleb128.S
new file mode 100644
index 000000000000..90f22049d553
--- /dev/null
+++ b/arch/riscv/kernel/tests/module_test/test_uleb128.S
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2023 Rivos Inc.
+ */
+
+.text
+.global test_uleb_basic
+test_uleb_basic:
+ ld a0, second
+ addi a0, a0, -127
+ ret
+
+.global test_uleb_large
+test_uleb_large:
+ ld a0, fourth
+ addi a0, a0, -0x07e8
+ ret
+
+.data
+first:
+ .space 127
+second:
+ .reloc second, R_RISCV_SET_ULEB128, second
+ .reloc second, R_RISCV_SUB_ULEB128, first
+ .dword 0
+third:
+ .space 1000
+fourth:
+ .reloc fourth, R_RISCV_SET_ULEB128, fourth
+ .reloc fourth, R_RISCV_SUB_ULEB128, third
+ .dword 0