cpu: reset byte_enable across writeMem calls
authorCiro Santilli <ciro.santilli@arm.com>
Tue, 27 Aug 2019 14:17:24 +0000 (15:17 +0100)
committerCiro Santilli <ciro.santilli@arm.com>
Wed, 4 Sep 2019 12:33:08 +0000 (12:33 +0000)
commit3edfacea9c30b0f1c38c3296e7e4110251a247a5
tree4d97391a5c1ad01afe8d5d795d3693277a084322
parentbdb327295261dae9e155b2a88b6923c66a939ccd
cpu: reset byte_enable across writeMem calls

data_write_req byteEnable which is used in ARM SVE partial writes was not
being zeroed between writes.

As a result, non-SVE memory write instructions such as STP that followed
SVE memory write instructions could still have the write mask active.

This could lead to wrong simulation behaviour, and to an assertion failure:

src/mem/packet.hh:1211: void Packet::writeData(uint8_t*) const: Assertion
`req->getByteEnable().size() == getSize()' failed. '`

Change-Id: I74b5a82675e9923b0ffdf2c1dd9afb00c91cb204
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20448
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/cpu/simple/atomic.cc