Fix up Linux after r1356. Make a few changes that ought to make -fpermissive unneccessary, though it needs more testing before I actually remove said flag.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1358 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
arcum42 2009-06-11 12:56:55 +00:00
parent 6841f7fd98
commit 1c3a537d5c
8 changed files with 32 additions and 88 deletions

View File

@ -618,7 +618,7 @@ u32 psxHwRead32(u32 add) {
}
// A buffer that stores messages until it gets a /n or the number of chars (g_pbufi) is more then 1023.
static s8 g_pbuf[1024];
static char g_pbuf[1024];
static int g_pbufi;
void psxHwWrite8(u32 add, u8 value) {
if (add >= HW_USB_START && add < HW_USB_END) {

View File

@ -134,7 +134,7 @@ void OnConfConf_Ok(GtkButton *button, gpointer user_data)
plugin_types type;
applychanges = TRUE;
for (type = GS; type <= BIOS; type = type + 1)
for (type = GS; type <= BIOS; type = (plugin_types)((int)type + 1))
{
PluginConf *confs = ConfS(type);
@ -188,7 +188,7 @@ void UpdateConfDlg()
plugin_types type;
FindPlugins();
for (type = GS; type <= BIOS; type = type + 1)
for (type = GS; type <= BIOS; type = (plugin_types)((int)type + 1))
{
char tmp[50];
PluginConf *confs = ConfS(type);
@ -274,7 +274,7 @@ void FindPlugins()
char plugin[g_MaxPath], name[g_MaxPath];
plugin_types type;
for (type = GS; type <= BIOS; type = type + 1)
for (type = GS; type <= BIOS; type = (plugin_types)((int)type + 1))
{
PluginConf *confs = ConfS(type);

View File

@ -927,9 +927,9 @@ void mmap_ClearCpuBlock( uint offset )
// manual protection. Indicates a logic error in the recompiler or protection code.
jASSUME( m_PageProtectInfo[rampage].Mode != ProtMode_Manual );
#ifndef __LINUX__ // this function is called from the signal handler
DbgCon::WriteLn( "Manual page @ 0x%05x", params m_PageProtectInfo[rampage].ReverseRamMap>>12 );
#endif
//#ifndef __LINUX__ // this function is called from the signal handler
//DbgCon::WriteLn( "Manual page @ 0x%05x", params m_PageProtectInfo[rampage].ReverseRamMap>>12 );
//#endif
HostSys::MemProtect( &psM[rampage<<12], 1, Protect_ReadWrite );
m_PageProtectInfo[rampage].Mode = ProtMode_Manual;

View File

@ -324,17 +324,17 @@ vtlbHandler vtlb_RegisterHandler( vtlbMemR8FP* r8,vtlbMemR16FP* r16,vtlbMemR32FP
//write the code :p
vtlbHandler rv=vtlbHandlerCount++;
vtlbdata.RWFT[0][0][rv] = (r8!=0) ? r8:vtlbDefaultPhyRead8;
vtlbdata.RWFT[1][0][rv] = (r16!=0) ? r16:vtlbDefaultPhyRead16;
vtlbdata.RWFT[2][0][rv] = (r32!=0) ? r32:vtlbDefaultPhyRead32;
vtlbdata.RWFT[3][0][rv] = (r64!=0) ? r64:vtlbDefaultPhyRead64;
vtlbdata.RWFT[4][0][rv] = (r128!=0) ? r128:vtlbDefaultPhyRead128;
vtlbdata.RWFT[0][0][rv] = (r8!=0) ? (void*)(r8): (void*)vtlbDefaultPhyRead8;
vtlbdata.RWFT[1][0][rv] = (r16!=0) ? (void*)r16: (void*)vtlbDefaultPhyRead16;
vtlbdata.RWFT[2][0][rv] = (r32!=0) ? (void*)r32: (void*)vtlbDefaultPhyRead32;
vtlbdata.RWFT[3][0][rv] = (r64!=0) ? (void*)r64: (void*)vtlbDefaultPhyRead64;
vtlbdata.RWFT[4][0][rv] = (r128!=0) ? (void*)r128: (void*)vtlbDefaultPhyRead128;
vtlbdata.RWFT[0][1][rv] = (w8!=0) ? w8:vtlbDefaultPhyWrite8;
vtlbdata.RWFT[1][1][rv] = (w16!=0) ? w16:vtlbDefaultPhyWrite16;
vtlbdata.RWFT[2][1][rv] = (w32!=0) ? w32:vtlbDefaultPhyWrite32;
vtlbdata.RWFT[3][1][rv] = (w64!=0) ? w64:vtlbDefaultPhyWrite64;
vtlbdata.RWFT[4][1][rv] = (w128!=0) ? w128:vtlbDefaultPhyWrite128;
vtlbdata.RWFT[0][1][rv] = (w8!=0) ? (void*)w8: (void*)vtlbDefaultPhyWrite8;
vtlbdata.RWFT[1][1][rv] = (w16!=0) ? (void*)w16: (void*)vtlbDefaultPhyWrite16;
vtlbdata.RWFT[2][1][rv] = (w32!=0) ? (void*)w32: (void*)vtlbDefaultPhyWrite32;
vtlbdata.RWFT[3][1][rv] = (w64!=0) ? (void*)w64: (void*)vtlbDefaultPhyWrite64;
vtlbdata.RWFT[4][1][rv] = (w128!=0) ? (void*)w128: (void*)vtlbDefaultPhyWrite128;
return rv;
}

View File

@ -18,19 +18,19 @@ ix86-32/iR5900Shift.cpp ix86-32/iR5900Arit.cpp ix86-32/iR5900Branch.cpp ix86-32
ix86-32/iR5900MultDiv.cpp ix86-32/iCore-32.cpp ix86-32/aR5900-32.S ix86-32/iR5900Templates.cpp ix86-32/recVTLB.cpp
libx86recomp_a_SOURCES = \
BaseblockEx.cpp iCOP0.cpp iCOP2.cpp iCore.cpp iFPU.cpp iFPUd.cpp iMMI.cpp iPsxMem.cpp iR3000A.cpp iR3000Atables.cpp \
iR5900Misc.cpp iVU0micro.cpp iVU1micro.cpp iVUmicro.cpp iVUmicroLower.cpp iVUmicroUpper.cpp iVUzerorec.cpp iVif.cpp \
ir5900tables.cpp fast_routines.S aR3000A.S aVUzerorec.S aVif.S $(archfiles)
BaseblockEx.cpp iCOP2.cpp iFPUd.cpp iR3000A.cpp iVU0micro.cpp ir5900tables.cpp sVU_Micro.cpp \
iCore.cpp iMMI.cpp iR3000Atables.cpp iVU1micro.cpp microVU.cpp sVU_Upper.cpp \
iCOP0.cpp iFPU.cpp iPsxMem.cpp iR5900Misc.cpp iVif.cpp sVU_Lower.cpp sVU_zerorec.cpp \
aR3000A.S aVUzerorec.S aVif.S fast_routines.S $(archfiles)
libx86recomp_a_SOURCES += \
BaseblockEx.h iCOP0.h iCore.h iFPU.h iMMI.h iR3000A.h iR5900.h iR5900Arit.h iR5900AritImm.h iR5900Branch.h iR5900Jump.h \
iR5900LoadStore.h iR5900Move.h iR5900MultDiv.h iR5900Shift.h iVUmicro.h iVUops.h iVUzerorec.h
microVU_Alloc.inl microVU_Compile.inl microVU_Flags.inl microVU_Lower.inl microVU_Tables.inl \
microVU_Analyze.inl microVU_Execute.inl microVU_Log.inl microVU_Misc.inl microVU_Upper.inl
# Only active if PCSX2_MICROVU is defined.
libx86recomp_a_SOURCES += \
microVU.cpp microVU_Misc.inl microVU_Log.inl microVU_Analyze.inl microVU_Alloc.inl microVU_Upper.inl microVU_Lower.inl \
microVU_Tables.inl microVU_Flags.inl microVU_Compile.inl microVU_Execute.inl \
microVU.h microVU_Alloc.h microVU_Misc.h
BaseblockEx.h iFPU.h iR5900.h iR5900Branch.h iR5900Move.h microVU.h sVU_Debug.h \
iCOP0.h iMMI.h iR5900Arit.h iR5900Jump.h iR5900MultDiv.h microVU_IR.h sVU_Micro.h \
iCore.h iR3000A.h iR5900AritImm.h iR5900LoadStore.h iR5900Shift.h microVU_Misc.h sVU_zerorec.h
libx86recomp_a_DEPENDENCIES = ix86/libix86.a

View File

@ -1,62 +0,0 @@
// microVU.cpp assembly routines
// arcum42(@gmail.com)
.intel_syntax noprefix
.extern mVUexecuteVU0
.extern mVUexecuteVU1
.extern g_sseVUMXCSR
.extern g_sseMXCSR
//------------------------------------------------------------------
// Dispatcher Functions
//------------------------------------------------------------------
// Runs VU0 for number of cycles
// __fastcall = The first two DWORD or smaller arguments are passed in ECX and EDX registers; all other arguments are passed right to left.
//void __fastcall startVU0(u32 startPC, u32 cycles)
.globl startVU0
startVU0:
call mVUexecuteVU0
// backup cpu state
push ebx
push ebp
push esi
push edi
ldmxcsr g_sseVUMXCSR
// Should set xmmZ?
jmp eax
// Runs VU1 for number of cycles
// void __fastcall startVU1(u32 startPC, u32 cycles)
.globl startVU1
startVU01:
call mVUexecuteVU1
// backup cpu state
push ebx
push ebp
push esi
push edi
ldmxcsr g_sseVUMXCSR
jmp eax
// Exit point
// void __fastcall endVU0(u32 startPC, u32 cycles)
.globl endVU0
endVU0:
//call mVUcleanUpVU0
/*restore cpu state*/
pop edi;
pop esi;
pop ebp;
pop ebx;
ldmxcsr g_sseMXCSR
ret

View File

@ -162,7 +162,10 @@ declareAllVariables
#define pass4 if (recPass == 3)
// Define mVUquickSearch
#ifndef __LINUX__
extern u8 mVUsearchXMM[0x1000];
#endif
typedef u32 (__fastcall *mVUCall)(void*, void*);
#ifndef __LINUX__
#define mVUquickSearch(dest, src, size) ((((mVUCall)((void*)mVUsearchXMM))(dest, src)) == 0xf)
@ -172,6 +175,7 @@ typedef u32 (__fastcall *mVUCall)(void*, void*);
#else
//#define mVUquickSearch(dest, src, size) (!memcmp(dest, src, size))
#define mVUquickSearch(dest, src, size) (!memcmp_mmx(dest, src, size))
#define mVUemitSearch()
#endif
// Misc Macros...

View File

@ -438,6 +438,7 @@ void SSE_ADD2PS_XMM_to_XMM(x86SSERegType to, x86SSERegType from) {
// Micro VU - Custom Quick Search
//------------------------------------------------------------------
#ifndef __LINUX__
PCSX2_ALIGNED(0x1000, static u8 mVUsearchXMM[0x1000]);
// Generates a custom optimized block-search function (Note: Structs must be 16-byte aligned!)
@ -490,3 +491,4 @@ void mVUemitSearch() {
xRET();
HostSys::MemProtect(mVUsearchXMM, 0x1000, Protect_ReadOnly, true );
}
#endif