[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Patch] target-ppc mtcrf instruction not recognized

From: Pierre d'Herbemont
Subject: Re: [Qemu-devel] [Patch] target-ppc mtcrf instruction not recognized
Date: Tue, 17 May 2005 22:17:40 +0200

On 16 mai 05, at 09:54, Benjamin Herrenschmidt wrote:

OK, I did put this in my working repository and I'll submit this to
Please try to do this change to check if other bits need to be relax or

Index: target-ppc/translate.c
RCS file: /cvsroot/qemu/qemu/target-ppc/translate.c,v
retrieving revision 1.31
diff -u -r1.31 translate.c
--- target-ppc/translate.c      12 May 2005 18:46:11 -0000      1.31
+++ target-ppc/translate.c      14 May 2005 17:14:35 -0000
@@ -2123,7 +2123,7 @@

 /* mtcrf */
-GEN_HANDLER(mtcrf, 0x1F, 0x10, 0x04, 0x00100801, PPC_MISC)
+GEN_HANDLER(mtcrf, 0x1F, 0x10, 0x04, 0x00000801, PPC_MISC)

I've tested it: it works fine as expected.

And maybe someone should fill an Apple bug report to tell them their as
is buggy ;-)

It is definitely a bug in Apple assembler I would say, so I suggest you
add a comment in the above patch in order to avoid somebody later on
"fixing" your mask :)

I thought it was, but it seems to be not so buggy ;)

I have had a look at the Apple's as source code of Darwin 8.0 (10.4) [1] and I have found an interesting comment :
             * If this is the mtcrf opcode (0x7c000120) and val is not zero and
             * has exactly one bit set then use the new form of the mtcrf
             * opcode.  This has bit 0x00100000 set and the FXM field is a bit
             * mask. Else use the old form without bit 0x00100000 set.

I don't know what they are refering to, but that may have been introduced by the PowerPC 970 or an other new PPC, since it was not present on the Mac OS X 10.2's as [2].


 [1] http://darwinsource.opendarwin.org/10.4/cctools-576/as/ppc.c
 [2] http://darwinsource.opendarwin.org/10.2/cctools-435/as/ppc.c

reply via email to

[Prev in Thread] Current Thread [Next in Thread]