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:
R. Belmont 2012-03-22 03:08:07 +00:00
parent 94eeabede8
commit 2d9a9591a3
2 changed files with 8 additions and 8 deletions

View File

@ -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);

View File

@ -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;
}