fixed GTE FLAG register calculation on MSVC builds (nw)

This commit is contained in:
smf- 2013-05-24 10:01:40 +00:00
parent 5b3ba478c9
commit 31e896f90a

View File

@ -401,7 +401,23 @@ UINT32 gte::Lm_E( UINT32 result )
return result; return result;
} }
INT64 gte::F( INT64 a ) { m_mac0 = a; if( a > S64( 0x7fffffff ) ) FLAG |= ( 1 << 31 ) | ( 1 << 16 ); if( a < S64(-0x80000000) ) FLAG |= ( 1 << 31 ) | ( 1 << 15 ); return a; } INT64 gte::F( INT64 a )
{
m_mac0 = a;
if( a > 0x7fffffff )
{
FLAG |= ( 1 << 31 ) | ( 1 << 16 );
}
if( a < (INT32) -0x80000000 )
{
FLAG |= ( 1 << 31 ) | ( 1 << 15 );
}
return a;
}
INT32 gte::Lm_G1( INT64 a ) INT32 gte::Lm_G1( INT64 a )
{ {
if( a > 0x3ff ) if( a > 0x3ff )
@ -409,6 +425,7 @@ INT32 gte::Lm_G1( INT64 a )
FLAG |= ( 1 << 31 ) | ( 1 << 14 ); FLAG |= ( 1 << 31 ) | ( 1 << 14 );
return 0x3ff; return 0x3ff;
} }
if( a < -0x400 ) if( a < -0x400 )
{ {
FLAG |= ( 1 << 31 ) | ( 1 << 14 ); FLAG |= ( 1 << 31 ) | ( 1 << 14 );
@ -451,7 +468,8 @@ INT32 gte::Lm_H( INT64 value, int sf )
{ {
return max; return max;
} }
else if( value_12 < min )
if( value_12 < min )
{ {
return min; return min;
} }