[Qemu-devel] [PATCH v2 1/2] target/s390x: specification exceptions are suppressing

David Hildenbrand posted 2 patches 8 years, 8 months ago
[Qemu-devel] [PATCH v2 1/2] target/s390x: specification exceptions are suppressing
Posted by David Hildenbrand 8 years, 8 months ago
The PSW in the old PSW has to point at the next instruction, as
specification exceptions are defined to be "suppressing or completed",
but not nullified.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/s390x/helper.c b/target/s390x/helper.c
index a8d20c5..42a2465 100644
--- a/target/s390x/helper.c
+++ b/target/s390x/helper.c
@@ -737,6 +737,6 @@ void s390x_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
     if (retaddr) {
         cpu_restore_state(cs, retaddr);
     }
-    program_interrupt(env, PGM_SPECIFICATION, ILEN_LATER);
+    program_interrupt(env, PGM_SPECIFICATION, ILEN_LATER_INC);
 }
 #endif /* CONFIG_USER_ONLY */
-- 
2.9.3


Re: [Qemu-devel] [PATCH v2 1/2] target/s390x: specification exceptions are suppressing
Posted by Richard Henderson 8 years, 8 months ago
On 06/09/2017 06:34 AM, David Hildenbrand wrote:
> The PSW in the old PSW has to point at the next instruction, as
> specification exceptions are defined to be "suppressing or completed",
> but not nullified.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>   target/s390x/helper.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/s390x/helper.c b/target/s390x/helper.c
> index a8d20c5..42a2465 100644
> --- a/target/s390x/helper.c
> +++ b/target/s390x/helper.c
> @@ -737,6 +737,6 @@ void s390x_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
>       if (retaddr) {
>           cpu_restore_state(cs, retaddr);
>       }
> -    program_interrupt(env, PGM_SPECIFICATION, ILEN_LATER);
> +    program_interrupt(env, PGM_SPECIFICATION, ILEN_LATER_INC);

I folded this into your following patch to use ILEN_AUTO.


r~