util: Refactor the string->register packing function in the m5 utility.
authorGabe Black <gabeblack@google.com>
Wed, 25 Mar 2020 23:41:33 +0000 (16:41 -0700)
committerGabe Black <gabeblack@google.com>
Mon, 27 Apr 2020 21:03:28 +0000 (21:03 +0000)
commit90879d492001bbd63e0984f24d56182888e8043e
tree59d9c09b79365e4d750718b869eb965c24628a65
parentfc7ada3e7c1e15c9aec1d4eb708fe7bac5a1ba5e
util: Refactor the string->register packing function in the m5 utility.

This change removes the responsibility for checking the number of
arguments and handing the default of no string back into init_param and
out of the function which packs strings into registers. It also renames
the function to more closely match its purpose, and rewrites it to be a
bit simpler and (IMHO) easier to follow.

Importantly, rather than doing a hand implemented strcpy which would
follow the endianness of the target/simulated platform, this change
makes this function pack the registers explicitly in little endian byte
order. This way on the consuming end in gem5, the initParam function
doesn't have to care what the guest endianness is, it can just translate
them from little endian to whatever the host endianness is (very likely
also little endian).

Change-Id: Ie9f79ecb8d4584c6e47a2793a31ccaa8c7c15986
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27229
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
util/m5/src/m5.c