summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/cpu/dsp56k/opcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/cpu/dsp56k/opcode.h')
-rw-r--r--trunk/src/emu/cpu/dsp56k/opcode.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/trunk/src/emu/cpu/dsp56k/opcode.h b/trunk/src/emu/cpu/dsp56k/opcode.h
new file mode 100644
index 00000000000..cd841e2d1a8
--- /dev/null
+++ b/trunk/src/emu/cpu/dsp56k/opcode.h
@@ -0,0 +1,46 @@
+#ifndef __DSP56K_OPCODE_H__
+#define __DSP56K_OPCODE_H__
+
+#include "emu.h"
+#include "inst.h"
+#include "pmove.h"
+
+#include "dsp56k.h"
+
+//
+// An Opcode contains an instruction and a parallel move operation.
+//
+namespace DSP56K
+{
+
+class Instruction;
+class ParallelMove;
+
+class Opcode
+{
+public:
+ Opcode(UINT16 w0, UINT16 w1);
+ virtual ~Opcode();
+
+ astring disassemble() const;
+ void evaluate(dsp56k_core* cpustate) const;
+ size_t size() const;
+ size_t evalSize() const;
+
+ // Peek through to the instruction
+ const reg_id& instSource() const;
+ const reg_id& instDestination() const;
+ const size_t instAccumulatorBitsModified() const;
+
+private:
+ Instruction* m_instruction;
+ ParallelMove* m_parallelMove;
+
+ UINT16 m_word0;
+ UINT16 m_word1;
+
+ astring dcString() const;
+};
+
+}
+#endif