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