[llvm] 051f7cd - Revert "[JITLink][RISCV] fix the extractBits behavior and add R_RISCV_JAL relocation."
via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 17 07:40:46 PST 2022
Author: fourdim
Date: 2022-02-17T23:40:32+08:00
New Revision: 051f7cdcd2ccfb54f5030e16d0026057d203ddd2
URL: https://github.com/llvm/llvm-project/commit/051f7cdcd2ccfb54f5030e16d0026057d203ddd2
DIFF: https://github.com/llvm/llvm-project/commit/051f7cdcd2ccfb54f5030e16d0026057d203ddd2.diff
LOG: Revert "[JITLink][RISCV] fix the extractBits behavior and add R_RISCV_JAL relocation."
This reverts commit 3af7bbca4a0ef64de64b8bb38d3b167673ec60f0.
Added:
Modified:
llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp
llvm/lib/ExecutionEngine/JITLink/riscv.cpp
Removed:
llvm/test/ExecutionEngine/JITLink/RISCV/ELF_jal.s
################################################################################
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h b/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
index 2d32a749111d1..d0d3a3786e55d 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
@@ -44,13 +44,6 @@ enum EdgeKind_riscv : Edge::Kind {
///
R_RISCV_BRANCH,
- /// High 20 bits of PC-relative jump pointer value relocation
- ///
- /// Fixup expression:
- /// Fixup <- Target - Fixup + Addend
- ///
- R_RISCV_JAL,
-
/// High 20 bits of 32-bit pointer value relocation
///
/// Fixup expression
diff --git a/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp b/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp
index 469a81d882aea..90f3a38b81d53 100644
--- a/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp
+++ b/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp
@@ -220,20 +220,6 @@ class ELFJITLinker_riscv : public JITLinker<ELFJITLinker_riscv> {
*(little32_t *)FixupPtr = (RawInstr & 0x1FFF07F) | Imm31_25 | Imm11_7;
break;
}
- case R_RISCV_JAL: {
- int64_t Value = E.getTarget().getAddress() + E.getAddend() - FixupAddress;
- Error AlignmentIssue = checkAlignment(FixupAddress, Value, 2, E);
- if (AlignmentIssue) {
- return AlignmentIssue;
- }
- uint32_t Imm20 = extractBits(Value, 20, 1) << 31;
- uint32_t Imm10_1 = extractBits(Value, 1, 10) << 21;
- uint32_t Imm11 = extractBits(Value, 11, 1) << 20;
- uint32_t Imm19_12 = extractBits(Value, 12, 8) << 12;
- uint32_t RawInstr = *(little32_t *)FixupPtr;
- *(little32_t *)FixupPtr = RawInstr | Imm20 | Imm10_1 | Imm11 | Imm19_12;
- break;
- }
case R_RISCV_HI20: {
int64_t Value = (E.getTarget().getAddress() + E.getAddend()).getValue();
int64_t Hi = Value + 0x800;
@@ -423,8 +409,6 @@ class ELFLinkGraphBuilder_riscv : public ELFLinkGraphBuilder<ELFT> {
return EdgeKind_riscv::R_RISCV_64;
case ELF::R_RISCV_BRANCH:
return EdgeKind_riscv::R_RISCV_BRANCH;
- case ELF::R_RISCV_JAL:
- return EdgeKind_riscv::R_RISCV_JAL;
case ELF::R_RISCV_HI20:
return EdgeKind_riscv::R_RISCV_HI20;
case ELF::R_RISCV_LO12_I:
diff --git a/llvm/lib/ExecutionEngine/JITLink/riscv.cpp b/llvm/lib/ExecutionEngine/JITLink/riscv.cpp
index 0bd57b654d402..3ce2cf10a24cb 100644
--- a/llvm/lib/ExecutionEngine/JITLink/riscv.cpp
+++ b/llvm/lib/ExecutionEngine/JITLink/riscv.cpp
@@ -26,8 +26,6 @@ const char *getEdgeKindName(Edge::Kind K) {
return "R_RISCV_64";
case R_RISCV_BRANCH:
return "R_RISCV_BRANCH";
- case R_RISCV_JAL:
- return "R_RISCV_JAL";
case R_RISCV_HI20:
return "R_RISCV_HI20";
case R_RISCV_LO12_I:
diff --git a/llvm/test/ExecutionEngine/JITLink/RISCV/ELF_jal.s b/llvm/test/ExecutionEngine/JITLink/RISCV/ELF_jal.s
deleted file mode 100644
index 82f12358cb6b6..0000000000000
--- a/llvm/test/ExecutionEngine/JITLink/RISCV/ELF_jal.s
+++ /dev/null
@@ -1,37 +0,0 @@
-# RUN: rm -rf %t && mkdir -p %t
-# RUN: llvm-mc -triple=riscv64 -filetype=obj \
-# RUN: -o %t/elf_riscv64_jal.o %s
-# RUN: llvm-mc -triple=riscv32 -filetype=obj \
-# RUN: -o %t/elf_riscv32_jal.o %s
-# RUN: llvm-jitlink -noexec \
-# RUN: -slab-allocate 100Kb -slab-address 0x1ff00000 -slab-page-size 4096 \
-# RUN: -define-abs external_func=0x1fe000fe \
-# RUN: -check %s %t/elf_riscv64_jal.o
-# RUN: llvm-jitlink -noexec \
-# RUN: -slab-allocate 100Kb -slab-address 0x1ff00000 -slab-page-size 4096 \
-# RUN: -define-abs external_func=0x1fe000fe \
-# RUN: -check %s %t/elf_riscv32_jal.o
-#
-
- .text
- .file "testcase.c"
-
-# Empty main entry point.
- .globl main
- .p2align 1
- .type main, at function
-main:
- ret
-
- .size main, .-main
-
-# Test R_RISCV_JAL
-
-# jitlink-check: decode_operand(test_jal, 1)[31:12] = (external_func - test_jal)[31:12]
- .globl test_jal
- .p2align 1
- .type test_jal, at function
-test_jal:
- jal x0, external_func
-
- .size test_jal, .-test_jal
More information about the llvm-commits
mailing list