qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4
@ 2018-04-15  9:46 Laurent Vivier
  2018-04-15  9:46 ` [Qemu-devel] [PULL 1/1] m68k: fix exception stack frame for 68000 Laurent Vivier
  2018-04-16 10:50 ` [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4 Peter Maydell
  0 siblings, 2 replies; 3+ messages in thread
From: Laurent Vivier @ 2018-04-15  9:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Laurent Vivier

The following changes since commit 38e83a71d02e026d4a6d0ab1ef9855c4924c2c68:

  Update version for v2.12.0-rc3 release (2018-04-11 19:03:24 +0100)

are available in the Git repository at:

  git://github.com/vivier/qemu-m68k.git tags/m68k-for-2.12-pull-request

for you to fetch changes up to 000761dc0c97d70e7314db3e8f52783880325a22:

  m68k: fix exception stack frame for 68000 (2018-04-15 11:37:58 +0200)

----------------------------------------------------------------
This patch fixes a problem with the exception stack for
68000 only CPU. As we use 68040 for linux-user and coldfire
for softmmu, I don't think we should trigger a -rc4
only for that, so merge this only if a -rc4 is needed
by something else.
----------------------------------------------------------------

Pavel Dovgalyuk (1):
  m68k: fix exception stack frame for 68000

 target/m68k/op_helper.c | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Qemu-devel] [PULL 1/1] m68k: fix exception stack frame for 68000
  2018-04-15  9:46 [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4 Laurent Vivier
@ 2018-04-15  9:46 ` Laurent Vivier
  2018-04-16 10:50 ` [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4 Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Laurent Vivier @ 2018-04-15  9:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: Laurent Vivier, Pavel Dovgalyuk

From: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>

68000 CPUs do not save format in the exception stack frame.
This patch adds feature checking to prevent format saving for 68000.
m68k_ret() already includes this modification, this patch fixes
the exception processing function too.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20180413133041.29509.59064.stgit@pasha-VirtualBox>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 target/m68k/op_helper.c | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c
index 3a7f7f2219..8d09ed91c4 100644
--- a/target/m68k/op_helper.c
+++ b/target/m68k/op_helper.c
@@ -287,22 +287,25 @@ static inline void do_stack_frame(CPUM68KState *env, uint32_t *sp,
                                   uint16_t format, uint16_t sr,
                                   uint32_t addr, uint32_t retaddr)
 {
-    CPUState *cs = CPU(m68k_env_get_cpu(env));
-    switch (format) {
-    case 4:
-        *sp -= 4;
-        cpu_stl_kernel(env, *sp, env->pc);
-        *sp -= 4;
-        cpu_stl_kernel(env, *sp, addr);
-        break;
-    case 3:
-    case 2:
-        *sp -= 4;
-        cpu_stl_kernel(env, *sp, addr);
-        break;
+    if (m68k_feature(env, M68K_FEATURE_QUAD_MULDIV)) {
+        /*  all except 68000 */
+        CPUState *cs = CPU(m68k_env_get_cpu(env));
+        switch (format) {
+        case 4:
+            *sp -= 4;
+            cpu_stl_kernel(env, *sp, env->pc);
+            *sp -= 4;
+            cpu_stl_kernel(env, *sp, addr);
+            break;
+        case 3:
+        case 2:
+            *sp -= 4;
+            cpu_stl_kernel(env, *sp, addr);
+            break;
+        }
+        *sp -= 2;
+        cpu_stw_kernel(env, *sp, (format << 12) + (cs->exception_index << 2));
     }
-    *sp -= 2;
-    cpu_stw_kernel(env, *sp, (format << 12) + (cs->exception_index << 2));
     *sp -= 4;
     cpu_stl_kernel(env, *sp, retaddr);
     *sp -= 2;
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4
  2018-04-15  9:46 [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4 Laurent Vivier
  2018-04-15  9:46 ` [Qemu-devel] [PULL 1/1] m68k: fix exception stack frame for 68000 Laurent Vivier
@ 2018-04-16 10:50 ` Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2018-04-16 10:50 UTC (permalink / raw)
  To: Laurent Vivier; +Cc: QEMU Developers

On 15 April 2018 at 10:46, Laurent Vivier <laurent@vivier.eu> wrote:
> The following changes since commit 38e83a71d02e026d4a6d0ab1ef9855c4924c2c68:
>
>   Update version for v2.12.0-rc3 release (2018-04-11 19:03:24 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/vivier/qemu-m68k.git tags/m68k-for-2.12-pull-request
>
> for you to fetch changes up to 000761dc0c97d70e7314db3e8f52783880325a22:
>
>   m68k: fix exception stack frame for 68000 (2018-04-15 11:37:58 +0200)
>
> ----------------------------------------------------------------
> This patch fixes a problem with the exception stack for
> 68000 only CPU. As we use 68040 for linux-user and coldfire
> for softmmu, I don't think we should trigger a -rc4
> only for that, so merge this only if a -rc4 is needed
> by something else.
> ----------------------------------------------------------------
>
> Pavel Dovgalyuk (1):
>   m68k: fix exception stack frame for 68000
>
>  target/m68k/op_helper.c | 33 ++++++++++++++++++---------------
>  1 file changed, 18 insertions(+), 15 deletions(-)

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-04-16 10:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-15  9:46 [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4 Laurent Vivier
2018-04-15  9:46 ` [Qemu-devel] [PULL 1/1] m68k: fix exception stack frame for 68000 Laurent Vivier
2018-04-16 10:50 ` [Qemu-devel] [PULL 0/1] m68k fixes for 2.12-rc4 Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).