Rewrite simulator floating point module. Do not rely on host FP

implementation.  Add preliminary support for different IEEE-754
rounding modes.  Implement SQRT in software.
Update TiC80 simulator.
Add sim-fpu -> TestFloat interface for testing.
This commit is contained in:
Andrew Cagney
1997-10-03 00:03:35 +00:00
parent 22b23d7deb
commit b3c77578dc
4 changed files with 602 additions and 41 deletions

View File

@@ -241,9 +241,9 @@ tic80_trace_fpu3 (SIM_DESC sd,
itable[indx].file, itable[indx].line_nr, "fpu",
"%-*s %*g %*g => %*g",
tic80_size_name, itable[indx].name,
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (input1),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (input2),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (result));
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (&input1),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (&input2),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (&result));
}
/* Trace the result of an FPU operation with 1 floating point input and a floating point output */
@@ -262,9 +262,9 @@ tic80_trace_fpu2 (SIM_DESC sd,
itable[indx].file, itable[indx].line_nr, "fpu",
"%-*s %*g %-*s => %*g",
tic80_size_name, itable[indx].name,
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (input),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (&input),
SIZE_HEX + SIZE_DECIMAL + 3, "",
SIZE_HEX + SIZE_DECIMAL, sim_fpu_2d (result));
SIZE_HEX + SIZE_DECIMAL, sim_fpu_2d (&result));
}
/* Trace the result of an FPU operation with 1 floating point input and a floating point output */
@@ -284,7 +284,7 @@ tic80_trace_fpu1 (SIM_DESC sd,
tic80_size_name, itable[indx].name,
SIZE_HEX + SIZE_DECIMAL + 3, "",
SIZE_HEX + SIZE_DECIMAL + 3, "",
SIZE_HEX + SIZE_DECIMAL, sim_fpu_2d (result));
SIZE_HEX + SIZE_DECIMAL, sim_fpu_2d (&result));
}
/* Trace the result of an FPU operation with 1 integer input and an integer output */
@@ -304,8 +304,8 @@ tic80_trace_fpu2i (SIM_DESC sd,
itable[indx].file, itable[indx].line_nr, "fpu",
"%-*s %*f %*f => 0x%.*lx %-*ld",
tic80_size_name, itable[indx].name,
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (input1),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (input2),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (&input1),
SIZE_HEX + SIZE_DECIMAL + 3, sim_fpu_2d (&input2),
SIZE_HEX, result, SIZE_DECIMAL, (long)(signed32)result);
}