summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2012-03-22 03:08:07 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2012-03-22 03:08:07 +0000
commit2d9a9591a3983ef31dbcee2fb1910c31313e58a1 (patch)
tree0c721495dce7d963374db82b44945c19e832340a
parent94eeabede80c2d91827627a6071572b6e9688958 (diff)
SoftFloat: fixed sin/cos/tan to return correct results [Hans Ostermeyer]
m68k: sorted out the bit patterns for PFLUSHA and PFLUSHAN [Hans Ostermeyer]
-rw-r--r--src/emu/cpu/m68000/m68k_in.c10
-rwxr-xr-xsrc/lib/softfloat/fsincos.c6
2 files changed, 8 insertions, 8 deletions
diff --git a/src/emu/cpu/m68000/m68k_in.c b/src/emu/cpu/m68000/m68k_in.c
index 446433b25db..bad6dceafe6 100644
--- a/src/emu/cpu/m68000/m68k_in.c
+++ b/src/emu/cpu/m68000/m68k_in.c
@@ -759,8 +759,8 @@ pack 16 mm ay7 1000...101001111 .......... . . U U U U U . . 1
pack 16 mm axy7 1000111101001111 .......... . . U U U U U . . 13 13 13 13 13
pack 16 mm . 1000...101001... .......... . . U U U U U . . 13 13 13 13 13
pea 32 . . 0100100001...... A..DXWLdx. U U U U U U U 6 6 5 5 5 5 5
-pflush 32 . . 1111010100011000 .......... . . . . S S . . . . . 4 4 4 TODO: correct timing
-pflushan 32 . . 1111010100010000 .......... . . . . S S . . . . . 4 4 4 TODO: correct timing
+pflusha 32 . . 1111010100011... .......... . . . . S S . . . . . 4 4 4 TODO: correct timing
+pflushan 32 . . 1111010100010... .......... . . . . S S . . . . . 4 4 4 TODO: correct timing
pmmu 32 . . 1111000......... .......... . . S S S S S . . 8 8 8 8 8
ptest 32 . . 1111010101.01... .......... . . . . S . . . . . . 8 . .
reset 0 . . 0100111001110000 .......... S S S S S S S 0 0 0 0 0 0 0
@@ -8205,11 +8205,11 @@ M68KMAKE_OP(pea, 32, ., .)
m68ki_push_32((mc68kcpu), ea);
}
-M68KMAKE_OP(pflush, 32, ., .)
+M68KMAKE_OP(pflusha, 32, ., .)
{
if ((CPU_TYPE_IS_EC020_PLUS((mc68kcpu)->cpu_type)) && ((mc68kcpu)->has_pmmu))
{
- logerror("68040: unhandled PFLUSH\n");
+ logerror("68040: unhandled PFLUSHA (ir=%04x)\n", mc68kcpu->ir);
return;
}
m68ki_exception_1111(mc68kcpu);
@@ -8219,7 +8219,7 @@ M68KMAKE_OP(pflushan, 32, ., .)
{
if ((CPU_TYPE_IS_EC020_PLUS((mc68kcpu)->cpu_type)) && ((mc68kcpu)->has_pmmu))
{
- logerror("68040: unhandled PFLUSHAN\n");
+ logerror("68040: unhandled PFLUSHAN (ir=%04x)\n", mc68kcpu->ir);
return;
}
m68ki_exception_1111(mc68kcpu);
diff --git a/src/lib/softfloat/fsincos.c b/src/lib/softfloat/fsincos.c
index 3a0d4ccc1e0..fb148cc8fbe 100755
--- a/src/lib/softfloat/fsincos.c
+++ b/src/lib/softfloat/fsincos.c
@@ -34,7 +34,7 @@ these four paragraphs for those parts of this code that are retained.
static const floatx80 floatx80_one = packFloatx80(0, 0x3fff, U64(0x8000000000000000));
static const floatx80 floatx80_default_nan = packFloatx80(0, 0xffff, U64(0xffffffffffffffff));
-#define packFloat2x128m(zHi, zLo) {(zLo), (zHi)}
+#define packFloat2x128m(zHi, zLo) {(zHi), (zLo)}
#define PACK_FLOAT_128(hi,lo) packFloat2x128m(LIT64(hi),LIT64(lo))
#define EXP_BIAS 0x3FFF
@@ -268,7 +268,7 @@ static floatx80 sincos_approximation(int neg, float128 r, UINT64 quotient)
neg = ! neg;
if (neg)
- floatx80_chs(result);
+ result = floatx80_chs(result);
return result;
}
@@ -486,7 +486,7 @@ int floatx80_ftan(floatx80 &a)
a = float128_to_floatx80(r);
if (zSign)
- floatx80_chs(a);
+ a = floatx80_chs(a);
return 0;
}