mirror of
https://github.com/holub/mame
synced 2025-05-22 05:38:52 +03:00
Removes all std::strings from the dsp56k cpu core. (Not worth mentioning)
This commit is contained in:
parent
216a806fdb
commit
1b872c9b0b
@ -21,7 +21,7 @@ CPU_DISASSEMBLE( dsp56k )
|
|||||||
|
|
||||||
// Decode and disassemble.
|
// Decode and disassemble.
|
||||||
DSP56K::Opcode op(w0, w1);
|
DSP56K::Opcode op(w0, w1);
|
||||||
sprintf(buffer, "%s", op.disassemble().c_str());
|
sprintf(buffer, "%s", op.disassemble().cstr());
|
||||||
|
|
||||||
const unsigned size = op.size();
|
const unsigned size = op.size();
|
||||||
return (size | DASMFLAG_SUPPORTED);
|
return (size | DASMFLAG_SUPPORTED);
|
||||||
|
@ -41,7 +41,7 @@ Instruction* Instruction::decodeInstruction(const Opcode* opc,
|
|||||||
dynamic_cast<Sub*>(op) ||
|
dynamic_cast<Sub*>(op) ||
|
||||||
dynamic_cast<Tfr*>(op) ||
|
dynamic_cast<Tfr*>(op) ||
|
||||||
dynamic_cast<Tst*>(op)
|
dynamic_cast<Tst*>(op)
|
||||||
/* TODO: More? */)
|
/* TODO: More? */)
|
||||||
{
|
{
|
||||||
op->m_sizeIncrement = 1;
|
op->m_sizeIncrement = 1;
|
||||||
return op;
|
return op;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -19,7 +19,7 @@ Opcode::~Opcode()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string Opcode::disassemble() const
|
astring Opcode::disassemble() const
|
||||||
{
|
{
|
||||||
// Duck out early if there isn't a valid op
|
// Duck out early if there isn't a valid op
|
||||||
if (!m_instruction)
|
if (!m_instruction)
|
||||||
@ -32,8 +32,8 @@ std::string Opcode::disassemble() const
|
|||||||
return dcString();
|
return dcString();
|
||||||
|
|
||||||
// Disassemble what you can.
|
// Disassemble what you can.
|
||||||
std::string opString = "";
|
astring opString = "";
|
||||||
std::string pmString = "";
|
astring pmString = "";
|
||||||
if (m_instruction) m_instruction->disassemble(opString);
|
if (m_instruction) m_instruction->disassemble(opString);
|
||||||
if (m_parallelMove) m_parallelMove->disassemble(pmString);
|
if (m_parallelMove) m_parallelMove->disassemble(pmString);
|
||||||
|
|
||||||
@ -71,11 +71,11 @@ const reg_id& Opcode::instSource() const { return m_instruction->source(); }
|
|||||||
const reg_id& Opcode::instDestination() const { return m_instruction->destination(); }
|
const reg_id& Opcode::instDestination() const { return m_instruction->destination(); }
|
||||||
const size_t Opcode::instAccumulatorBitsModified() const { return m_instruction->accumulatorBitsModified(); }
|
const size_t Opcode::instAccumulatorBitsModified() const { return m_instruction->accumulatorBitsModified(); }
|
||||||
|
|
||||||
std::string Opcode::dcString() const
|
astring Opcode::dcString() const
|
||||||
{
|
{
|
||||||
char tempStr[1024];
|
char tempStr[1024];
|
||||||
sprintf(tempStr, "dc $%x", m_word0);
|
sprintf(tempStr, "dc $%x", m_word0);
|
||||||
return std::string(tempStr);
|
return astring(tempStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
#ifndef __DSP56K_OPCODE_H__
|
#ifndef __DSP56K_OPCODE_H__
|
||||||
#define __DSP56K_OPCODE_H__
|
#define __DSP56K_OPCODE_H__
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "inst.h"
|
#include "inst.h"
|
||||||
#include "pmove.h"
|
#include "pmove.h"
|
||||||
@ -24,7 +22,7 @@ public:
|
|||||||
Opcode(UINT16 w0, UINT16 w1);
|
Opcode(UINT16 w0, UINT16 w1);
|
||||||
virtual ~Opcode();
|
virtual ~Opcode();
|
||||||
|
|
||||||
std::string disassemble() const;
|
astring disassemble() const;
|
||||||
void evaluate(dsp56k_core* cpustate) const;
|
void evaluate(dsp56k_core* cpustate) const;
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
size_t evalSize() const;
|
size_t evalSize() const;
|
||||||
@ -41,7 +39,7 @@ private:
|
|||||||
UINT16 m_word0;
|
UINT16 m_word0;
|
||||||
UINT16 m_word1;
|
UINT16 m_word1;
|
||||||
|
|
||||||
std::string dcString() const;
|
astring dcString() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
#ifndef __DSP56K_PARALLEL_MOVE_H__
|
#ifndef __DSP56K_PARALLEL_MOVE_H__
|
||||||
#define __DSP56K_PARALLEL_MOVE_H__
|
#define __DSP56K_PARALLEL_MOVE_H__
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "opcode.h"
|
#include "opcode.h"
|
||||||
#include "tables.h"
|
#include "tables.h"
|
||||||
@ -22,7 +20,7 @@ public:
|
|||||||
virtual ~ParallelMove() {}
|
virtual ~ParallelMove() {}
|
||||||
|
|
||||||
virtual bool decode(const UINT16 word0, const UINT16 word1) = 0;
|
virtual bool decode(const UINT16 word0, const UINT16 word1) = 0;
|
||||||
virtual void disassemble(std::string& retString) const = 0;
|
virtual void disassemble(astring& retString) const = 0;
|
||||||
virtual void evaluate() = 0;
|
virtual void evaluate() = 0;
|
||||||
|
|
||||||
static ParallelMove* decodeParallelMove(const Opcode* opc, const UINT16 word0, const UINT16 word1);
|
static ParallelMove* decodeParallelMove(const Opcode* opc, const UINT16 word0, const UINT16 word1);
|
||||||
@ -60,7 +58,7 @@ public:
|
|||||||
reg_id SD;
|
reg_id SD;
|
||||||
decode_HHH_table(BITSn(word0,0x0e00), SD);
|
decode_HHH_table(BITSn(word0,0x0e00), SD);
|
||||||
|
|
||||||
std::string ea;
|
astring ea;
|
||||||
assemble_ea_from_m_table(BITSn(word0,0x4000), regIDAsNum(r), ea);
|
assemble_ea_from_m_table(BITSn(word0,0x4000), regIDAsNum(r), ea);
|
||||||
|
|
||||||
assemble_arguments_from_W_table(BITSn(word0,0x0100), 'X', SD, ea,
|
assemble_arguments_from_W_table(BITSn(word0,0x0100), 'X', SD, ea,
|
||||||
@ -72,15 +70,15 @@ public:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
retString = m_source + "," + m_destination;
|
retString = m_source + "," + m_destination;
|
||||||
}
|
}
|
||||||
void evaluate() {}
|
void evaluate() {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_source;
|
astring m_source;
|
||||||
std::string m_destination;
|
astring m_destination;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +92,7 @@ public:
|
|||||||
}
|
}
|
||||||
bool decode(const UINT16 word0, const UINT16 word1)
|
bool decode(const UINT16 word0, const UINT16 word1)
|
||||||
{
|
{
|
||||||
std::string ea;
|
astring ea;
|
||||||
if (opDestination() == iB)
|
if (opDestination() == iB)
|
||||||
ea = "(A1)";
|
ea = "(A1)";
|
||||||
else if (opDestination() == iA)
|
else if (opDestination() == iA)
|
||||||
@ -114,15 +112,15 @@ public:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
retString = m_source + "," + m_destination;
|
retString = m_source + "," + m_destination;
|
||||||
}
|
}
|
||||||
void evaluate() {}
|
void evaluate() {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_source;
|
astring m_source;
|
||||||
std::string m_destination;
|
astring m_destination;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -139,8 +137,8 @@ public:
|
|||||||
reg_id r;
|
reg_id r;
|
||||||
reg_id D1;
|
reg_id D1;
|
||||||
reg_id D2;
|
reg_id D2;
|
||||||
std::string ea1 = "";
|
astring ea1 = "";
|
||||||
std::string ea2 = "";
|
astring ea2 = "";
|
||||||
|
|
||||||
decode_rr_table(BITSn(word0,0x0060), r);
|
decode_rr_table(BITSn(word0,0x0060), r);
|
||||||
decode_KKK_table(BITSn(word0,0x0700), D1, D2);
|
decode_KKK_table(BITSn(word0,0x0700), D1, D2);
|
||||||
@ -161,22 +159,22 @@ public:
|
|||||||
if (r == iR3) return false;
|
if (r == iR3) return false;
|
||||||
|
|
||||||
char temp[32];
|
char temp[32];
|
||||||
sprintf(temp, "X:%s,%s", ea1.c_str(), regIdAsString(D1).c_str());
|
sprintf(temp, "X:%s,%s", ea1.cstr(), regIdAsString(D1).cstr());
|
||||||
parallelMove = temp;
|
parallelMove = temp;
|
||||||
sprintf(temp, "X:%s,%s", ea2.c_str(), regIdAsString(D2).c_str());
|
sprintf(temp, "X:%s,%s", ea2.cstr(), regIdAsString(D2).cstr());
|
||||||
parallelMove2 = temp;
|
parallelMove2 = temp;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
retString = parallelMove + " " + parallelMove2;
|
retString = parallelMove + " " + parallelMove2;
|
||||||
}
|
}
|
||||||
void evaluate() {}
|
void evaluate() {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string parallelMove;
|
astring parallelMove;
|
||||||
std::string parallelMove2;
|
astring parallelMove2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -215,7 +213,7 @@ public:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
// (?,?) is a parallel nop
|
// (?,?) is a parallel nop
|
||||||
if (m_source == iWEIRD && m_destination == iWEIRD)
|
if (m_source == iWEIRD && m_destination == iWEIRD)
|
||||||
@ -256,21 +254,21 @@ public:
|
|||||||
decode_RR_table(BITSn(word0,0x00c0), r);
|
decode_RR_table(BITSn(word0,0x00c0), r);
|
||||||
decode_DD_table(BITSn(word0,0x0030), S);
|
decode_DD_table(BITSn(word0,0x0030), S);
|
||||||
|
|
||||||
sprintf(parallel_move_str, "%s,X:(R%d)+N%d", regIdAsString(Dnot).c_str(), regIDAsNum(r), regIDAsNum(r));
|
sprintf(parallel_move_str, "%s,X:(R%d)+N%d", regIdAsString(Dnot).cstr(), regIDAsNum(r), regIDAsNum(r));
|
||||||
sprintf(parallel_move_str2, "%s,%s", regIdAsString(S).c_str(), regIdAsString(Dnot).c_str());
|
sprintf(parallel_move_str2, "%s,%s", regIdAsString(S).cstr(), regIdAsString(Dnot).cstr());
|
||||||
pms = parallel_move_str;
|
pms = parallel_move_str;
|
||||||
pms2 = parallel_move_str2;
|
pms2 = parallel_move_str2;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
retString = pms + " " + pms2;
|
retString = pms + " " + pms2;
|
||||||
}
|
}
|
||||||
void evaluate() {}
|
void evaluate() {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string pms; // TODO
|
astring pms; // TODO
|
||||||
std::string pms2;
|
astring pms2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -291,14 +289,14 @@ public:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
retString = m_ea;
|
retString = m_ea;
|
||||||
}
|
}
|
||||||
void evaluate() {}
|
void evaluate() {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_ea;
|
astring m_ea;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -316,7 +314,7 @@ public:
|
|||||||
{
|
{
|
||||||
INT8 b;
|
INT8 b;
|
||||||
reg_id SD;
|
reg_id SD;
|
||||||
std::string args;
|
astring args;
|
||||||
|
|
||||||
b = (char)(word0 & 0x00ff);
|
b = (char)(word0 & 0x00ff);
|
||||||
decode_HHH_table(BITSn(word1,0x0e00), SD);
|
decode_HHH_table(BITSn(word1,0x0e00), SD);
|
||||||
@ -324,15 +322,15 @@ public:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void disassemble(std::string& retString) const
|
void disassemble(astring& retString) const
|
||||||
{
|
{
|
||||||
retString = m_source + "," + m_destination;
|
retString = m_source + "," + m_destination;
|
||||||
}
|
}
|
||||||
void evaluate() {}
|
void evaluate() {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_source;
|
astring m_source;
|
||||||
std::string m_destination;
|
astring m_destination;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <string>
|
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
@ -285,7 +284,7 @@ void decode_JF_table(const UINT16 J, const UINT16 F, reg_id& S, reg_id& D)
|
|||||||
// NEW // }
|
// NEW // }
|
||||||
// NEW // }
|
// NEW // }
|
||||||
|
|
||||||
void decode_kSign_table(const UINT16 k, std::string& plusMinus)
|
void decode_kSign_table(const UINT16 k, astring& plusMinus)
|
||||||
{
|
{
|
||||||
switch(k)
|
switch(k)
|
||||||
{
|
{
|
||||||
@ -433,7 +432,7 @@ void decode_ss_table(const UINT16 ss, op_mnem& arithmetic)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void decode_uuuuF_table(const UINT16 uuuu, const UINT16 F, std::string& arg, reg_id& S, reg_id& D)
|
void decode_uuuuF_table(const UINT16 uuuu, const UINT16 F, astring& arg, reg_id& S, reg_id& D)
|
||||||
{
|
{
|
||||||
const UINT16 switchVal = (uuuu << 1) | F;
|
const UINT16 switchVal = (uuuu << 1) | F;
|
||||||
|
|
||||||
@ -475,7 +474,7 @@ void decode_uuuuF_table(const UINT16 uuuu, const UINT16 F, std::string& arg, reg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void decode_Z_table(const UINT16 Z, std::string& ea)
|
void decode_Z_table(const UINT16 Z, astring& ea)
|
||||||
{
|
{
|
||||||
/* This is fixed as per the Family Manual errata addendum */
|
/* This is fixed as per the Family Manual errata addendum */
|
||||||
switch(Z)
|
switch(Z)
|
||||||
@ -485,7 +484,7 @@ void decode_Z_table(const UINT16 Z, std::string& ea)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_ea_from_m_table(const UINT16 m, const int n, std::string& ea)
|
void assemble_ea_from_m_table(const UINT16 m, const int n, astring& ea)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
switch(m)
|
switch(m)
|
||||||
@ -496,7 +495,7 @@ void assemble_ea_from_m_table(const UINT16 m, const int n, std::string& ea)
|
|||||||
ea = temp;
|
ea = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_eas_from_mm_table(UINT16 mm, int n1, int n2, std::string& ea1, std::string& ea2)
|
void assemble_eas_from_mm_table(UINT16 mm, int n1, int n2, astring& ea1, astring& ea2)
|
||||||
{
|
{
|
||||||
char temp1[32];
|
char temp1[32];
|
||||||
char temp2[32];
|
char temp2[32];
|
||||||
@ -515,7 +514,7 @@ void assemble_eas_from_mm_table(UINT16 mm, int n1, int n2, std::string& ea1, std
|
|||||||
ea2 = temp2;
|
ea2 = temp2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_ea_from_MM_table(UINT16 MM, int n, std::string& ea)
|
void assemble_ea_from_MM_table(UINT16 MM, int n, astring& ea)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
switch(MM)
|
switch(MM)
|
||||||
@ -528,7 +527,7 @@ void assemble_ea_from_MM_table(UINT16 MM, int n, std::string& ea)
|
|||||||
ea = temp;
|
ea = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_ea_from_q_table(UINT16 q, int n, std::string& ea)
|
void assemble_ea_from_q_table(UINT16 q, int n, astring& ea)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
switch(q)
|
switch(q)
|
||||||
@ -539,7 +538,7 @@ void assemble_ea_from_q_table(UINT16 q, int n, std::string& ea)
|
|||||||
ea = temp;
|
ea = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_ea_from_t_table(UINT16 t, UINT16 val, std::string& ea)
|
void assemble_ea_from_t_table(UINT16 t, UINT16 val, astring& ea)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
switch(t)
|
switch(t)
|
||||||
@ -552,7 +551,7 @@ void assemble_ea_from_t_table(UINT16 t, UINT16 val, std::string& ea)
|
|||||||
ea = temp;
|
ea = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_ea_from_z_table(UINT16 z, int n, std::string& ea)
|
void assemble_ea_from_z_table(UINT16 z, int n, astring& ea)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
switch(z)
|
switch(z)
|
||||||
@ -563,10 +562,10 @@ void assemble_ea_from_z_table(UINT16 z, int n, std::string& ea)
|
|||||||
ea = temp;
|
ea = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_D_from_P_table(UINT16 P, UINT16 ppppp, std::string& D)
|
void assemble_D_from_P_table(UINT16 P, UINT16 ppppp, astring& D)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
std::string fullAddy; /* Convert Short Absolute Address to full 16-bit */
|
astring fullAddy; /* Convert Short Absolute Address to full 16-bit */
|
||||||
|
|
||||||
switch(P)
|
switch(P)
|
||||||
{
|
{
|
||||||
@ -576,18 +575,18 @@ void assemble_D_from_P_table(UINT16 P, UINT16 ppppp, std::string& D)
|
|||||||
break;
|
break;
|
||||||
case 0x1:
|
case 0x1:
|
||||||
assemble_address_from_IO_short_address(ppppp, fullAddy);
|
assemble_address_from_IO_short_address(ppppp, fullAddy);
|
||||||
sprintf(temp, "X:<<$%s", fullAddy.c_str());
|
sprintf(temp, "X:<<$%s", fullAddy.cstr());
|
||||||
// NEW // sprintf(temp, "X:$%s", fullAddy.c_str());
|
// NEW // sprintf(temp, "X:$%s", fullAddy.cstr());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
D = temp;
|
D = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_arguments_from_W_table(UINT16 W, char ma, const reg_id& SD, const std::string& ea,
|
void assemble_arguments_from_W_table(UINT16 W, char ma, const reg_id& SD, const astring& ea,
|
||||||
std::string& source, std::string& destination)
|
astring& source, astring& destination)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
sprintf(temp, "%c:%s", ma, ea.c_str());
|
sprintf(temp, "%c:%s", ma, ea.cstr());
|
||||||
switch(W)
|
switch(W)
|
||||||
{
|
{
|
||||||
case 0x0: source = regIdAsString(SD); destination = temp; break;
|
case 0x0: source = regIdAsString(SD); destination = temp; break;
|
||||||
@ -595,11 +594,11 @@ void assemble_arguments_from_W_table(UINT16 W, char ma, const reg_id& SD, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_arguments_from_W_table(UINT16 W, char ma, const std::string& SD, const std::string& ea,
|
void assemble_arguments_from_W_table(UINT16 W, char ma, const astring& SD, const astring& ea,
|
||||||
std::string& source, std::string& destination)
|
astring& source, astring& destination)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
sprintf(temp, "%c:%s", ma, ea.c_str());
|
sprintf(temp, "%c:%s", ma, ea.cstr());
|
||||||
switch(W)
|
switch(W)
|
||||||
{
|
{
|
||||||
case 0x0: source = SD; destination = temp; break;
|
case 0x0: source = SD; destination = temp; break;
|
||||||
@ -607,7 +606,7 @@ void assemble_arguments_from_W_table(UINT16 W, char ma, const std::string& SD, c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_reg_from_W_table(UINT16 W, char ma, const reg_id& SD, const INT8 xx, std::string& S, std::string& D)
|
void assemble_reg_from_W_table(UINT16 W, char ma, const reg_id& SD, const INT8 xx, astring& S, astring& D)
|
||||||
{
|
{
|
||||||
UINT8 abs_xx;
|
UINT8 abs_xx;
|
||||||
char temp[32];
|
char temp[32];
|
||||||
@ -629,7 +628,7 @@ void assemble_reg_from_W_table(UINT16 W, char ma, const reg_id& SD, const INT8 x
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void assemble_address_from_IO_short_address(UINT16 pp, std::string& ea)
|
void assemble_address_from_IO_short_address(UINT16 pp, astring& ea)
|
||||||
{
|
{
|
||||||
char temp[32];
|
char temp[32];
|
||||||
|
|
||||||
@ -753,7 +752,7 @@ void setReg16(dsp56k_core* cpustate, const UINT16& value, const reg_id& reg)
|
|||||||
if (reg == iM3) M3 = value;
|
if (reg == iM3) M3 = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string regIdAsString(const reg_id& regId)
|
astring regIdAsString(const reg_id& regId)
|
||||||
{
|
{
|
||||||
switch(regId)
|
switch(regId)
|
||||||
{
|
{
|
||||||
@ -801,7 +800,7 @@ std::string regIdAsString(const reg_id& regId)
|
|||||||
return "INVALID_REG_ID";
|
return "INVALID_REG_ID";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string opMnemonicAsString(const op_mnem& mnem)
|
astring opMnemonicAsString(const op_mnem& mnem)
|
||||||
{
|
{
|
||||||
switch(mnem)
|
switch(mnem)
|
||||||
{
|
{
|
||||||
@ -831,7 +830,7 @@ std::string opMnemonicAsString(const op_mnem& mnem)
|
|||||||
return "INVALID_OPCODE_MNEMONIC";
|
return "INVALID_OPCODE_MNEMONIC";
|
||||||
}
|
}
|
||||||
|
|
||||||
reg_id stringAsRegID(const std::string& str)
|
reg_id stringAsRegID(const astring& str)
|
||||||
{
|
{
|
||||||
if (str == "X") return iX;
|
if (str == "X") return iX;
|
||||||
if (str == "X0") return iX0;
|
if (str == "X0") return iX0;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#ifndef __DSP56K_OPS_H__
|
#ifndef __DSP56K_OPS_H__
|
||||||
#define __DSP56K_OPS_H__
|
#define __DSP56K_OPS_H__
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
@ -48,7 +47,7 @@ void decode_IIIIx_table(const UINT16 IIII, const UINT16 x, reg_id& S, reg_id& D)
|
|||||||
void decode_JJJF_table(const UINT16 JJJ, const UINT16 F, reg_id& S, reg_id& D);
|
void decode_JJJF_table(const UINT16 JJJ, const UINT16 F, reg_id& S, reg_id& D);
|
||||||
void decode_JJF_table(const UINT16 JJ, const UINT16 F, reg_id& S, reg_id& D);
|
void decode_JJF_table(const UINT16 JJ, const UINT16 F, reg_id& S, reg_id& D);
|
||||||
void decode_JF_table(const UINT16 J, const UINT16 F, reg_id& S, reg_id& D);
|
void decode_JF_table(const UINT16 J, const UINT16 F, reg_id& S, reg_id& D);
|
||||||
void decode_kSign_table(const UINT16 k, std::string& plusMinus);
|
void decode_kSign_table(const UINT16 k, astring& plusMinus);
|
||||||
void decode_KKK_table(const UINT16 KKK, reg_id& D1, reg_id& D2);
|
void decode_KKK_table(const UINT16 KKK, reg_id& D1, reg_id& D2);
|
||||||
void decode_NN_table(UINT16 NN, reg_id& ret);
|
void decode_NN_table(UINT16 NN, reg_id& ret);
|
||||||
void decode_TT_table(UINT16 TT, reg_id& ret);
|
void decode_TT_table(UINT16 TT, reg_id& ret);
|
||||||
@ -59,20 +58,20 @@ void decode_RR_table(UINT16 RR, reg_id& ret);
|
|||||||
void decode_rr_table(UINT16 rr, reg_id& ret);
|
void decode_rr_table(UINT16 rr, reg_id& ret);
|
||||||
void decode_s_table(const UINT16 s, op_mnem& arithmetic);
|
void decode_s_table(const UINT16 s, op_mnem& arithmetic);
|
||||||
void decode_ss_table(const UINT16 ss, op_mnem& arithmetic);
|
void decode_ss_table(const UINT16 ss, op_mnem& arithmetic);
|
||||||
void decode_uuuuF_table(const UINT16 uuuu, const UINT16 F, std::string& arg, reg_id& S, reg_id& D);
|
void decode_uuuuF_table(const UINT16 uuuu, const UINT16 F, astring& arg, reg_id& S, reg_id& D);
|
||||||
void decode_Z_table(const UINT16 Z, std::string& ea);
|
void decode_Z_table(const UINT16 Z, astring& ea);
|
||||||
|
|
||||||
void assemble_ea_from_m_table(const UINT16 m, const int n, std::string& ea);
|
void assemble_ea_from_m_table(const UINT16 m, const int n, astring& ea);
|
||||||
void assemble_eas_from_mm_table(UINT16 mm, int n1, int n2, std::string& ea1, std::string& ea2);
|
void assemble_eas_from_mm_table(UINT16 mm, int n1, int n2, astring& ea1, astring& ea2);
|
||||||
void assemble_ea_from_MM_table(UINT16 MM, int n, std::string& ea);
|
void assemble_ea_from_MM_table(UINT16 MM, int n, astring& ea);
|
||||||
void assemble_ea_from_q_table(UINT16 q, int n, std::string& ea);
|
void assemble_ea_from_q_table(UINT16 q, int n, astring& ea);
|
||||||
void assemble_ea_from_t_table(UINT16 t, UINT16 val, std::string& ea);
|
void assemble_ea_from_t_table(UINT16 t, UINT16 val, astring& ea);
|
||||||
void assemble_ea_from_z_table(UINT16 z, int n, std::string& ea);
|
void assemble_ea_from_z_table(UINT16 z, int n, astring& ea);
|
||||||
void assemble_D_from_P_table(UINT16 P, UINT16 ppppp, std::string& D);
|
void assemble_D_from_P_table(UINT16 P, UINT16 ppppp, astring& D);
|
||||||
void assemble_arguments_from_W_table(UINT16 W, char ma, const reg_id& SD, const std::string& ea, std::string& S, std::string& D);
|
void assemble_arguments_from_W_table(UINT16 W, char ma, const reg_id& SD, const astring& ea, astring& S, astring& D);
|
||||||
void assemble_arguments_from_W_table(UINT16 W, char ma, const std::string& SD, const std::string& ea, std::string& S, std::string& D);
|
void assemble_arguments_from_W_table(UINT16 W, char ma, const astring& SD, const astring& ea, astring& S, astring& D);
|
||||||
void assemble_reg_from_W_table(UINT16 W, char ma, const reg_id& SD, const INT8 xx, std::string& S, std::string& D);
|
void assemble_reg_from_W_table(UINT16 W, char ma, const reg_id& SD, const INT8 xx, astring& S, astring& D);
|
||||||
void assemble_address_from_IO_short_address(UINT16 pp, std::string& ea);
|
void assemble_address_from_IO_short_address(UINT16 pp, astring& ea);
|
||||||
|
|
||||||
INT8 get_6_bit_signed_value(UINT16 bits);
|
INT8 get_6_bit_signed_value(UINT16 bits);
|
||||||
|
|
||||||
@ -84,9 +83,9 @@ bool registerOverlap(const reg_id& r0, const size_t bmd, const reg_id& r1);
|
|||||||
UINT16 regValue16(dsp56k_core* cpustate, const reg_id& reg);
|
UINT16 regValue16(dsp56k_core* cpustate, const reg_id& reg);
|
||||||
void setReg16(dsp56k_core* cpustate, const UINT16& value, const reg_id& reg);
|
void setReg16(dsp56k_core* cpustate, const UINT16& value, const reg_id& reg);
|
||||||
|
|
||||||
std::string regIdAsString(const reg_id& regId);
|
astring regIdAsString(const reg_id& regId);
|
||||||
std::string opMnemonicAsString(const op_mnem& mnem);
|
astring opMnemonicAsString(const op_mnem& mnem);
|
||||||
reg_id stringAsRegID(const std::string& str);
|
reg_id stringAsRegID(const astring& str);
|
||||||
UINT8 regIDAsNum(const reg_id& regId);
|
UINT8 regIDAsNum(const reg_id& regId);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user