[JITLink][RISCV] fix the extractBits behavior and add R_RISCV_JAL relocation.
authorfourdim <fourdim@foxmail.com>
Thu, 17 Feb 2022 15:00:55 +0000 (23:00 +0800)
committerfourdim <fourdim@foxmail.com>
Thu, 17 Feb 2022 15:03:36 +0000 (23:03 +0800)
commit3af7bbca4a0ef64de64b8bb38d3b167673ec60f0
tree3682372622166be71cfc2155f8320e68ebaa6fc4
parenteeb7754f6853626c8ac1cb6b1436c1a3599ea182
[JITLink][RISCV] fix the extractBits behavior and add R_RISCV_JAL relocation.

This patch supports the R_RISCV_JAL relocation.
Moreover, it will fix the extractBits function's behavior as it extracts Size + 1 bits.
In the test ELF_jal.s:
Before:
```
Hi: 4294836480
extractBits(Hi, 12, 8): 480
```
After:
```
Hi: 4294836480
extractBits(Hi, 12, 8): 224
```

Reviewed By: StephenFan

Differential Revision: https://reviews.llvm.org/D117975
llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp
llvm/lib/ExecutionEngine/JITLink/riscv.cpp
llvm/test/ExecutionEngine/JITLink/RISCV/ELF_jal.s [new file with mode: 0644]