Merge branch 'master' into pr_softfloat

This commit is contained in:
TC1995
2023-04-30 18:20:21 +02:00
committed by GitHub
4 changed files with 268 additions and 168 deletions

View File

@@ -33,7 +33,26 @@ opFNOP(uint32_t fetchdat)
return 0;
}
static int
opFXTRACT(uint32_t fetchdat)
{
x87_conv_t test;
int64_t exp80, exp80final;
double mant;
FP_ENTER();
cpu_state.pc++;
test.eind.d = ST(0);
exp80 = test.eind.ll & (0x7ff0000000000000ll);
exp80final = (exp80 >> 52) - BIAS64;
mant = test.eind.d / (pow(2.0, (double)exp80final));
ST(0) = (double)exp80final;
FP_TAG_VALID;
x87_push(mant);
CLOCK_CYCLES_FPU((fpu_type >= FPU_487SX) ? (x87_timings.fxtract) : (x87_timings.fxtract * cpu_multi));
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.fxtract) : (x87_concurrency.fxtract * cpu_multi));
return 0;
}
opFCLEX(uint32_t fetchdat)
{
FP_ENTER();