Lines Matching defs:processor
92 and forcing a restart of the processor */
96 perform_oea_interrupt(cpu *processor,
108 cpu_error(processor, cia,
121 cpu_synchronize_context(processor, cia);
128 machine_check_interrupt(cpu *processor,
135 cpu_error(processor, cia, "machine-check interrupt");
140 cia = perform_oea_interrupt(processor, cia, 0x00200, 0, 0, 0, 0);
141 cpu_restart(processor, cia);
152 data_storage_interrupt(cpu *processor,
196 cia = perform_oea_interrupt(processor, cia, 0x00300, 0, 0, 0, 0);
197 cpu_restart(processor, cia);
209 instruction_storage_interrupt(cpu *processor,
243 cia = perform_oea_interrupt(processor, cia, 0x00400, 0, 0, 0, srr1_set);
244 cpu_restart(processor, cia);
257 alignment_interrupt(cpu *processor,
265 cpu_error(processor, cia, "alignment interrupt - ra=0x%lx", (unsigned long)ra);
274 cia = perform_oea_interrupt(processor, cia, 0x00600, 0, 0, 0, 0);
275 cpu_restart(processor, cia);
288 program_interrupt(cpu *processor,
298 cpu_error(processor, cia, "program interrupt - %s",
302 cpu_error(processor, cia, "program interrupt - %s",
306 cpu_error(processor, cia, "program interrupt - %s",
310 cpu_error(processor, cia, "program interrupt - %s",
314 cpu_error(processor, cia, "program interrupt - %s",
318 cpu_error(processor, cia, "program interrupt - %s",
344 cpu_error(processor, cia, "program interrupt - %s",
355 cia = perform_oea_interrupt(processor, cia, 0x00700, 0, 0, 0, srr1_set);
356 cpu_restart(processor, cia);
368 floating_point_unavailable_interrupt(cpu *processor,
375 cpu_error(processor, cia, "floating-point unavailable interrupt");
380 cia = perform_oea_interrupt(processor, cia, 0x00800, 0, 0, 0, 0);
381 cpu_restart(processor, cia);
392 system_call_interrupt(cpu *processor,
401 os_emul_system_call(processor, cia);
402 cpu_restart(processor, cia+4);
405 cia = perform_oea_interrupt(processor, cia+4, 0x00c00, 0, 0, 0, 0);
406 cpu_restart(processor, cia);
416 floating_point_assist_interrupt(cpu *processor,
423 cpu_error(processor, cia, "floating-point assist interrupt");
427 cia = perform_oea_interrupt(processor, cia, 0x00e00, 0, 0, 0, 0);
428 cpu_restart(processor, cia);
445 cpu *processor = (cpu*)data;
446 interrupts *ints = cpu_interrupts(processor);
448 if ((cpu_registers(processor)->msr & (msr_floating_point_exception_mode_0
450 && cpu_registers(processor)->fpscr & fpscr_fex) {
452 unsigned_word cia = cpu_get_program_counter(processor);
453 unsigned_word nia = perform_oea_interrupt(processor,
455 cpu_set_program_counter(processor, nia);
457 else if (cpu_registers(processor)->msr & msr_external_interrupt_enable) {
460 unsigned_word cia = cpu_get_program_counter(processor);
461 unsigned_word nia = perform_oea_interrupt(processor,
464 cpu_set_program_counter(processor, nia);
468 unsigned_word cia = cpu_get_program_counter(processor);
469 unsigned_word nia = perform_oea_interrupt(processor,
473 (unsigned long)event_queue_time(psim_event_queue(cpu_system(processor)))
475 cpu_set_program_counter(processor, nia);
483 schedule_hardware_interrupt_delivery(cpu *processor)
485 interrupts *ints = cpu_interrupts(processor);
488 event_queue_schedule(psim_event_queue(cpu_system(processor)),
489 0, deliver_hardware_interrupt, processor);
496 check_masked_interrupts(cpu *processor)
498 if (((cpu_registers(processor)->msr & (msr_floating_point_exception_mode_0
500 && cpu_registers(processor)->fpscr & fpscr_fex)
501 || ((cpu_registers(processor)->msr & msr_external_interrupt_enable)
502 && (cpu_interrupts(processor)->pending_interrupts)))
503 schedule_hardware_interrupt_delivery(processor);
508 decrementer_interrupt(cpu *processor)
510 interrupts *ints = cpu_interrupts(processor);
512 if (cpu_registers(processor)->msr & msr_external_interrupt_enable) {
513 schedule_hardware_interrupt_delivery(processor);
519 external_interrupt(cpu *processor,
522 interrupts *ints = cpu_interrupts(processor);
526 if (cpu_registers(processor)->msr & msr_external_interrupt_enable)
527 schedule_hardware_interrupt_delivery(processor);
532 ASSERT(!(cpu_registers(processor)->msr & msr_external_interrupt_enable));