On 19/1/23 10:22, Pavel Dovgalyuk wrote:
> Bit vector for features has 64 bits. This patch fixes bit shifts in
> avr_feature and set_avr_feature functions to be 64-bit too.
>
> Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
> Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
> ---
> target/avr/cpu.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target/avr/cpu.h b/target/avr/cpu.h
> index 7c3895b65e..280edc495b 100644
> --- a/target/avr/cpu.h
> +++ b/target/avr/cpu.h
> @@ -166,12 +166,12 @@ vaddr avr_cpu_gdb_adjust_breakpoint(CPUState *cpu, vaddr addr);
>
> static inline int avr_feature(CPUAVRState *env, AVRFeature feature)
> {
> - return (env->features & (1U << feature)) != 0;
> + return (env->features & (1ULL << feature)) != 0;
> }
>
> static inline void set_avr_feature(CPUAVRState *env, int feature)
> {
> - env->features |= (1U << feature);
> + env->features |= (1ULL << feature);
> }
Consider using extract64() or BIT_ULL(). Regardless:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>