CVSROOT: /sources/qemu Module name: qemu Changes by: Fabrice Bellard <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) { _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel