[PATCH 3/3] riscv: insn: add RV_EXTRACT_FUNCT3()
Ben Dooks
ben.dooks at codethink.co.uk
Wed Nov 13 02:35:07 PST 2024
On 13/11/2024 10:17, Andrew Jones wrote:
> On Wed, Nov 13, 2024 at 09:17:03AM +0000, Ben Dooks wrote:
>> Add extraction for the func3 field of most instructions
>> for use with anyone who needs it.
>>
>> Note, added this for decoding of CSR accesses for
>> work we did looking at the RDCYCLE v RDTIME calls.
>>
>> Signed-off-by: Ben Dooks <ben.dooks at codethink.co.uk>
>> ---
>> arch/riscv/include/asm/insn.h | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arch/riscv/include/asm/insn.h b/arch/riscv/include/asm/insn.h
>> index 09fde95a5e8f..c67f44ff2066 100644
>> --- a/arch/riscv/include/asm/insn.h
>> +++ b/arch/riscv/include/asm/insn.h
>> @@ -299,6 +299,10 @@ static __always_inline bool riscv_insn_is_c_jalr(u32 code)
>> ({typeof(x) x_ = (x); \
>> (RV_X(x_, RVG_RD_OPOFF, RVG_RD_MASK)); })
>>
>> +#define RV_EXTRACT_FUNCT3(x) \
>> + ({typeof(x) x_ = (x); \
>> + (RV_X(x_, RV_INSN_FUNCT3_OPOFF, RV_INSN_FUNCT3_MASK)); })
>> +
>> #define RV_EXTRACT_UTYPE_IMM(x) \
>> ({typeof(x) x_ = (x); \
>> (RV_X(x_, RV_U_IMM_31_12_OPOFF, RV_U_IMM_31_12_MASK)); })
>> --
>> 2.37.2.352.g3c44437643
>>
>
> It doesn't hurt to have an unused macro and there's a reasonable chance
> there will be a user someday, but I'd typically wait for a user before
> adding stuff. Anyway,
>
> Reviewed-by: Andrew Jones <ajones at ventanamicro.com>
I am wondering if we add a check for RDCYCLE and print a warning
even if we didn't try an fixup.
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
More information about the linux-riscv
mailing list