From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FqVZF-0004KG-Tc for qemu-devel@nongnu.org; Wed, 14 Jun 2006 09:37:57 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FqVZF-0004Ju-8O for qemu-devel@nongnu.org; Wed, 14 Jun 2006 09:37:57 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FqVZF-0004Jp-3m for qemu-devel@nongnu.org; Wed, 14 Jun 2006 09:37:57 -0400 Received: from [199.232.41.3] (helo=savannah.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FqViQ-00082P-8s for qemu-devel@nongnu.org; Wed, 14 Jun 2006 09:47:26 -0400 Received: from savannah.gnu.org ([127.0.0.1]) by savannah.gnu.org with esmtp (Exim 3.36 #1 (Debian)) id 1FqVZD-0000OA-00 for ; Wed, 14 Jun 2006 09:37:55 -0400 Received: from bellard by savannah.gnu.org with local (Exim 4.50) id 1FqVZD-0000O1-D6 for qemu-devel@nongnu.org; Wed, 14 Jun 2006 13:37:55 +0000 Message-Id: From: Fabrice Bellard Date: Wed, 14 Jun 2006 13:37:55 +0000 Subject: [Qemu-devel] qemu/linux-user main.c 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 CVSROOT: /sources/qemu Module name: qemu Changes by: Fabrice Bellard 06/06/14 13:37:55 Modified files: linux-user : main.c Log message: MIPS FPU support in linux user emulation CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/qemu/linux-user/main.c?cvsroot=qemu&r1=1.84&r2=1.85 Patches: Index: main.c =================================================================== RCS file: /sources/qemu/qemu/linux-user/main.c,v retrieving revision 1.84 retrieving revision 1.85 diff -u -b -r1.84 -r1.85 --- main.c 11 Jun 2006 13:32:59 -0000 1.84 +++ main.c 14 Jun 2006 13:37:55 -0000 1.85 @@ -1327,7 +1327,6 @@ arg5, arg6); } - fail: env->PC += 4; if ((unsigned int)ret >= (unsigned int)(-1133)) { env->gpr[7] = 1; /* error flag */ @@ -1342,40 +1341,11 @@ break; case EXCP_CpU: case EXCP_RI: - { - uint32_t insn, op; - - insn = tget32(env->PC); - op = insn >> 26; - // printf("insn=%08x op=%02x\n", insn, op); - /* XXX: totally dummy FP ops just to be able to launch - a few executables */ - switch(op) { - case 0x31: /* LWC1 */ - env->PC += 4; - break; - case 0x39: /* SWC1 */ - env->PC += 4; - break; - case 0x11: - switch((insn >> 21) & 0x1f) { - case 0x02: /* CFC1 */ - env->PC += 4; - break; - default: - goto sigill; - } - break; - default: - sigill: info.si_signo = TARGET_SIGILL; info.si_errno = 0; info.si_code = 0; queue_signal(info.si_signo, &info); break; - } - } - break; default: // error: fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", @@ -1700,6 +1670,9 @@ env->gpr[i] = regs->regs[i]; } env->PC = regs->cp0_epc; +#ifdef MIPS_USES_FPU + env->CP0_Status |= (1 << CP0St_CU1); +#endif } #elif defined(TARGET_SH4) {