sim: Simplify collecting the key value in initParam.

If the first register is all zeroes, it doesn't really matter what the
other register is. If the first register has the entire string, we still
don't care what the other register has in it. There's no reason to
complicate the code with these extra checks.

Change-Id: I22ad521b9ace915ccb75f15934fc6b3d650d5293
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27228
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
This commit is contained in:
Gabe Black
2020-03-25 16:22:37 -07:00
parent c12a72e073
commit fc7ada3e7c

View File

@@ -259,18 +259,9 @@ initParam(ThreadContext *tc, uint64_t key_str1, uint64_t key_str2)
const int len = 2 * sizeof(uint64_t) + 1;
char key_str[len];
memset(key_str, '\0', len);
if (key_str1 == 0) {
assert(key_str2 == 0);
} else {
strncpy(key_str, (char *)&key_str1, sizeof(uint64_t));
}
if (strlen(key_str) == sizeof(uint64_t)) {
strncpy(key_str + sizeof(uint64_t), (char *)&key_str2,
sizeof(uint64_t));
} else {
assert(key_str2 == 0);
}
memcpy(key_str, (char *)&key_str1, sizeof(key_str1));
memcpy(key_str + sizeof(uint64_t), (char *)&key_str2, sizeof(key_str2));
// Compare the key parameter with the known values to select the return
// value