summaryrefslogtreecommitdiff
path: root/Source/UnitTests/AudioJitTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/UnitTests/AudioJitTests.cpp')
-rw-r--r--Source/UnitTests/AudioJitTests.cpp217
1 files changed, 216 insertions, 1 deletions
diff --git a/Source/UnitTests/AudioJitTests.cpp b/Source/UnitTests/AudioJitTests.cpp
index cfabaeeb6c..4cef5931fa 100644
--- a/Source/UnitTests/AudioJitTests.cpp
+++ b/Source/UnitTests/AudioJitTests.cpp
@@ -28,6 +28,15 @@ void nx_nr()
tester.Report();
}
+void nx_mv()
+{
+ DSPJitTester tester(0x8000, 0x0010);
+ tester.AddTestData(DSP_REG_ACL0);
+ tester.AddTestData(DSP_REG_AXL0);
+ tester.TestAll(true);
+ tester.Report();
+}
+
void dar()
{
DSPJitTester tester(0x0004);
@@ -81,14 +90,205 @@ void nx_s()
{
DSPJitTester tester(0x8000, 0x0020);
tester.AddTestData(DSP_REG_AR0);
+ tester.AddTestData(DSP_REG_WR0);
tester.AddTestData(DSP_REG_ACL0);
tester.TestAll(true);
tester.Report();
}
+
+void nx_sn()
+{
+ DSPJitTester tester(0x8000, 0x0024);
+ tester.AddTestData(DSP_REG_AR0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_IX0);
+ tester.AddTestData(DSP_REG_ACL0);
+ tester.TestAll(true);
+ tester.Report();
+}
+
+void nx_l()
+{
+
+ DSPJitTester tester(0x8000, 0x0040);
+ tester.AddTestData(DSP_REG_AR0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_AXL0);
+ tester.TestAll(true);
+ tester.Report();
+}
+
+void set16_l()
+{
+
+ DSPJitTester tester(0x8e00, 0x0070);
+ tester.AddTestData(DSP_REG_SR, 0);
+ tester.AddTestData(DSP_REG_SR, SR_40_MODE_BIT);
+ tester.AddTestData(DSP_REG_AR0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_ACM0);
+ tester.TestAll(true);
+ tester.Report();
+}
+
+void nx_ln()
+{
+ DSPJitTester tester(0x8000, 0x0044);
+ tester.AddTestData(DSP_REG_AR0);
+ tester.AddTestData(DSP_REG_WR0);
+ tester.AddTestData(DSP_REG_IX0);
+ tester.AddTestData(DSP_REG_AXL0);
+ tester.TestAll(true);
+ tester.Report();
+}
+
+void nx_ls()
+{
+ DSPJitTester tester1(0x8000, 0x0080);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x0080);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_lsn()
+{
+ DSPJitTester tester1(0x8000, 0x0084);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.AddTestData(DSP_REG_IX0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x0084);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_lsm()
+{
+ DSPJitTester tester1(0x8000, 0x0088);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x0088);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.AddTestData(DSP_REG_IX3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_lsnm()
+{
+ DSPJitTester tester1(0x8000, 0x008c);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.AddTestData(DSP_REG_IX0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x008c);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.AddTestData(DSP_REG_IX3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_sl()
+{
+ DSPJitTester tester1(0x8000, 0x0082);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x0082);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_sln()
+{
+ DSPJitTester tester1(0x8000, 0x0086);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.AddTestData(DSP_REG_IX0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x0086);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_slm()
+{
+ DSPJitTester tester1(0x8000, 0x008a);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x008a);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.AddTestData(DSP_REG_IX3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
+void nx_slnm()
+{
+ DSPJitTester tester1(0x8000, 0x008e);
+ tester1.AddTestData(DSP_REG_ACM0);
+ tester1.AddTestData(DSP_REG_AR0);
+ tester1.AddTestData(DSP_REG_WR0);
+ tester1.AddTestData(DSP_REG_IX0);
+ tester1.TestAll(true);
+ tester1.Report();
+
+ DSPJitTester tester2(0x8000, 0x008e);
+ tester2.AddTestData(DSP_REG_ACM0);
+ tester2.AddTestData(DSP_REG_AR3);
+ tester2.AddTestData(DSP_REG_WR3);
+ tester2.AddTestData(DSP_REG_IX3);
+ tester2.TestAll(true);
+ tester2.Report();
+}
+
void AudioJitTests()
{
DSPJitTester::Initialize();
-
dar();
iar();
subarn();
@@ -99,7 +299,22 @@ void AudioJitTests()
nx_ir();
nx_dr();
nx_nr();
+ nx_mv();
+
+ set16_l();
+
nx_s();
+ nx_sn();
+ nx_l();
+ nx_ln();
+ nx_ls();
+ nx_lsn();
+ nx_lsm();
+ nx_lsnm();
+ nx_sl();
+ nx_sln();
+ nx_slm();
+ nx_slnm();
}
//required to be able to link against DSPCore