main.c (ff74c5a9a91c6dbf1017195462aa4176f7381240) main.c (b4916d7b9d6b086d653db090d366ffe2f44c1323)
1/*
2 * qemu user main
3 *
4 * Copyright (c) 2003-2008 Fabrice Bellard
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or

--- 1624 unchanged lines hidden (view full) ---

1633 EXCP_DUMP(env, "No Altivec instructions allowed\n");
1634 info.si_signo = TARGET_SIGILL;
1635 info.si_errno = 0;
1636 info.si_code = TARGET_ILL_COPROC;
1637 info._sifields._sigfault._addr = env->nip - 4;
1638 queue_signal(env, info.si_signo, &info);
1639 break;
1640 case POWERPC_EXCP_PIT: /* Programmable interval timer IRQ */
1/*
2 * qemu user main
3 *
4 * Copyright (c) 2003-2008 Fabrice Bellard
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or

--- 1624 unchanged lines hidden (view full) ---

1633 EXCP_DUMP(env, "No Altivec instructions allowed\n");
1634 info.si_signo = TARGET_SIGILL;
1635 info.si_errno = 0;
1636 info.si_code = TARGET_ILL_COPROC;
1637 info._sifields._sigfault._addr = env->nip - 4;
1638 queue_signal(env, info.si_signo, &info);
1639 break;
1640 case POWERPC_EXCP_PIT: /* Programmable interval timer IRQ */
1641 cpu_abort(env, "Programable interval timer interrupt "
1641 cpu_abort(env, "Programmable interval timer interrupt "
1642 "while in user mode. Aborting\n");
1643 break;
1644 case POWERPC_EXCP_IO: /* IO error exception */
1645 cpu_abort(env, "IO error exception while in user mode. "
1646 "Aborting\n");
1647 break;
1648 case POWERPC_EXCP_RUNM: /* Run mode exception */
1649 cpu_abort(env, "Run mode exception while in user mode. "

--- 779 unchanged lines hidden (view full) ---

2429 env->regs[3] = ret;
2430 env->sregs[SR_PC] = env->regs[14];
2431 break;
2432 case EXCP_HW_EXCP:
2433 env->regs[17] = env->sregs[SR_PC] + 4;
2434 if (env->iflags & D_FLAG) {
2435 env->sregs[SR_ESR] |= 1 << 12;
2436 env->sregs[SR_PC] -= 4;
1642 "while in user mode. Aborting\n");
1643 break;
1644 case POWERPC_EXCP_IO: /* IO error exception */
1645 cpu_abort(env, "IO error exception while in user mode. "
1646 "Aborting\n");
1647 break;
1648 case POWERPC_EXCP_RUNM: /* Run mode exception */
1649 cpu_abort(env, "Run mode exception while in user mode. "

--- 779 unchanged lines hidden (view full) ---

2429 env->regs[3] = ret;
2430 env->sregs[SR_PC] = env->regs[14];
2431 break;
2432 case EXCP_HW_EXCP:
2433 env->regs[17] = env->sregs[SR_PC] + 4;
2434 if (env->iflags & D_FLAG) {
2435 env->sregs[SR_ESR] |= 1 << 12;
2436 env->sregs[SR_PC] -= 4;
2437 /* FIXME: if branch was immed, replay the imm aswell. */
2437 /* FIXME: if branch was immed, replay the imm as well. */
2438 }
2439
2440 env->iflags &= ~(IMM_FLAG | D_FLAG);
2441
2442 switch (env->sregs[SR_ESR] & 31) {
2443 case ESR_EC_DIVZERO:
2444 info.si_signo = SIGFPE;
2445 info.si_errno = 0;

--- 1375 unchanged lines hidden ---
2438 }
2439
2440 env->iflags &= ~(IMM_FLAG | D_FLAG);
2441
2442 switch (env->sregs[SR_ESR] & 31) {
2443 case ESR_EC_DIVZERO:
2444 info.si_signo = SIGFPE;
2445 info.si_errno = 0;

--- 1375 unchanged lines hidden ---