mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
DSP LLE Jit, joined work with XK and skidu.
VERY EXPERIMENTAL DON'T EXPECT HIGH PERFORMANCE!. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5288 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -20,7 +20,9 @@
|
||||
#ifndef _DSPTABLES_H
|
||||
#define _DSPTABLES_H
|
||||
|
||||
#include "Common.h"
|
||||
//nclude "Common.h"
|
||||
#include "DSPEmitter.h"
|
||||
#include "DSPCommon.h"
|
||||
|
||||
// The non-ADDR ones that end with _D are the opposite one - if the bit specify
|
||||
// ACC0, then ACC_D will be ACC1.
|
||||
@ -67,9 +69,8 @@ enum partype_t
|
||||
#define OPTABLE_SIZE 0xffff + 1
|
||||
#define EXT_OPTABLE_SIZE 0xff + 1
|
||||
|
||||
typedef u16 UDSPInstruction;
|
||||
|
||||
typedef void (*dspInstFunc)(const UDSPInstruction);
|
||||
typedef void (*dspIntFunc)(const UDSPInstruction);
|
||||
typedef void (DSPEmitter::*dspJitFunc)(const UDSPInstruction);
|
||||
|
||||
struct param2_t
|
||||
{
|
||||
@ -86,8 +87,8 @@ typedef struct
|
||||
u16 opcode;
|
||||
u16 opcode_mask;
|
||||
|
||||
dspInstFunc interpFunc;
|
||||
dspInstFunc jitFunc;
|
||||
dspIntFunc intFunc;
|
||||
dspJitFunc jitFunc;
|
||||
|
||||
u8 size;
|
||||
u8 param_count;
|
||||
@ -141,11 +142,11 @@ inline void ExecuteInstruction(const UDSPInstruction inst)
|
||||
|
||||
if (tinst->extended) {
|
||||
if ((inst >> 12) == 0x3)
|
||||
extOpTable[inst & 0x7F]->interpFunc(inst);
|
||||
extOpTable[inst & 0x7F]->intFunc(inst);
|
||||
else
|
||||
extOpTable[inst & 0xFF]->interpFunc(inst);
|
||||
extOpTable[inst & 0xFF]->intFunc(inst);
|
||||
}
|
||||
tinst->interpFunc(inst);
|
||||
tinst->intFunc(inst);
|
||||
if (tinst->extended) {
|
||||
applyWriteBackLog();
|
||||
}
|
||||
|
Reference in New Issue
Block a user