diff options
author | Vince Weaver <vince@csl.cornell.edu> | 2009-11-10 11:18:23 -0500 |
---|---|---|
committer | Vince Weaver <vince@csl.cornell.edu> | 2009-11-10 11:18:23 -0500 |
commit | e81cc233a6fa82d2aec45bd9160db15df112f584 (patch) | |
tree | 0d9e0cfcf3140142355eedfb2840fbcd913eeb65 /src/arch/x86/isa | |
parent | 7da221ca82e5e64b98d9e86421fa653e2ad3e540 (diff) | |
download | gem5-e81cc233a6fa82d2aec45bd9160db15df112f584.tar.xz |
X86: Remove double-cast in Cvtf2i micro-op
This double cast led to rounding errors which caused
some benchmarks to get the wrong values, most notably lucas
which failed spectacularly due to CVTTSD2SI returning an
off-by-one value. equake was also broken.
Diffstat (limited to 'src/arch/x86/isa')
-rw-r--r-- | src/arch/x86/isa/microops/mediaop.isa | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arch/x86/isa/microops/mediaop.isa b/src/arch/x86/isa/microops/mediaop.isa index 9c53fa0fb..fa32583b0 100644 --- a/src/arch/x86/isa/microops/mediaop.isa +++ b/src/arch/x86/isa/microops/mediaop.isa @@ -1237,7 +1237,7 @@ let {{ } if (destSize == 4) { - argBits = (uint32_t)(float)arg; + argBits = (uint32_t)arg; } else { argBits = (uint64_t)arg; } |