-
Notifications
You must be signed in to change notification settings - Fork 5
Add support arena atomics for RV64 #5619
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support arena atomics for RV64 #5619
Conversation
|
Upstream branch: 42be23e |
|
Upstream branch: 42be23e |
28a1a2c to
4b03fd6
Compare
2fb23f0 to
749128d
Compare
|
Upstream branch: 42be23e |
4b03fd6 to
e625b38
Compare
749128d to
4bae2d4
Compare
|
Upstream branch: 95993dc |
e625b38 to
aebaf99
Compare
4bae2d4 to
8204217
Compare
|
Upstream branch: 9ea0691 |
aebaf99 to
acf2a0a
Compare
8204217 to
af31cfa
Compare
|
Upstream branch: b7b3500 |
acf2a0a to
b406465
Compare
af31cfa to
c6f1448
Compare
|
Upstream branch: b114fce |
b406465 to
c680a90
Compare
c6f1448 to
f34ad0b
Compare
|
Upstream branch: e9f545d |
30d429e to
cdc2acb
Compare
88bd43a to
fa50325
Compare
|
Upstream branch: c93c59b |
cdc2acb to
4a53650
Compare
fa50325 to
5cf9e1c
Compare
|
Upstream branch: bf0c2a8 |
4a53650 to
70e5ad3
Compare
5cf9e1c to
2c853dd
Compare
|
Upstream branch: 2caa6b8 |
70e5ad3 to
eddb2a7
Compare
2c853dd to
5e1a4c1
Compare
There's a lot of redundant code related to store from register operations, let's extract emit_stx() to make code more compact. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
There's a lot of redundant code related to store from immediate operations, let's extract emit_st() to make code more compact. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
There's a lot of redundant code related to load into register operations, let's extract emit_ldx() to make code more compact. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
RV64 bpf is going to support ZACAS instructions. Let's separate toolchain support dependency from RISCV_ISA_ZACAS. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
Add rv_ext_enabled macro to check whether the runtime detection extension is enabled. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
|
Upstream branch: 0786654 |
Add Zacas instructions introduced by [0] to reduce code size and improve performance of RV64 JIT. Link: https://github.com/riscvarchive/riscv-zacas/releases/download/v1.0/riscv-zacas.pdf [0] Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
Optimize cmpxchg instruction with amocas.w and amocas.d Zacas instructions. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
Add ex_insn_off and ex_jmp_off fields to struct rv_jit_context so that add_exception_handler() does not need to be immediately followed by the instruction to add the exception table. ex_insn_off indicates the offset of the instruction to add the exception table, and ex_jmp_off indicates the offset to jump over the faulting instruction. This is to prepare for adding the exception table to atomic instructions later, because some atomic instructions need to perform zext or other operations. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
Add arena atomics support for RMW atomics and load-acquire and store-release instructions. Non-Zacas cmpxchg is implemented via loop, which is not currently supported because it requires more complex extable and loop logic. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
Enable arena atomics tests for RV64. Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Björn Töpel <[email protected]>
eddb2a7 to
5e9c69b
Compare
5e1a4c1 to
91606c1
Compare
|
At least one diff in series https://patchwork.kernel.org/project/netdevbpf/list/?series=983958 irrelevant now. Closing PR. |
Pull request for series with
subject: Add support arena atomics for RV64
version: 1
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=983958