Spec is tied around with current translation mode and since 64bit architecture has spare bits, N is defined with respect to 64bit architecture.
Privileged spec allows setting of UXL = 1 in sstatus CSR. This pretty much makes U mode 32bit.
As per spec, all instructions will ignore top 32bits in source operand and perform sign extension in destination.
Now hart can be in sv39 or sv48 or sv57 mode. All page table accesses will anyways be truncated to lower 4GB.
In this case I believe pointer masking is effectively disabled even if corresponding PM bit is enabled.
Spec is tied around with current translation mode and since 64bit architecture has spare bits, N is defined with respect to 64bit architecture.
Privileged spec allows setting of UXL = 1 in sstatus CSR. This pretty much makes U mode 32bit. As per spec, all instructions will ignore top 32bits in source operand and perform sign extension in destination.
Now hart can be in sv39 or sv48 or sv57 mode. All page table accesses will anyways be truncated to lower 4GB.
In this case I believe pointer masking is effectively disabled even if corresponding PM bit is enabled.
Can we add this clarification in the spec?