mirror of
https://github.com/holub/mame
synced 2025-06-01 18:41:47 +03:00
SoftFloat: fixed sin/cos/tan to return correct results [Hans Ostermeyer]
m68k: sorted out the bit patterns for PFLUSHA and PFLUSHAN [Hans Ostermeyer]
This commit is contained in:
parent
94eeabede8
commit
2d9a9591a3
@ -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 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
|
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
|
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
|
pflusha 32 . . 1111010100011... .......... . . . . S S . . . . . 4 4 4 TODO: correct timing
|
||||||
pflushan 32 . . 1111010100010000 .......... . . . . 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
|
pmmu 32 . . 1111000......... .......... . . S S S S S . . 8 8 8 8 8
|
||||||
ptest 32 . . 1111010101.01... .......... . . . . S . . . . . . 8 . .
|
ptest 32 . . 1111010101.01... .......... . . . . S . . . . . . 8 . .
|
||||||
reset 0 . . 0100111001110000 .......... S S S S S S S 0 0 0 0 0 0 0
|
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);
|
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))
|
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;
|
return;
|
||||||
}
|
}
|
||||||
m68ki_exception_1111(mc68kcpu);
|
m68ki_exception_1111(mc68kcpu);
|
||||||
@ -8219,7 +8219,7 @@ M68KMAKE_OP(pflushan, 32, ., .)
|
|||||||
{
|
{
|
||||||
if ((CPU_TYPE_IS_EC020_PLUS((mc68kcpu)->cpu_type)) && ((mc68kcpu)->has_pmmu))
|
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;
|
return;
|
||||||
}
|
}
|
||||||
m68ki_exception_1111(mc68kcpu);
|
m68ki_exception_1111(mc68kcpu);
|
||||||
|
@ -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_one = packFloatx80(0, 0x3fff, U64(0x8000000000000000));
|
||||||
static const floatx80 floatx80_default_nan = packFloatx80(0, 0xffff, U64(0xffffffffffffffff));
|
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 PACK_FLOAT_128(hi,lo) packFloat2x128m(LIT64(hi),LIT64(lo))
|
||||||
|
|
||||||
#define EXP_BIAS 0x3FFF
|
#define EXP_BIAS 0x3FFF
|
||||||
@ -268,7 +268,7 @@ static floatx80 sincos_approximation(int neg, float128 r, UINT64 quotient)
|
|||||||
neg = ! neg;
|
neg = ! neg;
|
||||||
|
|
||||||
if (neg)
|
if (neg)
|
||||||
floatx80_chs(result);
|
result = floatx80_chs(result);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -486,7 +486,7 @@ int floatx80_ftan(floatx80 &a)
|
|||||||
|
|
||||||
a = float128_to_floatx80(r);
|
a = float128_to_floatx80(r);
|
||||||
if (zSign)
|
if (zSign)
|
||||||
floatx80_chs(a);
|
a = floatx80_chs(a);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user