diff options
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 |
commit | 2d9a9591a3983ef31dbcee2fb1910c31313e58a1 (patch) | |
tree | 0c721495dce7d963374db82b44945c19e832340a | |
parent | 94eeabede80c2d91827627a6071572b6e9688958 (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.c | 10 | ||||
-rwxr-xr-x | src/lib/softfloat/fsincos.c | 6 |
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; } |