mirror of
https://github.com/n64dev/cen64.git
synced 2024-06-20 21:17:58 -04:00
49 lines
1.6 KiB
C
49 lines
1.6 KiB
C
//
|
|
// vr4300/fault.h: VR4300 fault management.
|
|
//
|
|
// CEN64: Cycle-Accurate Nintendo 64 Emulator.
|
|
// Copyright (C) 2015, Tyler J. Stachecki.
|
|
//
|
|
// This file is subject to the terms and conditions defined in
|
|
// 'LICENSE', which is part of this source code package.
|
|
//
|
|
|
|
#ifndef __vr4300_fault_h__
|
|
#define __vr4300_fault_h__
|
|
|
|
// Currently using fixed values....
|
|
#define DCACHE_ACCESS_DELAY (46 - 2)
|
|
#define ICACHE_ACCESS_DELAY (50 - 2)
|
|
#define MEMORY_WORD_DELAY 38
|
|
|
|
enum vr4300_fault_id {
|
|
#define X(fault) VR4300_FAULT_##fault,
|
|
#include "vr4300/fault.md"
|
|
NUM_VR4300_FAULTS
|
|
#undef X
|
|
};
|
|
|
|
extern const char *vr4300_fault_mnemonics[NUM_VR4300_FAULTS];
|
|
|
|
cen64_cold void VR4300_BRPT(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_TRAP(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_CPU(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_DADE(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_DCB(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_DCM(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_IADE(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_ICB(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_INTR(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_INV(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_LDI(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_RI(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_RST(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_SYSC(struct vr4300 *vr4300);
|
|
cen64_cold void VR4300_WAT(struct vr4300 *vr4300);
|
|
|
|
cen64_cold void VR4300_DTLB(struct vr4300 *vr4300, unsigned miss, unsigned inv, unsigned mod);
|
|
cen64_cold void VR4300_ITLB(struct vr4300 *vr4300, unsigned miss);
|
|
|
|
#endif
|
|
|