mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Sorry for intruding in to the core. Fixed NoGUI mode in Linux, add back the instruction names as comments in the JIT tables, was a bit hard to find certain instructions.Trying to find a good way to get The JIT dependencies removed in a nice fashion
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3776 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@@ -109,6 +109,7 @@ vars.AddVariables(
|
||||
BoolVariable('sdlgl', 'Set For Building with SDL GL libs (WIP)', False),
|
||||
BoolVariable('gltest', 'temp don\'t use (WIP)', False),
|
||||
BoolVariable('jittest', 'temp don\'t use (WIP)', False),
|
||||
BoolVariable('nojit', 'Remove entire jit cores', False),
|
||||
EnumVariable('flavor', 'Choose a build flavor', 'release',
|
||||
allowed_values = ('release', 'devel', 'debug', 'fastlog', 'prof'),
|
||||
ignorecase = 2
|
||||
@@ -310,8 +311,13 @@ conf.Define('GLTEST', env['GLTEST'])
|
||||
env['JITTEST'] = 0
|
||||
if env['jittest']:
|
||||
env['JITTEST'] = 1
|
||||
|
||||
env['NOJIT'] = 0
|
||||
if env['nojit']:
|
||||
env['NOJIT'] = 1
|
||||
|
||||
conf.Define('JITTEST', env['JITTEST'])
|
||||
conf.Define('NOJIT', env['NOJIT'])
|
||||
|
||||
# Creating config.h defines
|
||||
conf.Define('HAVE_SDL', env['HAVE_SDL'])
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#include <xmmintrin.h>
|
||||
|
||||
#include "Common.h"
|
||||
#include "MathUtil.h"
|
||||
|
||||
|
||||
@@ -356,7 +356,9 @@ void icbi(UGeckoInstruction _inst)
|
||||
// VERY IMPORTANT when we start linking blocks
|
||||
// There are a TON of these so hopefully we can make this mechanism
|
||||
// fast in the JIT
|
||||
jit.GetBlockCache()->InvalidateCodeRange(address, 0x20);
|
||||
// ector said that this isn't needed anymore, and that making
|
||||
// a jit version of this instruction would be easy anyway
|
||||
//jit.GetBlockCache()->InvalidateCodeRange(address, 0x20);
|
||||
}
|
||||
|
||||
void lbzux(UGeckoInstruction _inst)
|
||||
|
||||
@@ -63,21 +63,13 @@ static GekkoOPTemplate primarytable[] =
|
||||
{28, Interpreter::andi_rc, {"andi_rc", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
|
||||
{29, Interpreter::andis_rc, {"andis_rc", OPTYPE_INTEGER, FL_OUT_A | FL_IN_S | FL_SET_CR0}},
|
||||
|
||||
#if JITTEST
|
||||
{32, Interpreter::lwz, {"lwz", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{33, Interpreter::lwzu, {"lwzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
{34, Interpreter::lbz, {"lbz", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{35, Interpreter::lbzu, {"lbzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
{40, Interpreter::lhz, {"lhz", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{41, Interpreter::lhzu, {"lhzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
#else
|
||||
{32, Interpreter::lwz, {"lwz", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{33, Interpreter::lwzu, {"lwzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
{34, Interpreter::lbz, {"lbz", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{35, Interpreter::lbzu, {"lbzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
{40, Interpreter::lhz, {"lhz", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{41, Interpreter::lhzu, {"lhzu", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
#endif
|
||||
|
||||
{42, Interpreter::lha, {"lha", OPTYPE_LOAD, FL_OUT_D | FL_IN_A}},
|
||||
{43, Interpreter::lhau, {"lhau", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A}},
|
||||
|
||||
@@ -213,7 +205,7 @@ static GekkoOPTemplate table31[] =
|
||||
{470, Interpreter::dcbi, {"dcbi", OPTYPE_DCACHE, 0, 4}},
|
||||
{758, Interpreter::dcba, {"dcba", OPTYPE_DCACHE, 0, 4}},
|
||||
{1014, Interpreter::dcbz, {"dcbz", OPTYPE_DCACHE, 0, 4}},
|
||||
#if JITTEST
|
||||
|
||||
//load word
|
||||
{23, Interpreter::lwzx, {"lwzx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{55, Interpreter::lwzux, {"lwzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
|
||||
@@ -229,23 +221,7 @@ static GekkoOPTemplate table31[] =
|
||||
//load byte
|
||||
{87, Interpreter::lbzx, {"lbzx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{119, Interpreter::lbzux, {"lbzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
|
||||
#else
|
||||
//load word
|
||||
{23, Interpreter::lwzx, {"lwzx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{55, Interpreter::lwzux, {"lwzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
|
||||
|
||||
//load halfword
|
||||
{279, Interpreter::lhzx, {"lhzx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{311, Interpreter::lhzux, {"lhzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
|
||||
|
||||
//load halfword signextend
|
||||
{343, Interpreter::lhax, {"lhax", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{375, Interpreter::lhaux, {"lhaux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
|
||||
|
||||
//load byte
|
||||
{87, Interpreter::lbzx, {"lbzx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{119, Interpreter::lbzux, {"lbzux", OPTYPE_LOAD, FL_OUT_D | FL_OUT_A | FL_IN_A | FL_IN_B}},
|
||||
#endif
|
||||
|
||||
//load byte reverse
|
||||
{534, Interpreter::lwbrx, {"lwbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
{790, Interpreter::lhbrx, {"lhbrx", OPTYPE_LOAD, FL_OUT_D | FL_IN_A0 | FL_IN_B}},
|
||||
@@ -321,11 +297,7 @@ static GekkoOPTemplate table31_2[] =
|
||||
{10, Interpreter::addcx, {"addcx", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_SET_CA | FL_RC_BIT}},
|
||||
{138, Interpreter::addex, {"addex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
|
||||
{234, Interpreter::addmex, {"addmex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
|
||||
#if JITTEST
|
||||
{202, Interpreter::addzex, {"addzex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
|
||||
#else
|
||||
{202, Interpreter::addzex, {"addzex", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_READ_CA | FL_SET_CA | FL_RC_BIT}},
|
||||
#endif
|
||||
{491, Interpreter::divwx, {"divwx", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
|
||||
{459, Interpreter::divwux, {"divwux", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 39}},
|
||||
{75, Interpreter::mulhwx, {"mulhwx", OPTYPE_INTEGER, FL_OUT_D | FL_IN_AB | FL_RC_BIT, 4}},
|
||||
|
||||
@@ -36,10 +36,6 @@
|
||||
#include "../JitCommon/JitCache.h"
|
||||
#include "../JitCommon/Jit_Tables.h"
|
||||
|
||||
#if !defined JITTEST || ! JITTEST
|
||||
#error JitIL needs JITTEST define
|
||||
#endif
|
||||
|
||||
using namespace Gen;
|
||||
using namespace PowerPC;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,7 @@
|
||||
#include "StringUtil.h"
|
||||
#include "Interpreter/Interpreter.h"
|
||||
#include "Interpreter/Interpreter_Tables.h"
|
||||
#ifndef NOJIT
|
||||
#include "JitCommon/Jit_Tables.h"
|
||||
|
||||
#if defined(_M_IX86) || defined(_M_X64)
|
||||
@@ -30,6 +31,7 @@
|
||||
#else
|
||||
#error Unknown architecture!
|
||||
#endif
|
||||
#endif
|
||||
|
||||
struct op_inf
|
||||
{
|
||||
@@ -158,7 +160,10 @@ void InitTables()
|
||||
{
|
||||
// Interpreter ALWAYS needs to be initialized
|
||||
InterpreterTables::InitTables();
|
||||
#ifndef NOJIT
|
||||
// Should be able to do this a better way than defines in this function
|
||||
JitTables::InitTables();
|
||||
#endif
|
||||
}
|
||||
|
||||
#define OPLOG
|
||||
|
||||
@@ -90,36 +90,36 @@ files = ["ActionReplay.cpp",
|
||||
"HLE/HLE_Misc.cpp",
|
||||
"HLE/HLE_OS.cpp",
|
||||
]
|
||||
|
||||
if env['JITTEST']:
|
||||
files += ["PowerPC/Jit64IL/Jit.cpp",
|
||||
"PowerPC/Jit64IL/JitAsm.cpp",
|
||||
"PowerPC/Jit64IL/Jit_Branch.cpp",
|
||||
"PowerPC/Jit64IL/Jit_Integer.cpp",
|
||||
"PowerPC/Jit64IL/Jit_FloatingPoint.cpp",
|
||||
"PowerPC/Jit64IL/Jit_LoadStorePaired.cpp",
|
||||
"PowerPC/Jit64IL/Jit_Paired.cpp",
|
||||
"PowerPC/Jit64IL/Jit_LoadStore.cpp",
|
||||
"PowerPC/Jit64IL/Jit_LoadStoreFloating.cpp",
|
||||
"PowerPC/Jit64IL/Jit_SystemRegisters.cpp",
|
||||
"PowerPC/Jit64IL/IR.cpp",
|
||||
"PowerPC/Jit64IL/IR_X86.cpp",
|
||||
"PowerPC/JitCommon//Jit_Tables.cpp",
|
||||
]
|
||||
else:
|
||||
files += ["PowerPC/Jit64/Jit.cpp",
|
||||
"PowerPC/Jit64/JitRegCache.cpp",
|
||||
"PowerPC/Jit64/JitAsm.cpp",
|
||||
"PowerPC/Jit64/Jit_Branch.cpp",
|
||||
"PowerPC/Jit64/Jit_Integer.cpp",
|
||||
"PowerPC/Jit64/Jit_FloatingPoint.cpp",
|
||||
"PowerPC/Jit64/Jit_LoadStorePaired.cpp",
|
||||
"PowerPC/Jit64/Jit_Paired.cpp",
|
||||
"PowerPC/Jit64/Jit_LoadStore.cpp",
|
||||
"PowerPC/Jit64/Jit_LoadStoreFloating.cpp",
|
||||
"PowerPC/Jit64/Jit_SystemRegisters.cpp",
|
||||
"PowerPC/JitCommon/Jit_Tables.cpp",
|
||||
]
|
||||
if not env['NOJIT']:
|
||||
if env['JITTEST']:
|
||||
files += ["PowerPC/Jit64IL/Jit.cpp",
|
||||
"PowerPC/Jit64IL/JitAsm.cpp",
|
||||
"PowerPC/Jit64IL/Jit_Branch.cpp",
|
||||
"PowerPC/Jit64IL/Jit_Integer.cpp",
|
||||
"PowerPC/Jit64IL/Jit_FloatingPoint.cpp",
|
||||
"PowerPC/Jit64IL/Jit_LoadStorePaired.cpp",
|
||||
"PowerPC/Jit64IL/Jit_Paired.cpp",
|
||||
"PowerPC/Jit64IL/Jit_LoadStore.cpp",
|
||||
"PowerPC/Jit64IL/Jit_LoadStoreFloating.cpp",
|
||||
"PowerPC/Jit64IL/Jit_SystemRegisters.cpp",
|
||||
"PowerPC/Jit64IL/IR.cpp",
|
||||
"PowerPC/Jit64IL/IR_X86.cpp",
|
||||
"PowerPC/JitCommon//Jit_Tables.cpp",
|
||||
]
|
||||
else:
|
||||
files += ["PowerPC/Jit64/Jit.cpp",
|
||||
"PowerPC/Jit64/JitRegCache.cpp",
|
||||
"PowerPC/Jit64/JitAsm.cpp",
|
||||
"PowerPC/Jit64/Jit_Branch.cpp",
|
||||
"PowerPC/Jit64/Jit_Integer.cpp",
|
||||
"PowerPC/Jit64/Jit_FloatingPoint.cpp",
|
||||
"PowerPC/Jit64/Jit_LoadStorePaired.cpp",
|
||||
"PowerPC/Jit64/Jit_Paired.cpp",
|
||||
"PowerPC/Jit64/Jit_LoadStore.cpp",
|
||||
"PowerPC/Jit64/Jit_LoadStoreFloating.cpp",
|
||||
"PowerPC/Jit64/Jit_SystemRegisters.cpp",
|
||||
"PowerPC/JitCommon/Jit_Tables.cpp",
|
||||
]
|
||||
|
||||
if sys.platform == 'win32':
|
||||
files += [ "stdafx.cpp",
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# -*- python -*-
|
||||
|
||||
Import('env')
|
||||
|
||||
files = [
|
||||
'CodeView.cpp',
|
||||
'MemoryView.cpp',
|
||||
'DebuggerUIUtil.cpp',
|
||||
]
|
||||
files = [] #So it's declared outside the if
|
||||
if env['HAVE_WX']:
|
||||
files += [
|
||||
'CodeView.cpp',
|
||||
'DebuggerUIUtil.cpp',
|
||||
'MemoryView.cpp',
|
||||
]
|
||||
|
||||
acenv = env.Clone()
|
||||
acenv.Append(CXXFLAGS = [ '-fPIC' ])
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
//#include <curses.h>
|
||||
#include <sys/param.h>
|
||||
#else
|
||||
|
||||
#endif
|
||||
|
||||
#include "Common.h"
|
||||
@@ -208,7 +209,7 @@ int main(int argc, char* argv[])
|
||||
if (!File::Exists(AppSupportDir) || !File::IsDirectory(AppSupportDir))
|
||||
PanicAlert("Could not open ~/Library/Application Support");
|
||||
|
||||
strlcat(AppSupportDir, "/Dolphin", sizeof(AppSupportDir));
|
||||
strncat(AppSupportDir, "/Dolphin", sizeof(AppSupportDir));
|
||||
|
||||
if (!File::Exists(AppSupportDir))
|
||||
File::CreateDir(AppSupportDir);
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
|
||||
#include "X11InputBase.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
namespace InputCommon
|
||||
{
|
||||
#ifdef HAVE_WX
|
||||
#include <wx/wx.h>
|
||||
// Taken from wxw source code
|
||||
KeySym wxCharCodeWXToX(int id)
|
||||
{
|
||||
@@ -84,7 +89,7 @@ KeySym wxCharCodeWXToX(int id)
|
||||
|
||||
return keySym;
|
||||
}
|
||||
|
||||
#endif
|
||||
void XKeyToString(unsigned int keycode, char *keyStr) {
|
||||
switch (keycode) {
|
||||
|
||||
@@ -128,4 +133,4 @@ void XKeyToString(unsigned int keycode, char *keyStr) {
|
||||
sprintf(keyStr, "%c", toupper(keycode));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
#include <X11/X.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <wx/wx.h>
|
||||
namespace InputCommon
|
||||
{
|
||||
KeySym wxCharCodeWXToX(int id);
|
||||
|
||||
@@ -102,14 +102,17 @@ u32 DSPHost_CodeLoaded(const u8 *ptr, int size)
|
||||
|
||||
// Always add the ROM.
|
||||
DSPSymbols::AutoDisassembly(0x8000, 0x9000);
|
||||
|
||||
#if defined(HAVE_WX) && HAVE_WX
|
||||
if (m_DebuggerFrame)
|
||||
m_DebuggerFrame->Refresh();
|
||||
#endif
|
||||
return crc;
|
||||
}
|
||||
|
||||
void DSPHost_UpdateDebugger()
|
||||
{
|
||||
#if defined(HAVE_WX) && HAVE_WX
|
||||
if (m_DebuggerFrame)
|
||||
m_DebuggerFrame->Refresh();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1237,7 +1237,7 @@ bool Renderer::SaveRenderTarget(const char *filename, int W, int H, int YOffset)
|
||||
OSD::AddMessage(StringFromFormat("Saved %i x %i %s\n", W, H, s_sScreenshotName.c_str()).c_str(), 2000);
|
||||
|
||||
#else
|
||||
bool result = SaveTGA(filename, w, h, data);
|
||||
bool result = SaveTGA(filename, W, H, data);
|
||||
free(data);
|
||||
#endif
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user