dev-hsa: Properly mask HSA packet header bits
The HSA packet macros were not actually masking the header bits properly. Add a mask call around the width (number of bits) of the field being masked. Change-Id: Ia5e5fb0451296e99a85fb12a5f73b27aea72fc2e Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/57669 Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com> Maintainer: Matt Sinclair <mattdsinclair@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -60,12 +60,13 @@
|
||||
}
|
||||
|
||||
#define PKT_TYPE(PKT) ((hsa_packet_type_t)(((PKT->header) >> \
|
||||
HSA_PACKET_HEADER_TYPE) & (HSA_PACKET_HEADER_WIDTH_TYPE - 1)))
|
||||
HSA_PACKET_HEADER_TYPE) & mask(HSA_PACKET_HEADER_WIDTH_TYPE)))
|
||||
|
||||
// checks if the barrier bit is set in the header -- shift the barrier bit
|
||||
// to LSB, then bitwise "and" to mask off all other bits
|
||||
#define IS_BARRIER(PKT) ((hsa_packet_header_t)(((PKT->header) >> \
|
||||
HSA_PACKET_HEADER_BARRIER) & HSA_PACKET_HEADER_WIDTH_BARRIER))
|
||||
HSA_PACKET_HEADER_BARRIER) & \
|
||||
mask(HSA_PACKET_HEADER_WIDTH_BARRIER)))
|
||||
|
||||
namespace gem5
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user