A couple of FP-related fixes (prompted by Adam having trouble
running SPEC FP codes). arch/alpha/isa_desc: Don't warn about non-standard trapping modes more than once per static instruction. (Had the flag to suppress these but forgot to check it!) build/SConstruct: Add USE_SSE2 option to enable compiling w/SSE2 (important for getting IEEE-compliant FP on x86). --HG-- extra : convert_revision : eac69efb28cce7b48035480d8b7cb004782969f4
This commit is contained in:
parent
902e27e692
commit
e701cf48d9
2 changed files with 8 additions and 2 deletions
|
@ -712,7 +712,7 @@ def template FloatingPointExecute {{
|
||||||
Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,
|
Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,
|
||||||
Trace::InstRecord *traceData) const
|
Trace::InstRecord *traceData) const
|
||||||
{
|
{
|
||||||
if (trappingMode != Imprecise) {
|
if (trappingMode != Imprecise && !warnedOnTrapping) {
|
||||||
warn("%s: non-standard trapping mode not supported",
|
warn("%s: non-standard trapping mode not supported",
|
||||||
generateDisassembly(0, NULL));
|
generateDisassembly(0, NULL));
|
||||||
warnedOnTrapping = true;
|
warnedOnTrapping = true;
|
||||||
|
@ -755,7 +755,7 @@ def template FPFixedRoundingExecute {{
|
||||||
Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,
|
Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,
|
||||||
Trace::InstRecord *traceData) const
|
Trace::InstRecord *traceData) const
|
||||||
{
|
{
|
||||||
if (trappingMode != Imprecise) {
|
if (trappingMode != Imprecise && !warnedOnTrapping) {
|
||||||
warn("%s: non-standard trapping mode not supported",
|
warn("%s: non-standard trapping mode not supported",
|
||||||
generateDisassembly(0, NULL));
|
generateDisassembly(0, NULL));
|
||||||
warnedOnTrapping = true;
|
warnedOnTrapping = true;
|
||||||
|
|
|
@ -233,6 +233,9 @@ sticky_opts.AddOptions(
|
||||||
BoolOption('SS_COMPATIBLE_FP',
|
BoolOption('SS_COMPATIBLE_FP',
|
||||||
'Make floating-point results compatible with SimpleScalar',
|
'Make floating-point results compatible with SimpleScalar',
|
||||||
False),
|
False),
|
||||||
|
BoolOption('USE_SSE2',
|
||||||
|
'Compile for SSE2 (-msse2) to get IEEE FP on x86 hosts',
|
||||||
|
False),
|
||||||
BoolOption('STATS_BINNING', 'Bin statistics by CPU mode', have_mysql),
|
BoolOption('STATS_BINNING', 'Bin statistics by CPU mode', have_mysql),
|
||||||
BoolOption('USE_MYSQL', 'Use MySQL for stats output', have_mysql),
|
BoolOption('USE_MYSQL', 'Use MySQL for stats output', have_mysql),
|
||||||
BoolOption('USE_FENV', 'Use <fenv.h> IEEE mode control', have_fenv),
|
BoolOption('USE_FENV', 'Use <fenv.h> IEEE mode control', have_fenv),
|
||||||
|
@ -376,6 +379,9 @@ for build_dir in build_dirs:
|
||||||
env['CC'] = env['BATCH_CMD'] + ' ' + env['CC']
|
env['CC'] = env['BATCH_CMD'] + ' ' + env['CC']
|
||||||
env['CXX'] = env['BATCH_CMD'] + ' ' + env['CXX']
|
env['CXX'] = env['BATCH_CMD'] + ' ' + env['CXX']
|
||||||
|
|
||||||
|
if env['USE_SSE2']:
|
||||||
|
env.Append(CCFLAGS='-msse2')
|
||||||
|
|
||||||
# The m5/SConscript file sets up the build rules in 'env' according
|
# The m5/SConscript file sets up the build rules in 'env' according
|
||||||
# to the configured options. It returns a list of environments,
|
# to the configured options. It returns a list of environments,
|
||||||
# one for each variant build (debug, opt, etc.)
|
# one for each variant build (debug, opt, etc.)
|
||||||
|
|
Loading…
Reference in a new issue