|
[turbofan] Implement rounding of floats on x64 and ia32 without sse4.1.
The implementation sets the rounding mode flag and then uses the
cvtsd2si and cvtsi2sd instructions (convert between float and int) to do
the rounding. Input values outside int range either don't have to be
rounded anyways, or are rounded by calculating input + 2^52 - 2^52 for
positive inputs, or input -2^52 + 2^52 for negative inputs. The original
rounding mode is restored afterwards.
R=titzer@chromium.org
B=575379
Committed: https://crrev.com/fa5d09e547abe79a8c82f780deb980c53ad78beb
Cr-Commit-Position: refs/heads/master@{#33367}
Total comments: 10
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+708 lines, -97 lines) |
Patch |
|
M |
src/assembler.h
|
View
|
1
2
3
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/assembler.cc
|
View
|
1
2
3
|
3 chunks |
+9 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/code-generator-ia32.cc
|
View
|
1
2
|
2 chunks |
+15 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/instruction-selector-ia32.cc
|
View
|
1
2
|
4 chunks |
+85 lines, -21 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/code-generator-x64.cc
|
View
|
1
2
|
2 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/instruction-selector-x64.cc
|
View
|
1
|
3 chunks |
+33 lines, -19 lines |
0 comments
|
Download
|
|
M |
src/ia32/assembler-ia32.h
|
View
|
1
|
3 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/assembler-ia32.cc
|
View
|
1
|
4 chunks |
+41 lines, -1 line |
0 comments
|
Download
|
|
M |
src/ia32/disasm-ia32.cc
|
View
|
1
|
2 chunks |
+32 lines, -1 line |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.h
|
View
|
1
2
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.cc
|
View
|
1
2
3
|
1 chunk |
+140 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/snapshot/serialize.cc
|
View
|
1
2
3
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/assembler-x64.h
|
View
|
1
2
|
6 chunks |
+27 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/assembler-x64.cc
|
View
|
1
|
3 chunks |
+49 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/disasm-x64.cc
|
View
|
1
2
|
5 chunks |
+45 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.h
|
View
|
1
2
|
3 chunks |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/x64/macro-assembler-x64.cc
|
View
|
1
2
|
3 chunks |
+148 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/compiler/test-run-machops.cc
|
View
|
1
2
|
1 chunk |
+22 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/compiler/value-helper.h
|
View
|
|
1 chunk |
+30 lines, -43 lines |
0 comments
|
Download
|
|
M |
test/cctest/wasm/test-run-wasm.cc
|
View
|
1
2
|
2 chunks |
+0 lines, -5 lines |
0 comments
|
Download
|
Total messages: 12 (3 generated)
|