fix Jit64::fmrx (well, fixes soul calibur 2 SPS at least) cottonvibes wrote this :)

fmrx can do some different behavior depending on the current mode of the fpr, but we *seem* to not have a problem ignoring this behavior...
add a tiny comment to the PECopy register - some sources call the half_scale bit "mipmap"

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4476 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman 2009-10-29 04:01:31 +00:00
parent 7602f7ab3e
commit 31e61da40d
2 changed files with 7 additions and 4 deletions

View File

@ -194,16 +194,19 @@ void Jit64::fsign(UGeckoInstruction inst)
void Jit64::fmrx(UGeckoInstruction inst)
{
INSTRUCTION_START
if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITFloatingPointOff)
{Default(inst); return;} // turn off from debugger
INSTRUCTION_START;
if (inst.Rc) {
Default(inst); return;
}
int d = inst.FD;
int b = inst.FB;
fpr.LoadToX64(d, true); // we don't want to destroy the high bit
MOVSD(fpr.RX(d), fpr.R(b));
fpr.Lock(b, d);
fpr.LoadToX64(d, true, true);
MOVSD(XMM0, fpr.R(b));
MOVSD(fpr.R(d), XMM0);
fpr.UnlockAll();
}
void Jit64::fcmpx(UGeckoInstruction inst)

View File

@ -813,7 +813,7 @@ union UPE_Copy
unsigned : 1;
unsigned target_pixel_format : 4; // realformat is (fmt/2)+((fmt&1)*8).... for some reason the msb is the lsb
unsigned gamma : 2;
unsigned half_scale : 1; // real size should be 2x smaller (run a gauss filter?)
unsigned half_scale : 1; // real size should be 2x smaller (run a gauss filter?) "mipmap"
unsigned scale_invert : 1;
unsigned clear : 1;
unsigned frame_to_field : 2;