summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/dsp56156/inst.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/dsp56156/inst.h')
-rw-r--r--src/devices/cpu/dsp56156/inst.h845
1 files changed, 280 insertions, 565 deletions
diff --git a/src/devices/cpu/dsp56156/inst.h b/src/devices/cpu/dsp56156/inst.h
index c471b492ecf..4fcf7f66bdb 100644
--- a/src/devices/cpu/dsp56156/inst.h
+++ b/src/devices/cpu/dsp56156/inst.h
@@ -1,7 +1,9 @@
// license:BSD-3-Clause
// copyright-holders:Andrew Gardner
-#ifndef DSP56156_INSTRUCTION_H
-#define DSP56156_INSTRUCTION_H
+#ifndef MAME_CPU_DSP56156_INST_H
+#define MAME_CPU_DSP56156_INST_H
+
+#pragma once
#include "opcode.h"
#include "tables.h"
@@ -13,8 +15,8 @@
//
// An Instruction is the base class all regular ops inherit from.
//
-namespace DSP_56156
-{
+namespace DSP_56156 {
+
#define UNIMPLEMENTED_OPCODE() osd_printf_error("Unimplemented opcode: PC=%04x | %s;\n", PC, __PRETTY_FUNCTION__);
class Opcode;
@@ -30,8 +32,7 @@ public:
virtual ~Instruction() {}
virtual bool decode(const uint16_t word0, const uint16_t word1) = 0;
- virtual void disassemble(std::string& retString) const = 0;
- virtual void evaluate(dsp56156_core* cpustate) = 0;
+ virtual std::string disassemble() const = 0;
virtual size_t size() const = 0;
virtual size_t evalSize() const { return size(); }
@@ -78,11 +79,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "abs " + regIdAsString(m_destination);
+ return "abs " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -101,11 +101,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "adc " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "adc " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -124,11 +123,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "add " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "add " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -151,11 +149,10 @@ public:
// TODO: m_opcode = "add";
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = m_opcode + " " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return m_opcode + " " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -178,11 +175,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "and " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "and " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -202,14 +198,10 @@ public:
decode_EE_table(BITSn(word0,0x0600), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#$%x,%s", m_immediate, regIdAsString(m_destination).c_str());
- retString = "andi " + std::string(temp);
- // NEW // sprintf(opcode_str, "and(i)");
+ return util::string_format("andi #$%x,%s", m_immediate, regIdAsString(m_destination));
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -230,11 +222,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "asl " + regIdAsString(m_destination);
+ return "asl " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -252,11 +243,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "asl4 " + regIdAsString(m_destination);
+ return "asl4 " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -274,11 +264,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "asr " + regIdAsString(m_destination);
+ return "asr " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -296,11 +285,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "asr4 " + regIdAsString(m_destination);
+ return "asr4 " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -318,11 +306,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "asr16 " + regIdAsString(m_destination);
+ return "asr16 " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -372,14 +359,10 @@ public:
}
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#$%x", m_iVal);
- retString = m_opcode + " " + std::string(temp) + "," + dString;
- // NEW // sprintf(temp, "#$%04x", iVal);
+ return util::string_format("%s #$%x,%s", m_opcode, m_iVal, dString);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
private:
@@ -433,19 +416,10 @@ public:
}
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#$%x", m_iVal);
- std::string source = temp;
-
- sprintf(temp, "X:(%s)", regIdAsString(m_r).c_str());
- std::string destination = temp;
-
- retString = m_opcode + " " + source + "," + destination;
- // NEW // sprintf(temp, "#$%04x", m_iVal);
+ return util::string_format("%s #$%x,X:(%s)", m_opcode, m_iVal, regIdAsString(m_r));
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -499,16 +473,10 @@ public:
}
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#$%x", m_iVal);
- std::string source = temp;
-
- retString = m_opcode + " " + source + "," + regIdAsString(m_destination);
- // NEW // sprintf(temp, "#$%04x", m_iVal);
+ return util::string_format("%s #$%x,%s", m_opcode, m_iVal, regIdAsString(m_destination));
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -533,17 +501,10 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "b" + opMnemonicAsString(m_mnem);
- // NEW // sprintf(opcode_str, "b.%s", M);
-
- char temp[32];
- sprintf(temp, ">*+$%x", 2 + m_immediate);
- // NEW // sprintf(temp, "$%04x (%d)", pc + 2 + (int16_t)word1, (int16_t)word1);
- retString = opcode + " " + std::string(temp);
+ return util::string_format("b%s >*+$%x", opMnemonicAsString(m_mnem), 2 + m_immediate);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -568,19 +529,13 @@ public:
m_immediate = get_6_bit_signed_value(BITSn(word0,0x003f));
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "b" + opMnemonicAsString(m_mnem);
- // NEW // sprintf(opcode_str, "b.%s", M);
-
- char temp[32];
- if (m_immediate >= 0) sprintf(temp, "<*+$%x", m_immediate + 1);
- else sprintf(temp, "<*-$%x", 1 - m_immediate - 2);
- // NEW // sprintf(temp, "$%04x (%d)", pc + 1 + relativeInt, relativeInt);
-
- retString = opcode + " " + std::string(temp);
+ if (m_immediate >= 0)
+ return util::string_format("b%s <*+$%x", opMnemonicAsString(m_mnem), m_immediate + 1);
+ else
+ return util::string_format("b%s <*-$%x", opMnemonicAsString(m_mnem), 1 - m_immediate - 2);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -604,13 +559,11 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "b" + opMnemonicAsString(m_mnem);
- retString = opcode + " " + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "b.%s", M);
+ return opcode + " " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -632,14 +585,10 @@ public:
m_immediate = (int16_t)word1;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, ">*+$%x", 2 + m_immediate);
- // NEW // sprintf(temp, "$%04x (%d)", pc + 2 + word1, (int16_t)word1);
- retString = "bra " + std::string(temp);
+ return util::string_format("bra >*+$%x", 2 + m_immediate);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -661,15 +610,13 @@ public:
m_immediate = (int8_t)BITSn(word0,0x00ff);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- if (m_immediate >= 0) sprintf(temp, "<*+$%x", 1 + m_immediate);
- else sprintf(temp, "<*-$%x", 1 - m_immediate - 2);
- // NEW // sprintf(temp, "$%04x (%d)", pc + 1 + iVal, iVal);
- retString = "bra " + std::string(temp);
+ if (m_immediate >= 0)
+ return util::string_format("bra <*+$%x", 1 + m_immediate);
+ else
+ return util::string_format("bra <*-$%x", 1 - m_immediate - 2);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -690,11 +637,10 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "bra " + regIdAsString(m_destination);
+ return "bra " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -713,13 +659,10 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "brk" + opMnemonicAsString(m_mnem);
- retString = opcode;
- // NEW // sprintf(opcode_str, "brk.%s", M);
+ return "brk" + opMnemonicAsString(m_mnem);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -743,19 +686,13 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "bs" + opMnemonicAsString(m_mnem);
- // NEW // sprintf(opcode_str, "bs.%s", M);
-
- char temp[32];
- if (m_immediate >= 0) sprintf(temp, ">*+$%x", 2 + m_immediate);
- else sprintf(temp, ">*-$%x", 1 - m_immediate - 1 - 2);
- //sprintf(temp, ">*+$%x", 2 + m_immediate);
- // NEW // sprintf(temp, "$%04x (%d)", pc + 2 + (int16_t)word1, (int16_t)word1);
- retString = opcode + " " + std::string(temp);
+ if (m_immediate >= 0)
+ return util::string_format("bs%s >*+$%x", opMnemonicAsString(m_mnem), 2 + m_immediate);
+ else
+ return util::string_format("bs%s >*-$%x", opMnemonicAsString(m_mnem), 1 - m_immediate - 1 - 2);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -780,13 +717,11 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "bs" + opMnemonicAsString(m_mnem);
- retString = opcode + " " + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "bs.%s", M);
+ return opcode + " " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -809,15 +744,13 @@ public:
m_immediate = (int16_t)word1;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- if (m_immediate >= 0) sprintf(temp, ">*+$%x", 2 + m_immediate);
- else sprintf(temp, ">*-$%x", 1 - m_immediate - 1 - 2);
- // NEW // sprintf(temp, "$%04x (%d)", pc + 2 + (int16_t)word1, (int16_t)word1);
- retString = "bsr " + std::string(temp);
+ if (m_immediate >= 0)
+ return util::string_format("bsr >*+$%x", 2 + m_immediate);
+ else
+ return util::string_format("bsr >*-$%x", 1 - m_immediate - 1 - 2);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -839,11 +772,10 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "bsr " + regIdAsString(m_destination);
+ return "bsr " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -861,11 +793,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "chkaau";
+ return "chkaau";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -883,11 +814,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "clr " + regIdAsString(m_destination);
+ return "clr " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -905,11 +835,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "clr24 " + regIdAsString(m_destination);
+ return "clr24 " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -930,11 +859,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "cmp " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "cmp " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_NONE; }
};
@@ -955,11 +883,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "cmpm " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "cmpm " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_NONE; }
};
@@ -976,11 +903,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "debug";
+ return "debug";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -999,13 +925,11 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "debug" + opMnemonicAsString(m_mnem);
- retString = opcode;
- // NEW // sprintf(opcode_str, "debug.%s", M);
+ return opcode;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1026,11 +950,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "dec " + regIdAsString(m_destination);
+ return "dec " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -1048,11 +971,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "dec24 " + regIdAsString(m_destination);
+ return "dec24 " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -1071,11 +993,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "div " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "div " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -1099,16 +1020,14 @@ public:
if (m_mnem == oINVALID) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "dmac" + opMnemonicAsString(m_mnem);
- retString = opcode + " " +
+ return opcode + " " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "dmac(%s)", A);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1132,19 +1051,10 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_source);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "*+$%x", 2 + m_immediate);
- std::string destination = temp;
- // NEW // sprintf(temp, "X:(R%d),$%02x", Rnum, pc + 2 + word1);
-
- sprintf(temp, "X:(%s)", regIdAsString(m_source).c_str());
- std::string source = temp;
-
- retString = "do " + source + "," + destination;
+ return util::string_format("do X:(%s),*+$%x", regIdAsString(m_source), 2 + m_immediate);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1168,14 +1078,10 @@ public:
m_displacement = word1;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#<$%x,*+$%x", m_immediate, 2 + m_displacement);
- // NEW // sprintf(temp, "#$%02x,$%04x", BITSn(word0,0x00ff), pc + 2 + word1);
- retString = "do " + std::string(temp);
+ return util::string_format("do #<$%x,*+$%x", m_immediate, 2 + m_displacement);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1202,14 +1108,10 @@ public:
if (m_source == iINVALID) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "*+$%x", 2 + m_displacement);
- // NEW // sprintf(temp, "%s,$%04x", S1, pc + 2 + word1);
- retString = "do " + regIdAsString(m_source) + "," + std::string(temp);
+ return util::string_format("do %s,*+$%x", regIdAsString(m_source), 2 + m_displacement);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1231,15 +1133,10 @@ public:
m_displacement = word1;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "*+$%x", m_displacement + 2);
- // NEW // sprintf(temp, "*+$%x", pc + word1);
- // NEW // sprintf(temp, "$%04x", pc + 2 + word1);
- retString = "do forever, " + std::string(temp);
+ return util::string_format("do forever, *+$%x", m_displacement + 2);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1259,11 +1156,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "enddo";
+ return "enddo";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -1282,11 +1178,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "eor " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "eor " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -1304,11 +1199,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "ext " + regIdAsString(m_destination);
+ return "ext " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -1325,11 +1219,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "illegal";
+ return "illegal";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -1349,13 +1242,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "imac " +
+ return "imac " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1378,13 +1270,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "impy " +
+ return "impy " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1405,11 +1296,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "inc " + regIdAsString(m_destination);
+ return "inc " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -1427,11 +1317,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "inc24 " + regIdAsString(m_destination);
+ return "inc24 " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -1452,17 +1341,10 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "j" + opMnemonicAsString(m_mnem);
- // NEW // sprintf(opcode_str, "j.%s", M);
-
- char temp[32];
- sprintf(temp, ">$%x", m_displacement);
- // NEW // sprintf(temp, "$%04x", word1);
- retString = opcode + " " + std::string(temp);
+ return util::string_format("j%s >$%x", opMnemonicAsString(m_mnem), m_displacement);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1486,13 +1368,11 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "j" + opMnemonicAsString(m_mnem);
- retString = opcode + " " + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "j.%s", M);
+ return opcode + " " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1514,19 +1394,9 @@ public:
m_displacement = word1;
return true;
}
- void disassemble(std::string& retString) const override
- {
- char temp[32];
- sprintf(temp, ">$%x", m_displacement);
- // NEW // sprintf(temp, "$%04x", word1);
- retString = "jmp " + std::string(temp);
- }
- void evaluate(dsp56156_core* cpustate) override
+ std::string disassemble() const override
{
- PC = m_displacement;
-
- /* S L E U N Z V C */
- /* - - - - - - - - */
+ return util::string_format("jmp >$%x", m_displacement);
}
size_t size() const override { return 2; }
size_t evalSize() const override { return 0; }
@@ -1549,16 +1419,9 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
- {
- retString = "jmp " + regIdAsString(m_destination);
- }
- void evaluate(dsp56156_core* cpustate) override
+ std::string disassemble() const override
{
- PC = regValue16(cpustate, m_destination);
-
- /* S L E U N Z V C */
- /* - - - - - - - - */
+ return "jmp " + regIdAsString(m_destination);
}
size_t size() const override { return 1; }
size_t evalSize() const override { return 0; }
@@ -1583,17 +1446,10 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "js" + opMnemonicAsString(m_mnem);
- // NEW // sprintf(opcode_str, "js.%s", M);
-
- char temp[32];
- sprintf(temp, ">$%x", m_displacement);
- // NEW // sprintf(temp, "$%04x", word1);
- retString = opcode + " " + std::string(temp);
+ return util::string_format("js%s >$%x", opMnemonicAsString(m_mnem), m_displacement);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -1618,13 +1474,11 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "js" + opMnemonicAsString(m_mnem);
- retString = opcode + " " + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "js.%s", M);
+ return opcode + " " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -1647,14 +1501,10 @@ public:
m_displacement = word1;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, ">$%x", m_displacement);
- // NEW // sprintf(temp, "$%04x", word1);
- retString = "jsr " + std::string(temp);
+ return util::string_format("jsr >$%x", m_displacement);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -1677,14 +1527,10 @@ public:
m_bAddr = BITSn(word0,0x00ff);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "<$%x", m_bAddr);
- // NEW // sprintf(temp, "#$%02x", BITSn(word0,0x00ff));
- retString = "jsr " + std::string(temp);
+ return util::string_format("jsr <$%x", m_bAddr);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -1706,11 +1552,10 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "jsr " + regIdAsString(m_destination);
+ return "jsr " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OVER; }
@@ -1727,7 +1572,7 @@ public:
}
bool decode(const uint16_t word0, const uint16_t word1) override
{
- if ((word0 & 0x000c) == 0) return false; // NEW TODO //
+ if ((word0 & 0x000c) == 0) return false;
decode_TT_table(BITSn(word0,0x0030), m_destination);
@@ -1736,12 +1581,11 @@ public:
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
// HACK
- retString = "lea " + m_ea + "," + regIdAsString(m_destination);
+ return "lea " + m_ea + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1759,7 +1603,7 @@ public:
}
bool decode(const uint16_t word0, const uint16_t word1) override
{
- if ((word0 & 0x000c) == 0) return false; // NEW TODO //
+ if ((word0 & 0x000c) == 0) return false;
decode_NN_table(BITSn(word0,0x0030), m_destination);
@@ -1768,12 +1612,11 @@ public:
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
// HACK
- retString = "lea " + m_ea + "," + regIdAsString(m_destination);
+ return "lea " + m_ea + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1794,11 +1637,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "lsl " + regIdAsString(m_destination);
+ return "lsl " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -1816,11 +1658,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "lsr " + regIdAsString(m_destination);
+ return "lsr " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -1843,16 +1684,15 @@ public:
decode_kSign_table(BITSn(word0,0x40), m_sign);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string ts = m_sign;
if (ts.compare("-") != 0) ts = "";
- retString = "mac " +
+ return "mac " +
ts +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1876,13 +1716,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "mac " +
+ return "mac " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1905,13 +1744,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "mac " +
+ return "mac " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1937,16 +1775,15 @@ public:
decode_kSign_table(BITSn(word0,0x40), m_sign);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string ts = m_sign;
if (ts.compare("-") != 0) ts = "";
- retString = "macr " +
+ return "macr " +
ts +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -1970,13 +1807,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "macr " +
+ return "macr " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2003,16 +1839,14 @@ public:
decode_s_table(BITSn(word0,0x0004), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "mac" + opMnemonicAsString(m_mnem);
- retString = opcode + " " +
+ return opcode + " " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "mac(%s)", A);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2048,14 +1882,13 @@ public:
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
if (m_isNop)
- retString = "nop";
+ return "nop";
else
- retString = "move";
+ return "move";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_NONE; }
@@ -2082,11 +1915,10 @@ public:
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "move";
+ return "move";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -2109,14 +1941,13 @@ public:
decode_HHH_table(BITSn(word1,0x0e00), m_SD);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_reg_from_W_table(m_W, 'X', m_SD, m_b, source, destination);
- retString = "move " + source + "," + destination;
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2147,15 +1978,13 @@ public:
if (m_SD == iINVALID) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source, destination);
- retString = "move " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(c)");
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2186,15 +2015,13 @@ public:
if (m_SD == iINVALID) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source, destination);
- retString = "move " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(c)");
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2224,15 +2051,13 @@ public:
if (m_SD == iINVALID) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source, destination);
- retString = "move " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(c)");
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2268,48 +2093,16 @@ public:
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string ea;
assemble_ea_from_t_table(m_t, m_value, ea);
- retString = "move ";
+ std::string retString = "move ";
if (m_W) retString += ea + "," + regIdAsString(m_sd);
else retString += regIdAsString(m_sd) + "," + ea;
- // NEW // sprintf(opcode_str, "move(c)");
- }
- void evaluate(dsp56156_core* cpustate) override
- {
- if (m_W)
- {
- if (m_t)
- {
- setReg16(cpustate, m_value, m_sd);
- }
- else
- {
- //uint16_t memValue = memory_read_word_16le(cpustate->data, ADDRESS(m_value));
- //setReg16(cpustate, memValue, m_sd);
- }
- }
- else
- {
- if (m_t)
- {
- osd_printf_error("DSP561xx|Movec_4: This sure seems like it can't happen.");
- }
- else
- {
- //uint16_t regValue = regValue16(cpustate, m_sd);
- //memory_write_word_16le(cpustate->data, m_value, regValue);
- }
- }
- /* S L E U N Z V C */
- /* * ? ? ? ? ? ? ? */
- // All ? bits - If SR is specified as a destination operand, set according to the corresponding
- // bit of the source operand. If SR is not specified as a destination operand, L is set if data
- // limiting occurred. All ? bits are not affected otherwise.
+ return retString;
}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2338,12 +2131,10 @@ public:
if (m_source == iSSH && m_destination == iSSH) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "move " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "move(c)");
+ return "move " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -2367,15 +2158,13 @@ public:
decode_DDDDD_table(BITSn(word1,0x03e0), m_SD);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_reg_from_W_table(m_W, 'X', m_SD, m_b, source, destination);
- retString = "move " + source + "," + destination;
- // NEW // opcode = "move(c)";
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2401,18 +2190,13 @@ public:
decode_DD_table(BITSn(word0,0x0300), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- if (m_immediate >= 0) sprintf(temp, "#<+$%x", m_immediate);
- else sprintf(temp, "#<-$%x", 1 - m_immediate - 1);
- // NEW // sprintf(temp, "#$%02x,%s", BITSn(word0,0x00ff), D1);
-
- retString = "move " +
- std::string(temp) + "," + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "move(i)");
+ if (m_immediate >= 0)
+ return util::string_format("move #<+$%x,%s", m_immediate, regIdAsString(m_destination));
+ else
+ return util::string_format("move #<-$%x,%s", 1 - m_immediate - 1, regIdAsString(m_destination));
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2440,15 +2224,13 @@ public:
m_W = BITSn(word0,0x0100);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'P', m_SD, m_ea, source, destination);
- retString = "move " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(m)");
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2475,7 +2257,7 @@ public:
assemble_eas_from_mm_table(BITSn(word0,0x000c), BITSn(word0,0x00c0), BITSn(word0,0x0003), m_ea, m_ea2);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
@@ -2489,10 +2271,8 @@ public:
source = "P:" + m_ea;
destination = "X:" + m_ea2;
}
- retString = "move " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(m)*");
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2520,15 +2300,13 @@ public:
decode_HHH_table(BITSn(word1,0x0007), m_SD);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_reg_from_W_table(m_W, 'P', m_SD, m_b, source, destination);
- retString = "move " + source + "," + destination;
- // NEW // opcode = "move(m)";
+ return "move " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 2; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2560,15 +2338,13 @@ public:
m_W = BITSn(word0,0x0100);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source, destination);
- retString = "movep " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(p)");
+ return "movep " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2600,18 +2376,15 @@ public:
m_W = BITSn(word0,0x0100);
m_SD = "X:<<$" + fullAddy;
- // NEW // sprintf(SD, "X:$%s", fullAddy);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source, destination);
- retString = "movep " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(p)*");
+ return "movep " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2635,23 +2408,17 @@ public:
bool decode(const uint16_t word0, const uint16_t word1) override
{
decode_HH_table(BITSn(word0,0x00c0), m_SD);
-
- char temp[32];
- sprintf(temp, "<$%x", BITSn(word0,0x001f));
- m_ea = temp;
-
+ m_ea = util::string_format("<$%x", BITSn(word0,0x001f));
m_W = BITSn(word0,0x0100);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source;
std::string destination;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source, destination);
- retString = "moves " + source + "," + destination;
- // NEW // sprintf(opcode_str, "move(s)");
+ return "moves " + source + "," + destination;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2681,16 +2448,15 @@ public:
decode_kSign_table(BITSn(word0,0x40), m_sign);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string ts = m_sign;
if (ts.compare("-")!=0) ts = "";
- retString = "mpy " +
+ return "mpy " +
ts +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2714,13 +2480,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "mpy " +
+ return "mpy " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2743,13 +2508,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "mpy " +
+ return "mpy " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2777,16 +2541,15 @@ public:
decode_kSign_table(BITSn(word0,0x40), m_sign);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string ts = m_sign;
if (ts.compare("-") != 0) ts = "";
- retString = "mpyr " +
+ return "mpyr " +
ts +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2810,13 +2573,12 @@ public:
m_source, m_source2, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "mpyr " +
+ return "mpyr " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2842,16 +2604,14 @@ public:
decode_s_table(BITSn(word0,0x0004), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "mpy" + opMnemonicAsString(m_mnem);
- retString = opcode + " " +
+ return opcode + " " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "mpy(%s)", A);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -2873,11 +2633,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "neg " + regIdAsString(m_destination);
+ return "neg " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -2895,11 +2654,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "negc " + regIdAsString(m_destination);
+ return "negc " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -2916,11 +2674,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "nop";
+ return "nop";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -2940,11 +2697,10 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_source);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "norm " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "norm " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -2962,11 +2718,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "not " + regIdAsString(m_destination);
+ return "not " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -2985,11 +2740,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "or " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "or " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -3009,15 +2763,10 @@ public:
decode_EE_table(BITSn(word0,0x0600), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#$%x", m_immediate);
- // NEW // sprintf(temp, "#$%02x", BITSn(word0,0x00ff));
- retString = "ori " + std::string(temp) + "," + regIdAsString(m_destination);
- // NEW // sprintf(opcode_str, "or(i)");
+ return util::string_format("ori #$%x,%s", m_immediate, regIdAsString(m_destination));
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3038,13 +2787,10 @@ public:
decode_RR_table(BITSn(word0,0x0003), m_source);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "X:(%s)", regIdAsString(m_source).c_str());
- retString = "rep " + std::string(temp);
+ return util::string_format("rep X:(%s)", regIdAsString(m_source));
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3063,14 +2809,10 @@ public:
m_immediate = BITSn(word0,0x00ff);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- char temp[32];
- sprintf(temp, "#$%x", m_immediate);
- // NEW // sprintf(temp, "#$%02x (%d)", BITSn(word0,0x00ff), BITSn(word0,0x00ff));
- retString = "rep " + std::string(temp);
+ return util::string_format("rep #$%x", m_immediate);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3092,11 +2834,10 @@ public:
if (m_source == iINVALID) return false;
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "rep " + regIdAsString(m_source);
+ return "rep " + regIdAsString(m_source);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3115,13 +2856,11 @@ public:
decode_cccc_table(BITSn(word0,0x000f), m_mnem);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string opcode = "rep" + opMnemonicAsString(m_mnem);
- retString = opcode;
- // NEW // sprintf(opcode_str, "rep.%s", M);
+ return opcode;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3141,11 +2880,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "reset";
+ return "reset";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3163,11 +2901,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "rnd " + regIdAsString(m_destination);
+ return "rnd " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3185,11 +2922,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "rol " + regIdAsString(m_destination);
+ return "rol " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -3207,11 +2943,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "ror " + regIdAsString(m_destination);
+ return "ror " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE; }
};
@@ -3228,11 +2963,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "rti";
+ return "rti";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OUT; }
@@ -3250,11 +2984,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "rts";
+ return "rts";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
size_t flags() const override { return util::disasm_interface::STEP_OUT; }
@@ -3274,11 +3007,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "sbc " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "sbc " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3295,11 +3027,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "stop";
+ return "stop";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3318,11 +3049,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "sub " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "sub " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3344,11 +3074,10 @@ public:
// TODO // m_opcode = "sub";
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = m_opcode + " " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return m_opcode + " " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3379,11 +3108,10 @@ public:
}
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "subl " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "subl " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3401,11 +3129,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "swap " + regIdAsString(m_destination);
+ return "swap " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3422,11 +3149,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "swi";
+ return "swi";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3456,19 +3182,17 @@ public:
return false;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- std::string opcode = "t" + opMnemonicAsString(m_mnem);
- // NEW // sprintf(opcode_str, "t.%s", M);
-
- retString = opcode;
+ std::string retString = "t" + opMnemonicAsString(m_mnem);
if (m_source != m_destination)
retString += std::string(" ") + regIdAsString(m_source) + "," + regIdAsString(m_destination);
if (m_destination2 != iR0)
retString += std::string(" R0,") + regIdAsString(m_destination2);
+
+ return retString;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3491,11 +3215,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "tfr " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "tfr " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3514,11 +3237,10 @@ public:
m_source, m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "tfr " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "tfr " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3537,11 +3259,10 @@ public:
m_destination, m_source);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "tfr2 " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
+ return "tfr2 " + regIdAsString(m_source) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3574,16 +3295,15 @@ public:
m_W = BITSn(word0,0x0100);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
std::string source2;
std::string destination2;
assemble_arguments_from_W_table(m_W, 'X', m_SD, m_ea, source2, destination2);
- retString = "tfr3 " +
+ return "tfr3 " +
regIdAsString(m_source) + "," + regIdAsString(m_destination) + " " +
source2 + "," + destination2;
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3608,11 +3328,10 @@ public:
decode_F_table(BITSn(word0,0x08), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "tst " + regIdAsString(m_destination);
+ return "tst " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_NONE; }
};
@@ -3630,11 +3349,10 @@ public:
decode_DD_table(BITSn(word0,0x0003), m_source);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "tst2 " + regIdAsString(m_source);
+ return "tst2 " + regIdAsString(m_source);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3651,11 +3369,10 @@ public:
{
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "wait";
+ return "wait";
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3673,11 +3390,10 @@ public:
decode_F_table(BITSn(word0,0x0008), m_destination);
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "zero " + regIdAsString(m_destination);
+ return "zero " + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
};
@@ -3712,13 +3428,12 @@ public:
}
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "shfl " +
+ return "shfl " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3756,13 +3471,12 @@ public:
}
return true;
}
- void disassemble(std::string& retString) const override
+ std::string disassemble() const override
{
- retString = "shfr " +
+ return "shfr " +
regIdAsString(m_source) + "," +
regIdAsString(m_source2) + "," + regIdAsString(m_destination);
}
- void evaluate(dsp56156_core* cpustate) override {}
size_t size() const override { return 1; }
size_t accumulatorBitsModified() const override { return BM_HIGH | BM_MIDDLE | BM_LOW; }
@@ -3770,5 +3484,6 @@ private:
reg_id m_source2;
};
-}
-#endif
+} // namespace DSP_56156
+
+#endif // MAME_CPU_DSP56156_INST_H