qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jocelyn Mayer <l_indien@magic.fr>
To: Julian Seward <jseward@acm.org>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: emu errors for creqv,crnand,crnor,crorc ?
Date: Wed, 31 Oct 2007 14:56:57 +0100	[thread overview]
Message-ID: <1193839017.24629.33.camel@jma4.dev.netgem.com> (raw)
In-Reply-To: <200710311439.04939.jseward@acm.org>


On Wed, 2007-10-31 at 14:39 +0100, Julian Seward wrote:
> > > way around.  Below is a simple test case.  On QEMU it prints
> > >
> > >   result is 000fc000
> > >
> > > and on a real 7447
> > >
> > >   result is 00004000
> > >
> >  What is strange is that 0xFC + 0x04... I will have to check all the CR
> > ops, I guess...
> 
> Another strange thing is that 000fc000 does not have 'fc' byte-aligned
> inside CR, if you see what I mean.  If it was 0000fc00 or 00fc0000, some
> byte-inversion mistake would seem likely.
> 
> This isn't a 74xx specific result.  I'm sure any ppc should produce
> 00004000.  The test is very simple: make CR=0 then do crorc 17,14,15.
> So only 1 bit in CR will then be set - all others are zero.

I guess the problem is the CRops are implemented this way:
- get the bit from crfA
- get the bit from crfB
- do the logical operation
- store the result bit
As the faulting ops are the one that do a complement, it's quite sure
that the problem is that the result bit is not properly masked before
being stored. Then the '4' bit is OK, but you also get 'noisy' other
bits that should have been masked before the store.
As the condition register is stored as 8 4 bits registers, this would
affect only the updated CR field.

      reply	other threads:[~2007-10-31 13:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-31 11:37 [Qemu-devel] emu errors for creqv,crnand,crnor,crorc ? Julian Seward
2007-10-31 13:27 ` [Qemu-devel] " Jocelyn Mayer
2007-10-31 13:39   ` Julian Seward
2007-10-31 13:56     ` Jocelyn Mayer [this message]

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=1193839017.24629.33.camel@jma4.dev.netgem.com \
    --to=l_indien@magic.fr \
    --cc=jseward@acm.org \
    --cc=qemu-devel@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).