diff options
| author | Vladimir Kondratiev <vladimir.kondratiev@mobileye.com> | 2025-12-28 09:33:21 +0200 |
|---|---|---|
| committer | Anup Patel <anup@brainfault.org> | 2025-12-28 20:44:03 +0530 |
| commit | f6fa62bd169e55f479b137da13ca83b27bb304a9 (patch) | |
| tree | 31ef2428b6a703114892f89f186b867e555596f3 /lib/utils/cppc | |
| parent | 4c1c77e085599f6f95df4b94714e1d7829ebefbf (diff) | |
| download | opensbi-f6fa62bd169e55f479b137da13ca83b27bb304a9.zip opensbi-f6fa62bd169e55f479b137da13ca83b27bb304a9.tar.gz opensbi-f6fa62bd169e55f479b137da13ca83b27bb304a9.tar.bz2 | |
lib: atomics: fix AMO test macros
The "RISC-V C API" [1] defines architecture extension test macros
says naming rule for the test macros is __riscv_<ext_name>, where
<ext_name> is all lower-case.
Three extensions dealing with atomics implementation are:
"zaamo" consists of AMO instructions,
"zalrsc" - LR/SC,
"a" extension means both "zaamo" and "zalrsc"
Built-in test macros are __riscv_a, __riscv_zaamo and __riscv_zalrsc.
Alternative to the __riscv_a macro name, __riscv_atomic, is deprecated.
Use correct test macro __riscv_zaamo for the AMO variant of atomics.
It used to be __riscv_atomic that is both deprecated and incorrect
because it tests for the "a" extension; i.e. both "zaamo" and "zalrsc"
If ISA enables only zaamo but not zalrsc, code as it was would not compile.
Older toolchains may have neither __riscv_zaamo nor __riscv_zalrsc, so
query __riscv_atomic - it should be treated as both __riscv_zaamo and
__riscv_zalrsc, in all present cases __riscv_zaamo is more favorable
so take is as alternative for __riscv_zaamo
[1] https://github.com/riscv-non-isa/riscv-c-api-doc
Signed-off-by: Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/r/20251228073321.1533844-1-vladimir.kondratiev@mobileye.com
Signed-off-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib/utils/cppc')
0 files changed, 0 insertions, 0 deletions
