mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-09 01:28:57 +00:00
DSP LLE: MAJOR LLE revamp. Interpreter/JIT infrastructure done. Still left to mix and match the correct functions to the correct instruction hexcodes. More changes:
-Tagged unimplemented instructions and FIXME instructions in the DSP interpreter header -Expanded the DSP instruction union to be viewable as helpful instruction structures git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2817 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
f34155ca98
commit
e099934a85
16 changed files with 1962 additions and 2701 deletions
|
@ -1,4 +1,3 @@
|
|||
// April Fools!
|
||||
/*====================================================================
|
||||
|
||||
filename: gdsp_interpreter.cpp
|
||||
|
@ -27,6 +26,8 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "DSPTables.h"
|
||||
|
||||
#include "gdsp_interface.h"
|
||||
#include "gdsp_opcodes_helper.h"
|
||||
#include "Tools.h"
|
||||
|
@ -67,23 +68,13 @@ void UpdateCachedCR()
|
|||
CR_EXTERNAL_INT = (g_dsp.cr & 0x02) != 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
void (*dsp_op[])(u16 opc) =
|
||||
{
|
||||
dsp_op0, dsp_op1, dsp_op2, dsp_op3,
|
||||
dsp_op4, dsp_op5, dsp_op6, dsp_op7,
|
||||
dsp_op8, dsp_op9, dsp_opab, dsp_opab,
|
||||
dsp_opcd, dsp_opcd, dsp_ope, dsp_opf,
|
||||
};
|
||||
|
||||
void dbg_error(char* err_msg)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void gdsp_init()
|
||||
{
|
||||
g_dsp.irom = (u16*)malloc(DSP_IROM_SIZE * sizeof(u16));
|
||||
|
@ -218,7 +209,7 @@ void gdsp_loop_step()
|
|||
{
|
||||
g_dsp.err_pc = g_dsp.pc;
|
||||
u16 opc = dsp_fetch_code();
|
||||
dsp_op[opc >> 12](opc);
|
||||
ComputeInstruction(UDSPInstruction(opc));
|
||||
}
|
||||
|
||||
u16 HLE_ROM_80E7_81F8();
|
||||
|
@ -249,7 +240,7 @@ void gdsp_step()
|
|||
#endif
|
||||
|
||||
u16 opc = dsp_fetch_code();
|
||||
dsp_op[opc >> 12](opc);
|
||||
ComputeInstruction(UDSPInstruction(opc));
|
||||
|
||||
u16& rLoopCounter = g_dsp.r[DSP_REG_ST0 + 3];
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue