]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
semihosting/arm-compat-semi: change common_semi_sys_exit_extended
authorPierrick Bouvier <pierrick.bouvier@linaro.org>
Mon, 22 Sep 2025 09:36:52 +0000 (10:36 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Fri, 26 Sep 2025 08:55:19 +0000 (09:55 +0100)
We now check only is sys_exit is extended.
This allows to break dependency to TARGET_SYS_EXIT_EXTENDED which will
not be available anymore from this code.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <20250822150058.18692-5-pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20250922093711.2768983-8-alex.bennee@linaro.org>

semihosting/arm-compat-semi.c
target/arm/common-semi-target.h
target/riscv/common-semi-target.h

index a239cfc5a9d3e34803cbc50ba1296ad0ea7e806f..26263a06b7a906e4a49f97111f2e956d40fdfc35 100644 (file)
@@ -755,7 +755,8 @@ void do_common_semihosting(CPUState *cs)
     {
         uint32_t ret;
 
-        if (common_semi_sys_exit_extended(cs, nr)) {
+        if (nr == TARGET_SYS_EXIT_EXTENDED ||
+            common_semi_sys_exit_is_extended(cs)) {
             /*
              * The A64 version of SYS_EXIT takes a parameter block,
              * so the application-exit type can return a subcode which
index da51f2d7f540d8878cb88e8cfe98e3ebc495c776..7bb442f24ca7a3b92c6be38643d1b90bbaf9a46a 100644 (file)
@@ -34,9 +34,9 @@ static inline void common_semi_set_ret(CPUState *cs, target_ulong ret)
     }
 }
 
-static inline bool common_semi_sys_exit_extended(CPUState *cs, int nr)
+static inline bool common_semi_sys_exit_is_extended(CPUState *cs)
 {
-    return nr == TARGET_SYS_EXIT_EXTENDED || is_a64(cpu_env(cs));
+    return is_a64(cpu_env(cs));
 }
 
 static inline bool is_64bit_semihosting(CPUArchState *env)
index 7c8a59e0cc3cdbd0ea2e597a91ad9c14a53b75ff..ba40e794dcc13c9df681494d4ce6a0953c930388 100644 (file)
@@ -25,9 +25,9 @@ static inline void common_semi_set_ret(CPUState *cs, target_ulong ret)
     env->gpr[xA0] = ret;
 }
 
-static inline bool common_semi_sys_exit_extended(CPUState *cs, int nr)
+static inline bool common_semi_sys_exit_is_extended(CPUState *cs)
 {
-    return (nr == TARGET_SYS_EXIT_EXTENDED || sizeof(target_ulong) == 8);
+    return sizeof(target_ulong) == 8;
 }
 
 static inline bool is_64bit_semihosting(CPUArchState *env)