mirror of https://github.com/PCSX2/pcsx2.git
Here we go again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@993 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
f4d57faf77
commit
ecbef93c6b
|
@ -1,6 +1,8 @@
|
|||
INCLUDES = -I@srcdir@/.. -I@srcdir@/../../ -I@srcdir@/../../../common/include -I@srcdir@/../../../3rdparty
|
||||
noinst_LIBRARIES = libix86.a
|
||||
|
||||
libix86_a_SOURCES = libix86_a_SOURCES = ix86_mmx.cpp ix86_tools.cpp ix86.cpp ix86_3dnow.cpp \
|
||||
ix86_fpu.cpp ix86_legacy.cpp ix86_sse.cpp ix86_cpudetect.cpp ix86_jmp.cpp \
|
||||
ix86_internal.h ix86.h ix86_macros.h ix86_sse_helpers.h ix86_types.h
|
||||
libix86_a_SOURCES = \
|
||||
ix86.cpp ix86_cpudetect.cpp ix86_fpu.cpp ix86_jmp.cpp ix86_mmx.cpp ix86_tools.cpp ix86_3dnow.cpp \
|
||||
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
|
|
@ -63,4 +63,6 @@ public:
|
|||
|
||||
template< typename T >
|
||||
__noinline void operator()( const ModSibStrict<T>& from ) const { Group3Impl<T>::Emit( InstType, from ); }
|
||||
|
||||
Group3ImplAll() {}
|
||||
};
|
|
@ -139,7 +139,7 @@ public:
|
|||
// Inlining Notes:
|
||||
// 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
|
||||
// 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.
|
||||
//
|
||||
|
||||
|
@ -171,6 +171,8 @@ public:
|
|||
else
|
||||
MovImpl<T>::Emit( to, imm );
|
||||
}
|
||||
|
||||
MovImplAll() {} // Satisfy GCC's whims.
|
||||
};
|
||||
|
||||
|
||||
|
@ -181,7 +183,7 @@ template< typename ImmType >
|
|||
class CMovImpl : public ImplementationHelper< ImmType >
|
||||
{
|
||||
protected:
|
||||
static bool Is8BitOperand() { return OperandSize == 1; }
|
||||
static bool Is8BitOperand() {return OperandSize == 1; }
|
||||
static void prefix16() { if( OperandSize == 2 ) iWrite<u8>( 0x66 ); }
|
||||
|
||||
static __forceinline void emit_base( JccComparisonType cc )
|
||||
|
@ -193,8 +195,8 @@ protected:
|
|||
}
|
||||
|
||||
public:
|
||||
CMovImpl() {}
|
||||
|
||||
static const uint OperandSize = sizeof(ImmType);
|
||||
|
||||
static __emitinline void Emit( JccComparisonType cc, const iRegister<ImmType>& to, const iRegister<ImmType>& from )
|
||||
{
|
||||
if( to == from ) return;
|
||||
|
@ -213,6 +215,7 @@ public:
|
|||
emit_base( cc );
|
||||
EmitSibMagic( to.Id, sibsrc );
|
||||
}
|
||||
CMovImpl() {}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -144,7 +144,7 @@ namespace x86Emitter
|
|||
#ifdef _MSC_VER
|
||||
# define __noinline __declspec(noinline)
|
||||
#else
|
||||
# define __noinline
|
||||
# define __noinline __attribute__((noinline))
|
||||
#endif
|
||||
|
||||
// ModRM 'mod' field enumeration. Provided mostly for reference:
|
||||
|
@ -658,7 +658,7 @@ namespace x86Emitter
|
|||
// flags.
|
||||
|
||||
extern const Internal::MovImplAll iMOV;
|
||||
|
||||
|
||||
extern const Internal::Group2ImplAll<Internal::G2Type_ROL> iROL;
|
||||
extern const Internal::Group2ImplAll<Internal::G2Type_ROR> iROR;
|
||||
extern const Internal::Group2ImplAll<Internal::G2Type_RCL> iRCL;
|
||||
|
|
Loading…
Reference in New Issue