summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author etabeta78 <etabeta78@users.noreply.github.com>2014-11-03 11:18:15 +0100
committer etabeta78 <etabeta78@users.noreply.github.com>2014-11-03 11:18:15 +0100
commitbc7c6374cc2a41a8e3e917d79c6fe907eec4fee3 (patch)
tree704a83e68e28805213c6c4c73646ffa362682fdb
parent1c4821279797f853a6fd6c79e8a0517e80915b73 (diff)
parent583ee09cf416dfeace9d73fb3061f6eb13a9213a (diff)
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r--src/emu/cpu/mips/mips3drc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/emu/cpu/mips/mips3drc.c b/src/emu/cpu/mips/mips3drc.c
index 280e41c4fca..a6ab28cd68a 100644
--- a/src/emu/cpu/mips/mips3drc.c
+++ b/src/emu/cpu/mips/mips3drc.c
@@ -2764,9 +2764,17 @@ int mips3_device::generate_cop1(drcuml_block *block, compiler_state *compiler, c
case 0x07:
if (IS_SINGLE(op)) /* NEG.S - MIPS I */
+ {
UML_FSNEG(block, FPR32(FDREG), FPR32(FSREG)); // fsneg <fdreg>,<fsreg>
+ UML_CMP(block, FPR32(FSREG), 0); // cmp <fsreg>,0.0
+ UML_MOVc(block, COND_E, FPR32(FDREG), 0x80000000); // mov <fdreg>,-0.0,e
+ }
else /* NEG.D - MIPS I */
+ {
UML_FDNEG(block, FPR64(FDREG), FPR64(FSREG)); // fdneg <fdreg>,<fsreg>
+ UML_CMP(block, FPR64(FSREG), 0); // cmp <fsreg>,0.0
+ UML_DMOVc(block, COND_E, FPR64(FDREG), 0x8000000000000000L);// dmov <fdreg>,-0.0,e
+ }
return TRUE;
case 0x08: