All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Éric Bischoff" <ebischoff@nerim.net>
To: Richard Henderson <rth@twiddle.net>
Cc: Alexander Graf <agraf@suse.de>, Michal Marek <mmarek@suse.cz>,
	Miroslav Benes <mbenes@suse.cz>,
	QEmu developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] Adding support for LPD and LPDG instructions
Date: Sun, 26 Feb 2017 17:10:28 +0100	[thread overview]
Message-ID: <1599197.qxnXlczcy2@eric> (raw)
In-Reply-To: <a26cf735-bbb6-5be7-7575-198ec55a3ecc@twiddle.net>

Le samedi 25 février 2017, 10:42:43 CET Richard Henderson a écrit :
> On 02/23/2017 10:58 PM, Eric Bischoff wrote:
> > +/* LOAD PAIR DISJOINT */
> > +    C(0xc804, LPD,     SSF,   ILA, m1_32s, m2_32s, 0, r3_P32, movx, 0)
> > +    C(0xc805, LPDG,    SSF,   ILA, m1_64, m2_64, 0, r3_P64, movx, 0)
> 
> Missing is the update to the condition codes.
> I think just setting CC = 3 (not loaded interlocked) is probably fine.

Hi Richard,


thanks a lot for the feedback.

When trying on real hardware, I was always getting CC == 0 (loaded 
interlocked). It seems to be the usual and simplest case, where fetch was 
immediately succesful.

Case CC == 3 makes it needed to use a loop:

       2. When the resulting condition code is 3, the pro-
          gram may branch back to reexecute the LOAD
          PAIR DISJOINT instruction. However, after
          repeated unsuccessful attempts to attain an
          interlocked fetch, the program should use an
          alternate means of serializing access to the stor-
          age operands. It is recommended that the pro-
          gram reexecute the LOAD PAIR DISJOINT no
          more than 10 times before branching to the alter-
          nate path.

Therefore I think that setting CC = 0 is the correct emulation.

I assumed that putting 0 in last column of C() macro was the way to set CC = 
0. I apologize if that was wrong, and if so, please tell me, and I'll correct.


Best,

-- 
Éric Bischoff

       reply	other threads:[~2017-02-26 16:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20170223115805.16688-1-ebischoff@suse.com>
     [not found] ` <20170223115805.16688-2-ebischoff@suse.com>
     [not found]   ` <a26cf735-bbb6-5be7-7575-198ec55a3ecc@twiddle.net>
2017-02-26 16:10     ` Éric Bischoff [this message]
2017-02-27 10:48       ` [Qemu-devel] [PATCH] Adding support for LPD and LPDG instructions Éric Bischoff
2017-02-28 12:01 Eric Bischoff
2017-02-28 17:57 ` Richard Henderson
2017-02-28 23:10 ` Richard Henderson
  -- strict thread matches above, loose matches on Subject: below --
2017-02-28 11:35 [Qemu-devel] [PATCHv3] " Eric Bischoff
2017-02-28 11:35 ` [Qemu-devel] [PATCH] " Eric Bischoff
2017-02-28 11:42   ` no-reply
2017-02-27 11:22 [Qemu-devel] [PATCH v2] " Eric Bischoff
2017-02-27 11:22 ` [Qemu-devel] [PATCH] " Eric Bischoff
2017-02-27 19:10   ` Richard Henderson
2017-02-28  8:58     ` Éric Bischoff
2017-02-24 13:19 [Qemu-devel] (no subject) Eric Bischoff
2017-02-24 13:19 ` [Qemu-devel] [PATCH] Adding support for LPD and LPDG instructions Eric Bischoff

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=1599197.qxnXlczcy2@eric \
    --to=ebischoff@nerim.net \
    --cc=agraf@suse.de \
    --cc=mbenes@suse.cz \
    --cc=mmarek@suse.cz \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.