qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: David Hildenbrand <david@redhat.com>, qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org
Subject: Re: [PATCH v3 01/18] target/s390x: Truncate 32-bit psw_addr before creating TB
Date: Fri, 27 Sep 2019 11:24:59 -0700	[thread overview]
Message-ID: <ad93614e-6114-1f45-1965-88f8207377b7@linaro.org> (raw)
In-Reply-To: <bc398595-cdc8-80bd-a7f9-56ae01b35674@redhat.com>

On 9/27/19 3:23 AM, David Hildenbrand wrote:
>> +    pc = env->psw.addr;
>> +    if (!(flags & FLAG_MASK_64)) {
>> +        pc &= 0x7fffffff;
>> +    }
> 
> If you're fancy, you could also add 24-bit addressing mode wrapping.
> 
> Maybe unlikely(!(flags & FLAG_MASK_64)), but not sure how big the gain
> will actually be.

So, it appears that this patch, and the existing code in
s390x_tr_init_disas_context, are wrong.

Page 4-7 of the v11 PoO says that we must generate a specification exception
and not wrap.  I believe that the only way to force this to happen is with an
explicit LOAD PSW EXTENDED instruction.  Branches and sequential instruction
execution both wrap the addresses before writing back to the PSW.

I will drop this patch for now and we'll look again at instruction address later.


r~


  reply	other threads:[~2019-09-27 18:27 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-26 16:25 [PATCH v3 00/18] target/s390: Use tcg unwinding for ilen Richard Henderson
2019-09-26 16:25 ` [PATCH v3 01/18] target/s390x: Truncate 32-bit psw_addr before creating TB Richard Henderson
2019-09-27 10:23   ` David Hildenbrand
2019-09-27 18:24     ` Richard Henderson [this message]
2019-09-26 16:25 ` [PATCH v3 02/18] target/s390x: Add ilen to unwind data Richard Henderson
2019-09-27 10:30   ` David Hildenbrand
2019-09-27 16:02     ` Richard Henderson
2019-09-30  7:55       ` David Hildenbrand
2019-09-30 15:03         ` Richard Henderson
2019-09-30 15:42           ` David Hildenbrand
2019-09-30 16:15             ` Richard Henderson
2019-09-30 17:13               ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 03/18] target/s390x: Remove ilen parameter from tcg_s390_program_interrupt Richard Henderson
2019-09-27 10:31   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 04/18] target/s390x: Remove ilen parameter from s390_program_interrupt Richard Henderson
2019-09-27 10:34   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 05/18] target/s390x: Use tcg_s390_program_interrupt in TCG helpers Richard Henderson
2019-09-27 10:40   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 06/18] target/s390x: Push trigger_pgm_exception lower in s390_cpu_tlb_fill Richard Henderson
2019-09-27 10:41   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 07/18] target/s390x: Handle tec " Richard Henderson
2019-09-27 10:42   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 08/18] target/s390: Return exception from mmu_translate_real Richard Henderson
2019-09-27 10:44   ` David Hildenbrand
2019-09-27 12:47     ` David Hildenbrand
2019-09-27 16:08     ` Richard Henderson
2019-09-26 16:26 ` [PATCH v3 09/18] target/s390x: Remove exc argument to mmu_translate_asce Richard Henderson
2019-09-27 10:45   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 10/18] target/s390: Return exception from mmu_translate Richard Henderson
2019-09-27 10:55   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 11/18] target/s390: Return exception from translate_pages Richard Henderson
2019-09-27 10:56   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 12/18] target/s390x: Remove fail variable from s390_cpu_tlb_fill Richard Henderson
2019-09-27 10:56   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 13/18] target/s390x: Simplify helper_lra Richard Henderson
2019-09-27 10:57   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 14/18] target/s390x: Rely on unwinding in s390_cpu_tlb_fill Richard Henderson
2019-09-27 11:02   ` David Hildenbrand
2019-09-27 16:16     ` Richard Henderson
2019-09-30  7:56       ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 15/18] target/s390x: Rely on unwinding in s390_cpu_virt_mem_rw Richard Henderson
2019-09-27 11:04   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 16/18] target/s390x: Remove ILEN_AUTO Richard Henderson
2019-09-27 11:04   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 17/18] target/s390x: Remove ilen argument from trigger_access_exception Richard Henderson
2019-09-27 11:04   ` David Hildenbrand
2019-09-26 16:26 ` [PATCH v3 18/18] target/s390x: Remove ilen argument from trigger_pgm_exception Richard Henderson
2019-09-27 11:05   ` David Hildenbrand
2019-09-27  8:18 ` [PATCH v3 00/18] target/s390: Use tcg unwinding for ilen David Hildenbrand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ad93614e-6114-1f45-1965-88f8207377b7@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=david@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).