diff mbox series

[for-7.2] target/arm: Set TCGCPUOps.restore_state_to_opc for v7m

Message ID 20221129204146.550394-1-richard.henderson@linaro.org
State New
Headers show
Series [for-7.2] target/arm: Set TCGCPUOps.restore_state_to_opc for v7m | expand

Commit Message

Richard Henderson Nov. 29, 2022, 8:41 p.m. UTC
This setting got missed, breaking v7m.

Fixes: 56c6c98df85c ("target/arm: Convert to tcg_ops restore_state_to_opc")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1347
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---

The patch is unchanged from the correct suggestion in the issue.
If Evgeny would like to reply with his s-o-b, this patch could be
commited with updated Author.


r~

---
 target/arm/internals.h | 4 ++++
 target/arm/cpu.c       | 6 +++---
 target/arm/cpu_tcg.c   | 1 +
 3 files changed, 8 insertions(+), 3 deletions(-)

Comments

Stefan Hajnoczi Nov. 29, 2022, 8:59 p.m. UTC | #1
Waiting for Evgeny's Signed-off-by. It seems a -rc4 tag will be
required anyway for vhost fixes so I'll wait.

Stefan
Evgeny Ermakov Nov. 29, 2022, 9:30 p.m. UTC | #2
Signed-off-by: Evgeny Ermakov <evgeny.v.ermakov@gmail.com>
---
Philippe Mathieu-Daudé Nov. 30, 2022, 8:37 a.m. UTC | #3
On 29/11/22 21:41, Richard Henderson wrote:
> This setting got missed, breaking v7m.
> 
> Fixes: 56c6c98df85c ("target/arm: Convert to tcg_ops restore_state_to_opc")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1347
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---
>   target/arm/internals.h | 4 ++++
>   target/arm/cpu.c       | 6 +++---
>   target/arm/cpu_tcg.c   | 1 +
>   3 files changed, 8 insertions(+), 3 deletions(-)

> diff --git a/target/arm/cpu_tcg.c b/target/arm/cpu_tcg.c
> index 60ff539fa1..9a2cef7d05 100644
> --- a/target/arm/cpu_tcg.c
> +++ b/target/arm/cpu_tcg.c
> @@ -1035,6 +1035,7 @@ static const struct TCGCPUOps arm_v7m_tcg_ops = {
>       .initialize = arm_translate_init,
>       .synchronize_from_tb = arm_cpu_synchronize_from_tb,
>       .debug_excp_handler = arm_debug_excp_handler,
> +    .restore_state_to_opc = arm_restore_state_to_opc,

Oops indeed :/

I double checked, arm_v7m_tcg_ops is the single TCGCPUOps missed.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Stefan Hajnoczi Nov. 30, 2022, 7:46 p.m. UTC | #4
Merged, thanks!

Stefan
diff mbox series

Patch

diff --git a/target/arm/internals.h b/target/arm/internals.h
index d9121d9ff8..161e42d50f 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -185,6 +185,10 @@  static inline int r14_bank_number(int mode)
 void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu);
 void arm_translate_init(void);
 
+void arm_restore_state_to_opc(CPUState *cs,
+                              const TranslationBlock *tb,
+                              const uint64_t *data);
+
 #ifdef CONFIG_TCG
 void arm_cpu_synchronize_from_tb(CPUState *cs, const TranslationBlock *tb);
 #endif /* CONFIG_TCG */
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index a021df9e9e..38d066c294 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -91,9 +91,9 @@  void arm_cpu_synchronize_from_tb(CPUState *cs,
     }
 }
 
-static void arm_restore_state_to_opc(CPUState *cs,
-                                     const TranslationBlock *tb,
-                                     const uint64_t *data)
+void arm_restore_state_to_opc(CPUState *cs,
+                              const TranslationBlock *tb,
+                              const uint64_t *data)
 {
     CPUARMState *env = cs->env_ptr;
 
diff --git a/target/arm/cpu_tcg.c b/target/arm/cpu_tcg.c
index 60ff539fa1..9a2cef7d05 100644
--- a/target/arm/cpu_tcg.c
+++ b/target/arm/cpu_tcg.c
@@ -1035,6 +1035,7 @@  static const struct TCGCPUOps arm_v7m_tcg_ops = {
     .initialize = arm_translate_init,
     .synchronize_from_tb = arm_cpu_synchronize_from_tb,
     .debug_excp_handler = arm_debug_excp_handler,
+    .restore_state_to_opc = arm_restore_state_to_opc,
 
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv = arm_cpu_record_sigsegv,