dsp: renamed R09 to WR1 in some tests, removed unused code in DSPTables.cpp, added showing of origin file in dspspy (please fix if [runningUcode - 1] is wrong)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3417 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman 2009-06-13 04:55:58 +00:00
parent f8a221dea2
commit ff7f9020fe
7 changed files with 46 additions and 37 deletions

View file

@ -20,6 +20,7 @@
#include "Common.h"
#include "FileUtil.h"
#include "StringUtil.h"
#include "DSPCodeUtil.h"
#include "assemble.h"
#include "disassemble.h"
@ -111,7 +112,8 @@ void GenRandomCode(int size, std::vector<u16> &code)
}
}
void CodeToHeader(const std::vector<u16> &code, const char *name, std::string &header)
void CodeToHeader(const std::vector<u16> &code, std::string _filename,
const char *name, std::string &header)
{
std::vector<u16> code_copy = code;
// Add some nops at the end to align the size a bit.
@ -121,6 +123,9 @@ void CodeToHeader(const std::vector<u16> &code, const char *name, std::string &h
header.clear();
header.reserve(code.size() * 4);
header.append("#define NUM_UCODES 1\n\n");
std::string filename;
SplitPath(_filename, NULL, &filename, NULL);
header.append("const char* UCODE_NAMES[NUM_UCODES] = {\"%s\"};\n\n", filename.c_str());
header.append("#ifndef _MSCVER\n");
sprintf(buffer, "const unsigned short %s[NUM_UCODES][0x1000] = {\n", name);
header.append(buffer);
@ -142,8 +147,8 @@ void CodeToHeader(const std::vector<u16> &code, const char *name, std::string &h
header.append("};\n");
}
void CodesToHeader(const std::vector<u16> *codes, int numCodes,
const char *name, std::string &header)
void CodesToHeader(const std::vector<u16> *codes, const std::vector<std::string> filenames,
int numCodes, const char *name, std::string &header)
{
char buffer[1024];
int reserveSize = 0;
@ -155,6 +160,15 @@ void CodesToHeader(const std::vector<u16> *codes, int numCodes,
header.reserve(reserveSize * 4);
sprintf(buffer, "#define NUM_UCODES %d\n\n", numCodes);
header.append(buffer);
sprintf(buffer, "const char* UCODE_NAMES[NUM_UCODES] = {\n");
for (int i = 0; i < numCodes; i++)
{
std::string filename;
SplitPath(filenames.at(i), NULL, &filename, NULL);
sprintf(buffer, "%s\t\"%s\",\n", buffer, filename.c_str());
}
sprintf(buffer, "%s};\n\n", buffer);
header.append(buffer);
header.append("#ifndef _MSCVER\n");
sprintf(buffer, "const unsigned short %s[NUM_UCODES][0x1000] = {\n", name);
header.append(buffer);

View file

@ -27,9 +27,10 @@ bool Assemble(const char *text, std::vector<u16> &code);
bool Disassemble(const std::vector<u16> &code, bool line_numbers, std::string &text);
bool Compare(const std::vector<u16> &code1, const std::vector<u16> &code2);
void GenRandomCode(int size, std::vector<u16> &code);
void CodeToHeader(const std::vector<u16> &code, const char *name, std::string &header);
void CodesToHeader(const std::vector<u16> *codes, int numCodes,
void CodeToHeader(const std::vector<u16> &code, std::string _filename,
const char *name, std::string &header);
void CodesToHeader(const std::vector<u16> *codes, const std::vector<std::string> filenames,
int numCodes, const char *name, std::string &header);
// Big-endian, for writing straight to file using File::WriteStringToFile.
void CodeToBinaryStringBE(const std::vector<u16> &code, std::string &str);

View file

@ -434,12 +434,6 @@ const pdlabel_t regnames[] =
{0x21, "ACC1", "Accu Full 1",},
{0x22, "AX0", "Extra Accu 0",},
{0x23, "AX1", "Extra Accu 1",},
// Old names for the wrapping registers, for compatibility.
{0x08, "R08", "Wrapping Register 0(08)",},
{0x09, "R09", "Wrapping Register 1(09)",},
{0x0a, "R10", "Wrapping Register 2(10)",},
{0x0b, "R11", "Wrapping Register 3(11)",},
};
u8 opSize[OPTABLE_SIZE];

View file

@ -321,7 +321,7 @@ void handle_dsp_mail(void)
while (DSP_CheckMailTo());
}
CON_Printf(2, 1, "UCode: %d/%d, Last mail: %08x", runningUcode, NUM_UCODES, mail);
CON_Printf(2, 1, "UCode: %d/%d %s, Last mail: %08x", runningUcode, NUM_UCODES, UCODE_NAMES[runningUcode - 1], mail);
}
}

View file

@ -2,7 +2,7 @@
incdir "tests"
include "dsp_base.inc"
; Tests done using AR1 = 0x0010, IX1 = 0. WR1 (wrap 1) means R09.
; Tests done using AR1 = 0x0010, IX1 = 0. WR1 (wrap 1) means WR1.
; WR1 = 0
; 10, 10, 10, 10,
; WR1 = 1
@ -29,7 +29,7 @@ include "dsp_base.inc"
; test using indexing register 1 - 0 is used in send_back
lri $AR1, #16
lri $IX1, #32
lri $R09, #0
lri $WR1, #0
call send_back ; 1
nx'dr : $AR1
@ -40,7 +40,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #1
lri $WR1, #1
call send_back ; 1
nx'dr : $AR1
call send_back ; 1
@ -52,7 +52,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #2
lri $WR1, #2
call send_back ; 1
nx'dr : $AR1
call send_back ; 1
@ -72,7 +72,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #3
lri $WR1, #3
call send_back ; 1
nx'dr : $AR1
@ -99,7 +99,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #4
lri $WR1, #4
call send_back ; 1
nx'dr : $AR1
@ -126,7 +126,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #5
lri $WR1, #5
call send_back ; 1
nx'dr : $AR1
@ -153,7 +153,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #6
lri $WR1, #6
call send_back ; 1
nx'dr : $AR1
@ -186,7 +186,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #7
lri $WR1, #7
call send_back ; 1
nx'dr : $AR1
@ -219,7 +219,7 @@ nx'dr : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #8
lri $WR1, #8
call send_back ; 1
nx'dr : $AR1
@ -308,7 +308,7 @@ nx'dr : $AR1
call send_back ; 1
lri $R09, #0xFFFF
lri $WR1, #0xFFFF
; We're done, DO NOT DELETE THIS LINE
jmp end_of_test

View file

@ -34,7 +34,7 @@ include "dsp_base.inc"
; test using indexing register 1 - 0 is used in send_back
lri $AR1, #16
lri $IX1, #32
lri $R09, #0
lri $WR1, #0
call send_back ; 1
nx'ir : $AR1
@ -45,7 +45,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #1
lri $WR1, #1
call send_back ; 1
nx'ir : $AR1
call send_back ; 1
@ -57,7 +57,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #2
lri $WR1, #2
call send_back ; 1
nx'ir : $AR1
call send_back ; 1
@ -77,7 +77,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #3
lri $WR1, #3
call send_back ; 1
nx'ir : $AR1
@ -104,7 +104,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #4
lri $WR1, #4
call send_back ; 1
nx'ir : $AR1
@ -131,7 +131,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #5
lri $WR1, #5
call send_back ; 1
nx'ir : $AR1
@ -158,7 +158,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #6
lri $WR1, #6
call send_back ; 1
nx'ir : $AR1
@ -191,7 +191,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #7
lri $WR1, #7
call send_back ; 1
nx'ir : $AR1
@ -224,7 +224,7 @@ nx'ir : $AR1
call send_back ; 1
lri $AR1, #16
lri $R09, #8
lri $WR1, #8
call send_back ; 1
nx'ir : $AR1
@ -313,7 +313,7 @@ nx'ir : $AR1
call send_back ; 1
lri $R09, #0xFFFF
lri $WR1, #0xFFFF
; We're done, DO NOT DELETE THIS LINE
jmp end_of_test

View file

@ -356,7 +356,7 @@ int main(int argc, const char *argv[])
}
CodesToHeader(codes, lines, output_header_name.c_str(), header);
CodesToHeader(codes, files, lines, output_header_name.c_str(), header);
File::WriteStringToFile(true, header, (output_header_name + ".h").c_str());
delete[] codes;
@ -379,7 +379,7 @@ int main(int argc, const char *argv[])
if (!output_header_name.empty())
{
std::string header;
CodeToHeader(code, output_header_name.c_str(), header);
CodeToHeader(code, input_name, output_header_name.c_str(), header);
File::WriteStringToFile(true, header, (output_header_name + ".h").c_str());
}
}