diff --git a/src/arch/arm/system.cc b/src/arch/arm/system.cc index 5d8808cba1..5d261a7907 100644 --- a/src/arch/arm/system.cc +++ b/src/arch/arm/system.cc @@ -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) { diff --git a/src/arch/arm/system.hh b/src/arch/arm/system.hh index 370a3df337..364a804373 100644 --- a/src/arch/arm/system.hh +++ b/src/arch/arm/system.hh @@ -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);