diff options
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 |
commit | bc7c6374cc2a41a8e3e917d79c6fe907eec4fee3 (patch) | |
tree | 704a83e68e28805213c6c4c73646ffa362682fdb | |
parent | 1c4821279797f853a6fd6c79e8a0517e80915b73 (diff) | |
parent | 583ee09cf416dfeace9d73fb3061f6eb13a9213a (diff) |
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r-- | src/emu/cpu/mips/mips3drc.c | 8 |
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: |