#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <unistd.h>#include "cpu.h"#include "float_emul.h"#include "interrupt.h"#include "machine.h"#include "memory.h"#include "misc.h"#include "settings.h"#include "symbol.h"#include "thirdparty/m8820x_pte.h"#include "thirdparty/m88k_dmt.h"#include "thirdparty/mvmeprom.h"#include "tmp_m88k_head.cc"#include "tmp_m88k_tail.cc"Go to the source code of this file.
Macros | |
| #define | DYNTRANS_32 |
| #define | DYNTRANS_DELAYSLOT |
Functions | |
| void | m88k_pc_to_pointers (struct cpu *) |
| void | m88k_cpu_functioncall_trace (struct cpu *cpu, int n_args) |
| void | m88k_irq_interrupt_assert (struct interrupt *interrupt) |
| void | m88k_irq_interrupt_deassert (struct interrupt *interrupt) |
| int | m88k_cpu_new (struct cpu *cpu, struct memory *mem, struct machine *machine, int cpu_id, char *cpu_type_name) |
| void | m88k_cpu_dumpinfo (struct cpu *cpu) |
| void | m88k_cpu_list_available_types (void) |
| int | m88k_cpu_instruction_has_delayslot (struct cpu *cpu, unsigned char *ib) |
| void | m88k_cpu_register_dump (struct cpu *cpu, int gprs, int coprocs) |
| void | m88k_cpu_tlbdump (struct machine *m, int x, int rawflag) |
| void | m88k_ldcr (struct cpu *cpu, uint32_t *r32ptr, int cr) |
| void | m88k_stcr (struct cpu *cpu, uint32_t value, int cr, int rte) |
| void | m88k_fstcr (struct cpu *cpu, uint32_t value, int fcr) |
| void | m88k_exception (struct cpu *cpu, int vector, int is_trap) |
| int | m88k_cpu_disassemble_instr (struct cpu *cpu, unsigned char *ib, int running, uint64_t dumpaddr) |
| #define DYNTRANS_32 |
Definition at line 57 of file cpu_m88k.cc.
| #define DYNTRANS_DELAYSLOT |
Definition at line 58 of file cpu_m88k.cc.
| int m88k_cpu_disassemble_instr | ( | struct cpu * | cpu, |
| unsigned char * | ib, | ||
| int | running, | ||
| uint64_t | dumpaddr | ||
| ) |
Definition at line 835 of file cpu_m88k.cc.
References cpu::byte_order, cpu::cd, cpu::cpu_id, m88k_cpu::cr, debug, cpu::delay_slot, EMUL_LITTLE_ENDIAN, get_symbol_name(), cpu::m88k, M88K_CR_PSR, M88K_PSR_MODE, cpu::machine, machine::ncpus, cpu::pc, cpu::running, and machine::symbol_context.
| void m88k_cpu_dumpinfo | ( | struct cpu * | cpu | ) |
Definition at line 198 of file cpu_m88k.cc.
References cpu::byte_order, debug, and EMUL_BIG_ENDIAN.
| void m88k_cpu_functioncall_trace | ( | struct cpu * | cpu, |
| int | n_args | ||
| ) |
Referenced by m88k_exception().
| int m88k_cpu_instruction_has_delayslot | ( | struct cpu * | cpu, |
| unsigned char * | ib | ||
| ) |
Definition at line 236 of file cpu_m88k.cc.
References BE32_TO_HOST, cpu::byte_order, EMUL_LITTLE_ENDIAN, and LE32_TO_HOST.
| void m88k_cpu_list_available_types | ( | void | ) |
Definition at line 214 of file cpu_m88k.cc.
References debug, M88K_CPU_TYPE_DEFS, m88k_cpu_type_def::name, and strlen().
| int m88k_cpu_new | ( | struct cpu * | cpu, |
| struct memory * | mem, | ||
| struct machine * | machine, | ||
| int | cpu_id, | ||
| char * | cpu_type_name | ||
| ) |
Definition at line 101 of file cpu_m88k.cc.
| void m88k_cpu_register_dump | ( | struct cpu * | cpu, |
| int | gprs, | ||
| int | coprocs | ||
| ) |
Definition at line 272 of file cpu_m88k.cc.
References cpu::cd, cpu::cpu_id, debug, get_symbol_name(), cpu::m88k, cpu::machine, MACHINE_MVME88K_197, machine::machine_subtype, N_M88K_REGS, cpu::pc, m88k_cpu::r, and machine::symbol_context.
| void m88k_cpu_tlbdump | ( | struct machine * | m, |
| int | x, | ||
| int | rawflag | ||
| ) |
Definition at line 338 of file cpu_m88k.cc.
References m8820x_cmmu::batc, BATC_GLOBAL, BATC_INH, BATC_PROT, BATC_SO, BATC_WT, cpu::cd, m88k_cpu::cmmu, machine::cpus, M8820X_PATC_SUPERVISOR_BIT, cpu::m88k, MAX_M8820X_CMMUS, N_M88200_BATC_REGS, N_M88200_PATC_ENTRIES, machine::ncpus, m8820x_cmmu::patc_p_and_supervisorbit, m8820x_cmmu::patc_update_index, m8820x_cmmu::patc_v_and_control, PG_M, PG_PROT, PG_SO, PG_U, PG_U0, PG_U1, and PG_V.
| void m88k_exception | ( | struct cpu * | cpu, |
| int | vector, | ||
| int | is_trap | ||
| ) |
Definition at line 648 of file cpu_m88k.cc.
References cpu::cd, m88k_cpu::cr, debug, cpu::delay_slot, m88k_cpu::delay_target, m88k_cpu::dma, m88k_cpu::dmd, m88k_cpu::dmt, EXCEPTION_IN_DELAY_SLOT, fatal(), cpu::m88k, m88k_cpu_functioncall_trace(), M88K_CR_DMA0, M88K_CR_DMA1, M88K_CR_DMA2, M88K_CR_DMD0, M88K_CR_DMD1, M88K_CR_DMD2, M88K_CR_DMT0, M88K_CR_DMT1, M88K_CR_DMT2, M88K_CR_EPSR, M88K_CR_PSR, M88K_CR_SFIP, M88K_CR_SNIP, M88K_CR_SSBR, M88K_CR_SXIP, M88K_CR_VBR, M88K_EXCEPTION_BOUNDS_CHECK_VIOLATION, M88K_EXCEPTION_DATA_ACCESS, M88K_EXCEPTION_ERROR, M88K_EXCEPTION_ILLEGAL_INTEGER_DIVIDE, M88K_EXCEPTION_INSTRUCTION_ACCESS, M88K_EXCEPTION_INTEGER_OVERFLOW, M88K_EXCEPTION_INTERRUPT, M88K_EXCEPTION_MISALIGNED_ACCESS, M88K_EXCEPTION_PRIVILEGE_VIOLATION, M88K_EXCEPTION_RESET, M88K_EXCEPTION_SFU1_IMPRECISE, M88K_EXCEPTION_SFU1_PRECISE, M88K_EXCEPTION_UNIMPLEMENTED_OPCODE, M88K_EXCEPTION_USER_TRAPS_START, M88K_NIP_V, M88K_PSR_IND, M88K_PSR_MODE, M88K_PSR_SFD1, M88K_PSR_SFRZ, m88k_stcr(), M88K_XIP_E, M88K_XIP_V, MVMEPROM_VECTOR, NOT_DELAYED, cpu::pc, and m88k_cpu::r.
Referenced by m88k_translate_v2p(), MEMORY_RW(), and X().
| void m88k_fstcr | ( | struct cpu * | cpu, |
| uint32_t | value, | ||
| int | fcr | ||
| ) |
Definition at line 587 of file cpu_m88k.cc.
References cpu::cd, m88k_cpu::cr, fatal(), and cpu::m88k.
Referenced by X().
| void m88k_irq_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 407 of file cpu_m88k.cc.
References cpu::cd, interrupt::extra, m88k_cpu::irq_asserted, and cpu::m88k.
| void m88k_irq_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 412 of file cpu_m88k.cc.
References cpu::cd, interrupt::extra, m88k_cpu::irq_asserted, and cpu::m88k.
| void m88k_ldcr | ( | struct cpu * | cpu, |
| uint32_t * | r32ptr, | ||
| int | cr | ||
| ) |
Definition at line 425 of file cpu_m88k.cc.
References cpu::cd, m88k_cpu::cr, DMT_BO, DMT_DREGBITS, DMT_VALID, DMT_WRITE, fatal(), cpu::m88k, M88K_CR_DMA0, M88K_CR_DMA1, M88K_CR_DMA2, M88K_CR_DMD0, M88K_CR_DMD1, M88K_CR_DMD2, M88K_CR_DMT0, M88K_CR_DMT1, M88K_CR_DMT2, M88K_CR_EPSR, M88K_CR_PID, M88K_CR_PSR, M88K_CR_SFIP, M88K_CR_SNIP, M88K_CR_SR0, M88K_CR_SR1, M88K_CR_SR2, M88K_CR_SR3, M88K_CR_SSBR, M88K_CR_SXIP, M88K_CR_VBR, M88K_PSR_BO, and M88K_ZERO_REG.
Referenced by X().
| void m88k_pc_to_pointers | ( | struct cpu * | ) |
| void m88k_stcr | ( | struct cpu * | cpu, |
| uint32_t | value, | ||
| int | cr, | ||
| int | rte | ||
| ) |
Definition at line 503 of file cpu_m88k.cc.
References cpu::byte_order, cpu::cd, m88k_cpu::cr, EMUL_BIG_ENDIAN, EMUL_LITTLE_ENDIAN, fatal(), INVALIDATE_ALL, cpu::invalidate_translation_caches, cpu::m88k, M88K_CR_DMT0, M88K_CR_DMT1, M88K_CR_DMT2, M88K_CR_EPSR, M88K_CR_PSR, M88K_CR_SFIP, M88K_CR_SNIP, M88K_CR_SR0, M88K_CR_SR1, M88K_CR_SR2, M88K_CR_SR3, M88K_CR_SSBR, M88K_CR_SXIP, M88K_CR_VBR, M88K_PSR_BO, M88K_PSR_MODE, and M88K_PSR_MXM.
Referenced by m88k_exception(), and X().
1.8.17