From dc9a8e28eebefe693e0cd6baf60b933d7a973a3b Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 22 Sep 2022 14:57:10 -0700 Subject: Fix ignored-qualifiers warnings in get_field/set_field macros --- riscv/decode.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'riscv') diff --git a/riscv/decode.h b/riscv/decode.h index 1b55502..2bf9ddf 100644 --- a/riscv/decode.h +++ b/riscv/decode.h @@ -19,6 +19,7 @@ #include "p_ext_macros.h" #include "v_ext_macros.h" #include +#include typedef int64_t sreg_t; typedef uint64_t reg_t; @@ -282,8 +283,11 @@ do { \ if (rm > 4) throw trap_illegal_instruction(insn.bits()); \ rm; }) -#define get_field(reg, mask) (((reg) & (decltype(reg))(mask)) / ((mask) & ~((mask) << 1))) -#define set_field(reg, mask, val) (((reg) & ~(decltype(reg))(mask)) | (((decltype(reg))(val) * ((mask) & ~((mask) << 1))) & (decltype(reg))(mask))) +#define get_field(reg, mask) \ + (((reg) & (std::remove_cv::type)(mask)) / ((mask) & ~((mask) << 1))) + +#define set_field(reg, mask, val) \ + (((reg) & ~(std::remove_cv::type)(mask)) | (((std::remove_cv::type)(val) * ((mask) & ~((mask) << 1))) & (std::remove_cv::type)(mask))) #define require_privilege(p) require(STATE.prv >= (p)) #define require_novirt() if (unlikely(STATE.v)) throw trap_virtual_instruction(insn.bits()) -- cgit v1.1