0708220c | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle CLRL and CLGFRL with non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.co
target/s390x: Handle CLRL and CLGFRL with non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggested-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-9-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
2b25c824 | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle CGRL and CLGRL with non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com
target/s390x: Handle CGRL and CLGRL with non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggested-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-8-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
227a9f79 | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle CRL and CGFRL with non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
target/s390x: Handle CRL and CGFRL with non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggested-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-7-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
4942e4cc | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle LLGFRL from non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Sugges
target/s390x: Handle LLGFRL from non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggested-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-6-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
e6d70c82 | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle LRL and LGFRL from non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
target/s390x: Handle LRL and LGFRL from non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggested-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-5-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
2a00d55d | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle LGRL from non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggeste
target/s390x: Handle LGRL from non-aligned addresses
Use MO_ALIGN and let do_unaligned_access() generate a specification exception.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Suggested-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-4-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
ce7ca269 | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle EXECUTE of odd addresses
Generate a specification exception in the helper before trying to fetch the instruction.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signe
target/s390x: Handle EXECUTE of odd addresses
Generate a specification exception in the helper before trying to fetch the instruction.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-3-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
39344bbc | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Handle branching to odd addresses
Let branching happen and try to generate a new translation block with an odd address. Generate a specification exception in cpu_get_tb_cpu_state().
R
target/s390x: Handle branching to odd addresses
Let branching happen and try to generate a new translation block with an odd address. Generate a specification exception in cpu_get_tb_cpu_state().
Reported-by: Harold Grovesteen <h.grovsteen@tx.rr.com> Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230316164428.275147-2-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
703d03a4 | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Fix EXECUTE of relative long instructions
The code uses the wrong base for relative addressing: it should use the target instruction address and not the EXECUTE's address.
Fix by stor
target/s390x: Fix EXECUTE of relative long instructions
The code uses the wrong base for relative addressing: it should use the target instruction address and not the EXECUTE's address.
Fix by storing the target instruction address in the new CPUS390XState member and loading it from the code generated by gen_ri2().
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: David Hildenbrand <david@redhat.com> Message-Id: <20230316210751.302423-2-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
9701596d | 16-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Fix R[NOX]SBG with T=1
RXSBG usage in the "filetests" test from the wasmtime testsuite makes tcg_reg_alloc_op() attempt to temp_load() a TEMP_VAL_DEAD temporary, causing an assertion f
target/s390x: Fix R[NOX]SBG with T=1
RXSBG usage in the "filetests" test from the wasmtime testsuite makes tcg_reg_alloc_op() attempt to temp_load() a TEMP_VAL_DEAD temporary, causing an assertion failure:
0x01000a70: ec14 b040 3057 rxsbg %r1, %r4, 0xb0, 0x40, 0x30
OP after optimization and liveness analysis: ---- 0000000001000a70 0000000000000004 0000000000000006 rotl_i64 tmp2,r4,$0x30 dead: 1 2 pref=0xffff and_i64 tmp2,tmp2,$0x800000000000ffff dead: 1 pref=0xffff [xor_i64 tmp3,tmp3,tmp2 dead: 1 2 pref=0xffff] and_i64 cc_dst,tmp3,$0x800000000000ffff sync: 0 dead: 0 1 2 pref=0xffff mov_i64 psw_addr,$0x1000a76 sync: 0 dead: 0 1 pref=0xffff mov_i32 cc_op,$0x6 sync: 0 dead: 0 1 pref=0xffff call lookup_tb_ptr,$0x6,$1,tmp8,env dead: 1 pref=none goto_ptr tmp8 dead: 0 set_label $L0 exit_tb $0x7fffe809d183
../tcg/tcg.c:3865: tcg fatal error
The reason is that tmp3 does not have an initial value, which confuses the register allocator. This also affects the correctness of the results.
Fix by assigning R1 to it.
Exposed by commit e2e641fa3d5 ("tcg: Change default temp lifetime to TEMP_TB").
Fixes: d6c6372e186e ("target-s390: Implement R[NOX]SBG") Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: David Hildenbrand <david@redhat.com> Message-Id: <20230316172205.281369-2-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
199c42a6 | 14-Mar-2023 |
Ilya Leoshkevich <iii@linux.ibm.com> |
target/s390x: Implement Early Exception Recognition
Generate a specification exception if a reserved bit is set in the PSW mask or if the PSW address is out of bounds dictated by the addressing mode
target/s390x: Implement Early Exception Recognition
Generate a specification exception if a reserved bit is set in the PSW mask or if the PSW address is out of bounds dictated by the addressing mode.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: David Hildenbrand <david@redhat.com> Message-Id: <20230315020408.384766-3-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
dd161de7 | 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Remove g_out, g_out2, g_in1, g_in2 from DisasContext
These fields are no longer read, so remove them and the writes.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya L
target/s390x: Remove g_out, g_out2, g_in1, g_in2 from DisasContext
These fields are no longer read, so remove them and the writes.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
ab9984bd | 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Remove assert vs g_in2
These were trying to determine if o->in2 was available for use as a temporary. It's better to just allocate a new one.
Acked-by: David Hildenbrand <david@redha
target/s390x: Remove assert vs g_in2
These were trying to determine if o->in2 was available for use as a temporary. It's better to just allocate a new one.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
3ac6f91b | 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Drop tcg_temp_free from translate.c
Translators are no longer required to free tcg temporaries.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya Leoshkevich <iii@linux
target/s390x: Drop tcg_temp_free from translate.c
Translators are no longer required to free tcg temporaries.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
5fa1ad41 | 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Drop tcg_temp_free from translate_vx.c.inc
Translators are no longer required to free tcg temporaries.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya Leoshkevich <ii
target/s390x: Drop tcg_temp_free from translate_vx.c.inc
Translators are no longer required to free tcg temporaries.
Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|