Here we go again.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@993 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
arcum42 2009-04-16 23:57:04 +00:00
parent f4d57faf77
commit ecbef93c6b
4 changed files with 16 additions and 9 deletions

View File

@ -1,6 +1,8 @@
INCLUDES = -I@srcdir@/.. -I@srcdir@/../../ -I@srcdir@/../../../common/include -I@srcdir@/../../../3rdparty INCLUDES = -I@srcdir@/.. -I@srcdir@/../../ -I@srcdir@/../../../common/include -I@srcdir@/../../../3rdparty
noinst_LIBRARIES = libix86.a noinst_LIBRARIES = libix86.a
libix86_a_SOURCES = libix86_a_SOURCES = ix86_mmx.cpp ix86_tools.cpp ix86.cpp ix86_3dnow.cpp \ libix86_a_SOURCES = \
ix86_fpu.cpp ix86_legacy.cpp ix86_sse.cpp ix86_cpudetect.cpp ix86_jmp.cpp \ ix86.cpp ix86_cpudetect.cpp ix86_fpu.cpp ix86_jmp.cpp ix86_mmx.cpp ix86_tools.cpp ix86_3dnow.cpp \
ix86_internal.h ix86.h ix86_macros.h ix86_sse_helpers.h ix86_types.h ix86_legacy.cpp ix86_sse.cpp \
ix86_internal.h ix86_legacy_instructions.h ix86_macros.h ix86_sse_helpers.h ix86.h ix86_legacy_internal.h \
ix86_instructions.h ix86_legacy_types.h ix86_types.h

View File

@ -63,4 +63,6 @@ public:
template< typename T > template< typename T >
__noinline void operator()( const ModSibStrict<T>& from ) const { Group3Impl<T>::Emit( InstType, from ); } __noinline void operator()( const ModSibStrict<T>& from ) const { Group3Impl<T>::Emit( InstType, from ); }
Group3ImplAll() {}
}; };

View File

@ -139,7 +139,7 @@ public:
// Inlining Notes: // Inlining Notes:
// I've set up the inlining to be as practical and intelligent as possible, which means // I've set up the inlining to be as practical and intelligent as possible, which means
// forcing inlining for (void*) forms of ModRM, which thanks to constprop reduce to // forcing inlining for (void*) forms of ModRM, which thanks to constprop reduce to
// virtually no code. In the case of (Reg, Imm) forms, the inlinign is up to the dis- // virtually no code. In the case of (Reg, Imm) forms, the inlining is up to the dis-
// cretion of the compiler. // cretion of the compiler.
// //
@ -171,6 +171,8 @@ public:
else else
MovImpl<T>::Emit( to, imm ); MovImpl<T>::Emit( to, imm );
} }
MovImplAll() {} // Satisfy GCC's whims.
}; };
@ -181,7 +183,7 @@ template< typename ImmType >
class CMovImpl : public ImplementationHelper< ImmType > class CMovImpl : public ImplementationHelper< ImmType >
{ {
protected: protected:
static bool Is8BitOperand() { return OperandSize == 1; } static bool Is8BitOperand() {return OperandSize == 1; }
static void prefix16() { if( OperandSize == 2 ) iWrite<u8>( 0x66 ); } static void prefix16() { if( OperandSize == 2 ) iWrite<u8>( 0x66 ); }
static __forceinline void emit_base( JccComparisonType cc ) static __forceinline void emit_base( JccComparisonType cc )
@ -193,7 +195,7 @@ protected:
} }
public: public:
CMovImpl() {} static const uint OperandSize = sizeof(ImmType);
static __emitinline void Emit( JccComparisonType cc, const iRegister<ImmType>& to, const iRegister<ImmType>& from ) static __emitinline void Emit( JccComparisonType cc, const iRegister<ImmType>& to, const iRegister<ImmType>& from )
{ {
@ -213,6 +215,7 @@ public:
emit_base( cc ); emit_base( cc );
EmitSibMagic( to.Id, sibsrc ); EmitSibMagic( to.Id, sibsrc );
} }
CMovImpl() {}
}; };

View File

@ -144,7 +144,7 @@ namespace x86Emitter
#ifdef _MSC_VER #ifdef _MSC_VER
# define __noinline __declspec(noinline) # define __noinline __declspec(noinline)
#else #else
# define __noinline # define __noinline __attribute__((noinline))
#endif #endif
// ModRM 'mod' field enumeration. Provided mostly for reference: // ModRM 'mod' field enumeration. Provided mostly for reference: