Lines Matching +full:check +full:- +full:patch
4 * Copyright (c) 2003-2008 Fabrice Bellard
23 #include "user-internals.h"
25 #include "signal-common.h"
60 return -1; in ppc_dcr_read()
65 return -1; in ppc_dcr_write()
91 case POWERPC_EXCP_MCHECK: /* Machine check exception */ in cpu_loop()
92 cpu_abort(cs, "Machine check exception while in user mode. " in cpu_loop()
99 env->spr[SPR_DAR]); in cpu_loop()
107 /* XXX: check this */ in cpu_loop()
108 switch (env->error_code & ~0xF) { in cpu_loop()
111 switch (env->error_code & 0xF) { in cpu_loop()
139 env->error_code); in cpu_loop()
146 switch (env->error_code & 0xF) { in cpu_loop()
161 env->error_code & 0xF); in cpu_loop()
168 switch (env->error_code & 0xF) { in cpu_loop()
177 env->error_code & 0xF); in cpu_loop()
189 env->error_code); in cpu_loop()
192 force_sig_fault(si_signo, si_code, env->nip); in cpu_loop()
194 case POWERPC_EXCP_FPU: /* Floating-point unavailable exception */ in cpu_loop()
196 case POWERPC_EXCP_SPEU: /* SPE/embedded floating-point unavail. */ in cpu_loop()
198 force_sig_fault(TARGET_SIGILL, TARGET_ILL_COPROC, env->nip); in cpu_loop()
209 case POWERPC_EXCP_FIT: /* Fixed-interval timer interrupt */ in cpu_loop()
225 case POWERPC_EXCP_EFPDI: /* Embedded floating-point data IRQ */ in cpu_loop()
226 cpu_abort(cs, "Embedded floating-point data IRQ not handled\n"); in cpu_loop()
228 case POWERPC_EXCP_EFPRI: /* Embedded floating-point round IRQ */ in cpu_loop()
229 cpu_abort(cs, "Embedded floating-point round IRQ not handled\n"); in cpu_loop()
261 * we use this exception to emulate step-by-step execution mode. in cpu_loop()
290 "while in user-mode. Aborting"); in cpu_loop()
293 cpu_abort(cs, "Data load TLB exception while in user-mode. " in cpu_loop()
297 cpu_abort(cs, "Data store TLB exception while in user-mode. " in cpu_loop()
300 case POWERPC_EXCP_FPA: /* Floating-point assist exception */ in cpu_loop()
301 cpu_abort(cs, "Floating-point assist exception not handled\n"); in cpu_loop()
321 case POWERPC_EXCP_SOFTP: /* Soft patch exception */ in cpu_loop()
322 cpu_abort(cs, "Soft patch exception not handled\n"); in cpu_loop()
329 /* system call in user-mode emulation */ in cpu_loop()
334 env->crf[0] &= ~0x1; in cpu_loop()
335 env->nip += 4; in cpu_loop()
336 ret = do_syscall(env, env->gpr[0], env->gpr[3], env->gpr[4], in cpu_loop()
337 env->gpr[5], env->gpr[6], env->gpr[7], in cpu_loop()
338 env->gpr[8], 0, 0); in cpu_loop()
339 if (ret == -QEMU_ERESTARTSYS) { in cpu_loop()
340 env->nip -= 4; in cpu_loop()
343 if (ret == (target_ulong)(-QEMU_ESIGRETURN)) { in cpu_loop()
348 if (ret > (target_ulong)(-515)) { in cpu_loop()
349 env->crf[0] |= 0x1; in cpu_loop()
350 ret = -ret; in cpu_loop()
352 env->gpr[3] = ret; in cpu_loop()
355 force_sig_fault(TARGET_SIGTRAP, TARGET_TRAP_BRKPT, env->nip); in cpu_loop()
376 env->reserve_addr = -1; in cpu_loop()
386 int flag = (env->insns_flags2 & PPC2_BOOKE206) ? MSR_CM : MSR_SF; in target_cpu_copy_regs()
388 ppc_store_msr(env, env->msr & ~((target_ulong)1 << flag)); in target_cpu_copy_regs()
390 ppc_store_msr(env, env->msr | (target_ulong)1 << flag); in target_cpu_copy_regs()
394 env->nip = regs->nip; in target_cpu_copy_regs()
396 env->gpr[i] = regs->gpr[i]; in target_cpu_copy_regs()