#include "DSPJitTester.h" void nx_dr() { DSPJitTester tester(0x8000, 0x0004); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.TestAll(); tester.Report(); } void nx_ir() { DSPJitTester tester(0x8000, 0x0008); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.TestAll(); tester.Report(); } void nx_nr() { DSPJitTester tester(0x8000, 0x000c); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.AddTestData(DSP_REG_IX0); tester.TestAll(true); 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); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.TestAll(); tester.Report(); } void iar() { DSPJitTester tester(0x0008); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.TestAll(); tester.Report(); } void subarn() { DSPJitTester tester(0x000c); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.AddTestData(DSP_REG_IX0); tester.TestAll(); tester.Report(); } void addarn() { DSPJitTester tester(0x0010); tester.AddTestData(DSP_REG_AR0); tester.AddTestData(DSP_REG_WR0); tester.AddTestData(DSP_REG_IX0); tester.TestAll(); tester.Report(); } void sbclr() { DSPJitTester tester(0x1200); tester.AddTestData(DSP_REG_SR); tester.TestAll(); tester.Report(); } void sbset() { DSPJitTester tester(0x1300); tester.AddTestData(DSP_REG_SR); tester.TestAll(); tester.Report(); } 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 nx_ld() { DSPJitTester tester1(0x8000, 0x00c0); tester1.AddTestData(DSP_REG_AXL0,0xdead); tester1.AddTestData(DSP_REG_AXL1,0xbeef); tester1.AddTestData(DSP_REG_AR0); tester1.AddTestData(DSP_REG_WR0); tester1.AddTestData(DSP_REG_IX0); tester1.TestAll(true); tester1.Report(); DSPJitTester tester2(0x8000, 0x00c0); tester2.AddTestData(DSP_REG_AXL0,0xdead); tester2.AddTestData(DSP_REG_AXL1,0xbeef); 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(); addarn(); sbclr(); sbset(); 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(); nx_ld(); } //required to be able to link against DSPCore void DSPHost_UpdateDebugger() { } unsigned int DSPHost_CodeLoaded(unsigned const char*, int) { return 0; } void DSPHost_InterruptRequest() { } bool DSPHost_OnThread() { return false; } void DSPHost_WriteHostMemory(unsigned char, unsigned int) { } unsigned char DSPHost_ReadHostMemory(unsigned int) { return 0; }