summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/sparc/sparc.h
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-06-18 17:06:49 +0200
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-06-18 17:06:49 +0200
commitcaf907403afd76dc1d662df666d67273072d55dd (patch)
tree531261cce537d032612e3f4f648d10e6cef3dd01 /src/devices/cpu/sparc/sparc.h
parent6d50e3cb360945da98531acc685e8193e309157f (diff)
Add (untested) trap support to SPARC core
Diffstat (limited to 'src/devices/cpu/sparc/sparc.h')
-rw-r--r--src/devices/cpu/sparc/sparc.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/devices/cpu/sparc/sparc.h b/src/devices/cpu/sparc/sparc.h
index 5e963e18df9..337fa1bcfc1 100644
--- a/src/devices/cpu/sparc/sparc.h
+++ b/src/devices/cpu/sparc/sparc.h
@@ -46,11 +46,17 @@ public:
UINT32 pc() { return m_pc; }
protected:
+ void queue_trap(UINT8 type, UINT8 tt_override = 0);
+ bool invoke_queued_traps();
+ bool check_main_traps(UINT32 op, bool privileged, UINT32 alignment, UINT8 registeralign, bool noimmediate);
+
void update_gpr_pointers();
void save_restore_update_cwp(UINT32 op, UINT8 new_cwp);
bool execute_group2(UINT32 op);
void execute_group3(UINT32 op);
bool execute_bicc(UINT32 op);
+ bool execute_ticc(UINT32 op);
+ bool evaluate_condition(UINT32 op);
// address spaces
const address_space_config m_as8_config;
@@ -102,6 +108,9 @@ protected:
UINT8 m_asi;
// other internal states
+ UINT8 m_trap_priorities[256];
+ UINT8 m_queued_tt;
+ UINT8 m_queued_priority;
UINT32 m_nextnpc;
int m_icount;