From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GpQlT-00035e-Ef for qemu-devel@nongnu.org; Wed, 29 Nov 2006 09:50:23 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GpQlR-00034Z-OL for qemu-devel@nongnu.org; Wed, 29 Nov 2006 09:50:23 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GpQlR-00034U-Kg for qemu-devel@nongnu.org; Wed, 29 Nov 2006 09:50:21 -0500 Received: from [193.7.176.60] (helo=mail.bawue.net) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1GpQlP-0006UW-J2 for qemu-devel@nongnu.org; Wed, 29 Nov 2006 09:50:21 -0500 Received: from lagash (intrt.mips-uk.com [194.74.144.130]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.bawue.net (Postfix) with ESMTP id B9B6ABA5C1 for ; Wed, 29 Nov 2006 15:52:17 +0100 (CET) Received: from ths by lagash with local (Exim 4.63) (envelope-from ) id 1GpQll-0000p1-Pp for qemu-devel@nongnu.org; Wed, 29 Nov 2006 14:50:41 +0000 Date: Wed, 29 Nov 2006 14:50:41 +0000 Message-ID: <20061129145041.GA2777@networkno.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="oyUTqETQ0mS9luUI" Content-Disposition: inline From: Thiemo Seufer Subject: [Qemu-devel] [PATCH 6/6, UPDATE] A cumulative MIPS patchset Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --oyUTqETQ0mS9luUI Content-Type: text/plain; charset=us-ascii Content-Disposition: inline [The previous patch had a broken MIPS32R2 bitops implementation, and was apparently too big to make it to the list. I retry now with a compressed attachment.] Hello All, this patch adds support for all mandatory MIPS32R2 instructions, rationalizes the instruction decoding to check always 32-bit words, reduces the number of magic constants in the code, adds a few bits which make eventually implementation of MIPS64 support and optional MIPS32 features easier. The emulated CPU still identifies itself as a MIPS32(R1) 4Kc. Currently it doesn't throw a RI exception for R2 instructions, this is useful for Linux userland emulation, and also follows the current policy which doesn't distinguish between MIPS32R1 instructions and those of earlier ISAs. Thiemo --oyUTqETQ0mS9luUI Content-Type: application/octet-stream Content-Disposition: attachment; filename="opcode-handling.gz" Content-Transfer-Encoding: base64 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 --oyUTqETQ0mS9luUI--