Lines Matching +full:ext +full:- +full:32 +full:k
1 /* SPDX-License-Identifier: GPL-2.0-only */
11 #include <asm/alternative-macros.h>
16 #define RISCV_ISA_EXT_a ('a' - 'a')
17 #define RISCV_ISA_EXT_b ('b' - 'a')
18 #define RISCV_ISA_EXT_c ('c' - 'a')
19 #define RISCV_ISA_EXT_d ('d' - 'a')
20 #define RISCV_ISA_EXT_f ('f' - 'a')
21 #define RISCV_ISA_EXT_h ('h' - 'a')
22 #define RISCV_ISA_EXT_i ('i' - 'a')
23 #define RISCV_ISA_EXT_j ('j' - 'a')
24 #define RISCV_ISA_EXT_k ('k' - 'a')
25 #define RISCV_ISA_EXT_m ('m' - 'a')
26 #define RISCV_ISA_EXT_p ('p' - 'a')
27 #define RISCV_ISA_EXT_q ('q' - 'a')
28 #define RISCV_ISA_EXT_s ('s' - 'a')
29 #define RISCV_ISA_EXT_u ('u' - 'a')
30 #define RISCV_ISA_EXT_v ('v' - 'a')
33 * These macros represent the logical IDs of each multi-letter RISC-V ISA
35 * RISCV_ISA_EXT_BASE, which allows the 0-25 range to be reserved for single
50 #define RISCV_ISA_EXT_ZIHINTPAUSE 32
88 #define riscv_isa_extension_mask(ext) BIT_MASK(RISCV_ISA_EXT_##ext) argument
91 #define riscv_isa_extension_available(isa_bitmap, ext) \ argument
92 __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_##ext)
95 riscv_has_extension_likely(const unsigned long ext) in riscv_has_extension_likely() argument
97 compiletime_assert(ext < RISCV_ISA_EXT_MAX, in riscv_has_extension_likely()
98 "ext must be < RISCV_ISA_EXT_MAX"); in riscv_has_extension_likely()
102 ALTERNATIVE("j %l[l_no]", "nop", 0, %[ext], 1) in riscv_has_extension_likely()
104 : [ext] "i" (ext) in riscv_has_extension_likely()
108 if (!__riscv_isa_extension_available(NULL, ext)) in riscv_has_extension_likely()
118 riscv_has_extension_unlikely(const unsigned long ext) in riscv_has_extension_unlikely() argument
120 compiletime_assert(ext < RISCV_ISA_EXT_MAX, in riscv_has_extension_unlikely()
121 "ext must be < RISCV_ISA_EXT_MAX"); in riscv_has_extension_unlikely()
125 ALTERNATIVE("nop", "j %l[l_yes]", 0, %[ext], 1) in riscv_has_extension_unlikely()
127 : [ext] "i" (ext) in riscv_has_extension_unlikely()
131 if (__riscv_isa_extension_available(NULL, ext)) in riscv_has_extension_unlikely()