On Mon, Nov 17, 2025 at 05:26:54PM +0100, Richard Henderson wrote:
> On 11/17/25 02:40, Gabriel Brookman wrote:
> > @@ -444,6 +449,11 @@ uint64_t HELPER(ldgm)(CPUARMState *env, uint64_t ptr)
> >           return 0;
> >       }
> > +    if (mtx_check(env, extract64(ptr, 55, 1))) {
> > +        shift = extract64(ptr, LOG2_TAG_GRANULE, 4) * 4;
> > +        return (~0) << shift;
> > +    }
> 
> This should load the canonical tag, which is 0 for bit55==0.
> 
> The ~0 is wrong because it's not 64-bit.
> The field also needs to be bound by gm_bs.
> Something like
> 
>   return MAKE_64BIT_MASK(shift, shift + (2 << gm_bs));
> 
> 
> r~
> 

Hey Richard,

Thanks for the review! Expect v3 sometime soon.

Thanks,
Gabriel

Reply via email to