mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 09:09:52 -06:00
More linux work. Getting a bit closer, but JIT does still not work.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@119 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -43,8 +43,6 @@ public:
|
||||
private:
|
||||
enum { BIOS_SIZE = 2*1024*1024 };
|
||||
|
||||
static char gameID[7];
|
||||
|
||||
static void RunFunction(u32 _iAddr, bool _bUseDebugger);
|
||||
|
||||
static void UpdateDebugger_MapLoaded(const char* _gameID = NULL);
|
||||
|
@ -1050,9 +1050,10 @@ void SDRUpdated()
|
||||
|
||||
u32 CheckDTLB(u32 _Address, XCheckTLBFlag _Flag)
|
||||
{
|
||||
PanicAlert("TLB: Read from unknown memory (0x%08x)\n"
|
||||
"Several games uses the TLB to map memory. This\n"
|
||||
"function is not support in dolphin. Cheers!", _Address);
|
||||
PanicAlert("TLB: %s unknown memory (0x%08x)\n"
|
||||
"Several games uses the TLB to map memory. This\n"
|
||||
"function is not support in dolphin. Cheers!",
|
||||
_Flag == FLAG_WRITE ? "Write to" : "Read from", _Address);
|
||||
|
||||
u32 sr = PowerPC::ppcState.sr[EA_SR(_Address)];
|
||||
|
||||
@ -1144,4 +1145,4 @@ u32 CheckDTLB(u32 _Address, XCheckTLBFlag _Flag)
|
||||
}
|
||||
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
@ -15,6 +15,7 @@
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
#include "Common.h"
|
||||
#include <map>
|
||||
#include "x64Emitter.h"
|
||||
#include "ABI.h"
|
||||
#include "../../HLE/HLE.h"
|
||||
@ -259,9 +260,13 @@ namespace Jit64
|
||||
|
||||
bool ImHereDebug = false;
|
||||
|
||||
std::map<u32, bool> been_here;
|
||||
void ImHere()
|
||||
{
|
||||
if (been_here.find(PC) != been_here.end())
|
||||
return;
|
||||
LOG(DYNA_REC, "I'm here - PC = %08x , LR = %08x", PC, LR);
|
||||
been_here[PC] = true;
|
||||
}
|
||||
|
||||
void FlushRegCaches()
|
||||
|
@ -191,12 +191,13 @@ void Generate()
|
||||
|
||||
ABI_PushAllCalleeSavedRegsAndAdjustStack();
|
||||
|
||||
//INT3();
|
||||
// INT3();
|
||||
|
||||
MOV(64, R(RBX), Imm64((u64)Memory::base));
|
||||
if ((u64)GetCodePointers() > 0x80000000ULL) {
|
||||
PanicAlert("Code Pointers are above the limit!");
|
||||
}
|
||||
// if ((u64)GetCodePointers() > 0x80000000ULL) {
|
||||
// PanicAlert("Code Pointers are above the limit! %p",
|
||||
// GetCodePointers());
|
||||
//}
|
||||
MOV(64, R(R15), Imm64((u64)GetCodePointers())); //It's below 2GB so 32 bits are good enough
|
||||
const u8 *outerLoop = GetCodePtr();
|
||||
|
||||
|
@ -56,8 +56,8 @@ namespace Jit64
|
||||
if (accessSize != 32)
|
||||
XOR(32, R(EAX), R(EAX));
|
||||
#ifdef _M_IX86
|
||||
AND(32, R(ECX), Imm32(Memory::MEMVIEW32_MASK));
|
||||
MOV(accessSize, R(EAX), MDisp(ECX, (u32)Memory::base));
|
||||
AND(32, R(reg), Imm32(Memory::MEMVIEW32_MASK));
|
||||
MOV(accessSize, R(EAX), MDisp(reg, (u32)Memory::base));
|
||||
#else
|
||||
MOV(accessSize, R(EAX), MComplex(RBX, reg, SCALE_1, 0));
|
||||
#endif
|
||||
@ -72,9 +72,9 @@ namespace Jit64
|
||||
SetJumpTarget(argh);
|
||||
switch (accessSize)
|
||||
{
|
||||
case 32: ABI_CallFunctionR((void *)&Memory::Read_U32, ECX); break;
|
||||
case 16: ABI_CallFunctionR((void *)&Memory::Read_U16, ECX); break;
|
||||
case 8: ABI_CallFunctionR((void *)&Memory::Read_U8, ECX); break;
|
||||
case 32: ABI_CallFunctionR((void *)&Memory::Read_U32, reg); break;
|
||||
case 16: ABI_CallFunctionR((void *)&Memory::Read_U16, reg); break;
|
||||
case 8: ABI_CallFunctionR((void *)&Memory::Read_U8, reg); break;
|
||||
}
|
||||
SetJumpTarget(arg2);
|
||||
}
|
||||
@ -135,10 +135,10 @@ namespace Jit64
|
||||
}
|
||||
|
||||
//Still here? Do regular path.
|
||||
#ifdef _M_IX86
|
||||
if (true) {
|
||||
#elif defined(_M_X64)
|
||||
#if defined(_M_X64) && defined(_WIN32)
|
||||
if (accessSize == 8 || accessSize == 16 || !jo.enableFastMem) {
|
||||
#else
|
||||
if (true) {
|
||||
#endif
|
||||
// Safe and boring
|
||||
gpr.Flush(FLUSH_VOLATILE);
|
||||
@ -259,6 +259,8 @@ namespace Jit64
|
||||
|
||||
void stfs(UGeckoInstruction inst)
|
||||
{
|
||||
Default(inst);
|
||||
return; // LINUXTODO
|
||||
BIT32OLD;
|
||||
OLD;
|
||||
bool update = inst.OPCD & 1;
|
||||
@ -336,6 +338,8 @@ namespace Jit64
|
||||
|
||||
void stX(UGeckoInstruction inst)
|
||||
{
|
||||
Default(inst);
|
||||
return;
|
||||
int s = inst.RS;
|
||||
int a = inst.RA;
|
||||
|
||||
|
Reference in New Issue
Block a user