mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-16 05:42:55 +00:00
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:
parent
7602f7ab3e
commit
31e61da40d
@ -194,16 +194,19 @@ void Jit64::fsign(UGeckoInstruction inst)
|
|||||||
|
|
||||||
void Jit64::fmrx(UGeckoInstruction inst)
|
void Jit64::fmrx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
|
INSTRUCTION_START
|
||||||
if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITFloatingPointOff)
|
if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITFloatingPointOff)
|
||||||
{Default(inst); return;} // turn off from debugger
|
{Default(inst); return;} // turn off from debugger
|
||||||
INSTRUCTION_START;
|
|
||||||
if (inst.Rc) {
|
if (inst.Rc) {
|
||||||
Default(inst); return;
|
Default(inst); return;
|
||||||
}
|
}
|
||||||
int d = inst.FD;
|
int d = inst.FD;
|
||||||
int b = inst.FB;
|
int b = inst.FB;
|
||||||
fpr.LoadToX64(d, true); // we don't want to destroy the high bit
|
fpr.Lock(b, d);
|
||||||
MOVSD(fpr.RX(d), fpr.R(b));
|
fpr.LoadToX64(d, true, true);
|
||||||
|
MOVSD(XMM0, fpr.R(b));
|
||||||
|
MOVSD(fpr.R(d), XMM0);
|
||||||
|
fpr.UnlockAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit64::fcmpx(UGeckoInstruction inst)
|
void Jit64::fcmpx(UGeckoInstruction inst)
|
||||||
|
@ -813,7 +813,7 @@ union UPE_Copy
|
|||||||
unsigned : 1;
|
unsigned : 1;
|
||||||
unsigned target_pixel_format : 4; // realformat is (fmt/2)+((fmt&1)*8).... for some reason the msb is the lsb
|
unsigned target_pixel_format : 4; // realformat is (fmt/2)+((fmt&1)*8).... for some reason the msb is the lsb
|
||||||
unsigned gamma : 2;
|
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 scale_invert : 1;
|
||||||
unsigned clear : 1;
|
unsigned clear : 1;
|
||||||
unsigned frame_to_field : 2;
|
unsigned frame_to_field : 2;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user