On 6/18/26 07:48, Jim MacArthur wrote:
On Wed, Jun 10, 2026 at 09:41:56AM -0700, Richard Henderson wrote:
On 6/3/26 11:26, Jim MacArthur wrote:
+    const uint64_t BW_STRIDE_SHIFT = 40;
...
+        switch (bw_stride_field) {
+        case 0b00000:
+        case 0b00010:
+        case 0b00100:
+        case 0b00110:
+        case 0b00111:
+        case 0b01000:
+        case 0b01001:
+        case 0b01010:
+        case 0b10000:
+            bw_stride = 1ULL << (bw_stride_field + BW_STRIDE_SHIFT);

BW_STRIDE_SHIFT should be 39 not 40.

Everything else is correct.


Agree with the simplification, but BW_STRIDE_SHIFT should be 40. As per D24.2.54, a 
BWSTRIDE field of 0 gives a stride size of 1TB or 1<<40 bytes.
(gpcbwu, the highest bit set in the mask, is indeed 39+BWSTRIDE, but the 
subtraction of bw_size from bw_stride has the same effect.)
There was an error in a later use of bw_stride which might have made it look 
like something else was intended.

Ah yes.  Thanks for double checking.


r~

Reply via email to