mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 19:45:20 +00:00
More opcodes
This commit is contained in:
parent
29d2ea7513
commit
5d091411a3
3 changed files with 572 additions and 420 deletions
2
asmjit
2
asmjit
|
@ -1 +1 @@
|
|||
Subproject commit 6c50029aa0aa23722b3c4c507113afa04191e5df
|
||||
Subproject commit 316812daf0d734f1e3dc3abb05785737513274f0
|
File diff suppressed because it is too large
Load diff
|
@ -4,8 +4,6 @@
|
|||
#include "SPUInterpreter.h"
|
||||
#include "SPURecompiler.h"
|
||||
|
||||
static const SPUImmTable g_spu_imm;
|
||||
|
||||
SPURecompilerCore::SPURecompilerCore(SPUThread& cpu)
|
||||
: m_enc(new SPURecompiler(cpu, *this))
|
||||
, inter(new SPUInterpreter(cpu))
|
||||
|
@ -135,9 +133,9 @@ void SPURecompilerCore::Compile(u16 pos)
|
|||
log.Open(wxString::Format("SPUjit_%d.log", GetCurrentSPUThread().GetId()), first ? wxFile::write : wxFile::write_append);
|
||||
log.Write(wxString::Format("========== START POSITION 0x%x ==========\n\n", start * 4));
|
||||
log.Write(wxString(stringLogger.getString()));
|
||||
log.Write(wxString::Format("========== COMPILED %d (excess %d), time: [start=%lld (decoding=%lld), finalize=%lld]\n\n",
|
||||
entry[start].count, excess, stamp1 - stamp0, time0, get_system_time() - stamp1));
|
||||
log.Close();
|
||||
//ConLog.Write("Compiled: %d (excess %d), addr=0x%x, time: [start=%d (decoding=%d), finalize=%d]",
|
||||
//entry[start].count, excess, start * 4, stamp1 - stamp0, time0, get_system_time() - stamp1);
|
||||
m_enc->compiler = nullptr;
|
||||
first = false;
|
||||
}
|
||||
|
@ -200,7 +198,7 @@ u8 SPURecompilerCore::DecodeMemory(const u64 address)
|
|||
return 0;
|
||||
}
|
||||
|
||||
typedef u32(*Func)(void* _cpu, void* _ls, const SPUImmTable* _imm, u32 _pos);
|
||||
typedef u32(*Func)(void* _cpu, void* _ls, const void* _imm, u32 _pos);
|
||||
|
||||
Func func = asmjit_cast<Func>(entry[pos].pointer);
|
||||
|
||||
|
@ -217,7 +215,7 @@ u8 SPURecompilerCore::DecodeMemory(const u64 address)
|
|||
}
|
||||
|
||||
u16 res = pos;
|
||||
res = (u16)func(cpu, &Memory[m_offset], &g_spu_imm, res);
|
||||
res = (u16)func(cpu, &Memory[m_offset], imm_table.data(), res);
|
||||
|
||||
if (did_compile)
|
||||
{
|
||||
|
@ -238,6 +236,4 @@ u8 SPURecompilerCore::DecodeMemory(const u64 address)
|
|||
CPU.SetBranch((u64)res << 2);
|
||||
return 0;
|
||||
}
|
||||
/*Decode(Memory.Read32(address));
|
||||
return 4;*/
|
||||
}
|
Loading…
Add table
Reference in a new issue