arm: Add a callSemihosting method that figures out the width.

Change-Id: Ic94987fffd04648932e5dd085ffeef8500e335cf
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25951
Tested-by: Gem5 Cloud Project GCB service account <345032938727@cloudbuild.gserviceaccount.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
This commit is contained in:
Gabe Black
2020-02-26 16:57:54 -08:00
parent 19bba88354
commit 8b6fadd7d7
2 changed files with 12 additions and 0 deletions

View File

@@ -191,6 +191,15 @@ ArmSystem::callSemihosting32(ThreadContext *tc, bool gem5_ops)
return getArmSystem(tc)->semihosting->call32(tc, gem5_ops);
}
bool
ArmSystem::callSemihosting(ThreadContext *tc, bool gem5_ops)
{
if (ArmISA::inAArch64(tc))
return callSemihosting64(tc, gem5_ops);
else
return callSemihosting32(tc, gem5_ops);
}
void
ArmSystem::callSetStandByWfi(ThreadContext *tc)
{

View File

@@ -319,6 +319,9 @@ class ArmSystem : public System
/** Make a Semihosting call from aarch32 */
static bool callSemihosting32(ThreadContext *tc, bool gem5_ops=false);
/** Make a Semihosting call from either aarch64 or aarch32 */
static bool callSemihosting(ThreadContext *tc, bool gem5_ops=false);
/** Make a call to notify the power controller of STANDBYWFI assertion */
static void callSetStandByWfi(ThreadContext *tc);