summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microops/mediaop.isa
diff options
context:
space:
mode:
authorVince Weaver <vince@csl.cornell.edu>2009-11-10 11:18:23 -0500
committerVince Weaver <vince@csl.cornell.edu>2009-11-10 11:18:23 -0500
commite81cc233a6fa82d2aec45bd9160db15df112f584 (patch)
tree0d9e0cfcf3140142355eedfb2840fbcd913eeb65 /src/arch/x86/isa/microops/mediaop.isa
parent7da221ca82e5e64b98d9e86421fa653e2ad3e540 (diff)
downloadgem5-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/microops/mediaop.isa')
-rw-r--r--src/arch/x86/isa/microops/mediaop.isa2
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;
}