Fix new-write-folding-in function to copy original tags where there are

no byte-enables set.
This commit is contained in:
jon
2020-05-20 13:31:09 +01:00
parent 072c188f92
commit d00ade6c9d

View File

@@ -74,7 +74,11 @@ function MemTaggedData mergeMemTaggedDataBE( MemTaggedData oldItem
, MemTaggedData newItem
, be_t be)
provisos (Bits#(be_t, MemDataBytes)) =
MemTaggedData { tag : (pack(be) == ~0) ? newItem.tag : False
MemTaggedData { tag : case (pack(be))
0: oldItem.tag;
-1: newItem.tag;
default: False;
endcase
, data: mergeDataBE(oldItem.data, newItem.data, be)};
function MemData dataToMemData(Data x) = unpack(zeroExtend(x));
function MemDataByteEn dataBEToMemDataBE(ByteEn x) = unpack(zeroExtend(pack(x)));