|
[turbofan] Add backend support for float32 operations.
This adds the basics necessary to support float32 operations in TurboFan.
The actual functionality required to detect safe float32 operations will
be added based on this later. Therefore this does not affect production
code except for some cleanup/refactoring.
In detail, this patchset contains the following features:
- Add support for float32 operations to arm, arm64, ia32 and x64
backends.
- Add float32 machine operators.
- Add support for float32 constants to simplified lowering.
- Handle float32 representation for phis in simplified lowering.
In addition, contains the following (related) cleanups:
- Fix/unify naming of backend instructions.
- Use AVX comparisons when available.
- Extend ArchOpcodeField to 9 bits (required for arm64).
- Refactor some code duplication in instruction selectors.
BUG= v8:3589
LOG=n
R=dcarney@chromium.org
Committed: https://crrev.com/8dad78cdbd21c2cd02d6e0645313bd4b9983c78e
Cr-Commit-Position: refs/heads/master@{#27509}
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+2893 lines, -657 lines) |
Patch |
|
M |
src/arm/assembler-arm.h
|
View
|
|
1 chunk |
+24 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/arm/assembler-arm.cc
|
View
|
|
11 chunks |
+189 lines, -15 lines |
0 comments
|
Download
|
|
M |
src/arm/disasm-arm.cc
|
View
|
|
6 chunks |
+45 lines, -12 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.h
|
View
|
|
2 chunks |
+15 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/macro-assembler-arm.cc
|
View
|
|
3 chunks |
+35 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/simulator-arm.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm/simulator-arm.cc
|
View
|
|
8 chunks |
+182 lines, -71 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm/code-generator-arm.cc
|
View
|
|
3 chunks |
+51 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm/instruction-codes-arm.h
|
View
|
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm/instruction-selector-arm.cc
|
View
|
|
14 chunks |
+179 lines, -98 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm64/code-generator-arm64.cc
|
View
|
|
3 chunks |
+45 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm64/instruction-codes-arm64.h
|
View
|
|
2 chunks |
+10 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm64/instruction-selector-arm64.cc
|
View
|
|
19 chunks |
+141 lines, -85 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/code-generator-ia32.cc
|
View
|
|
4 chunks |
+63 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/instruction-codes-ia32.h
|
View
|
|
3 chunks |
+16 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/instruction-selector-ia32.cc
|
View
|
|
9 chunks |
+110 lines, -56 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-codes.h
|
View
|
|
1 chunk |
+5 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-selector.cc
|
View
|
|
1 chunk |
+20 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/machine-operator.h
|
View
|
|
3 chunks |
+33 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/compiler/machine-operator.cc
|
View
|
|
3 chunks |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/node-matchers.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/opcodes.h
|
View
|
|
2 chunks |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/raw-machine-assembler.h
|
View
|
|
2 chunks |
+31 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/simplified-lowering.cc
|
View
|
|
2 chunks |
+10 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/compiler/typer.cc
|
View
|
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/verifier.cc
|
View
|
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/code-generator-x64.cc
|
View
|
|
6 chunks |
+91 lines, -33 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/instruction-codes-x64.h
|
View
|
|
3 chunks |
+18 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/instruction-selector-x64.cc
|
View
|
|
9 chunks |
+103 lines, -49 lines |
0 comments
|
Download
|
|
M |
src/ia32/assembler-ia32.h
|
View
|
|
2 chunks |
+45 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/assembler-ia32.cc
|
View
|
|
3 chunks |
+37 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/disasm-ia32.cc
|
View
|
|
4 chunks |
+115 lines, -39 lines |
0 comments
|
Download
|
|
M |
src/x64/assembler-x64.h
|
View
|
|
4 chunks |
+56 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/x64/assembler-x64.cc
|
View
|
|
5 chunks |
+156 lines, -40 lines |
0 comments
|
Download
|
|
M |
src/x64/disasm-x64.cc
|
View
|
|
6 chunks |
+76 lines, -44 lines |
0 comments
|
Download
|
|
M |
test/cctest/compiler/codegen-tester.h
|
View
|
|
3 chunks |
+20 lines, -1 line |
0 comments
|
Download
|
|
M |
test/cctest/compiler/test-run-machops.cc
|
View
|
|
11 chunks |
+196 lines, -4 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-assembler-x64.cc
|
View
|
|
1 chunk |
+223 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-disasm-arm.cc
|
View
|
|
3 chunks |
+52 lines, -0 lines |
1 comment
|
Download
|
|
M |
test/cctest/test-disasm-ia32.cc
|
View
|
|
2 chunks |
+19 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/cctest/test-disasm-x64.cc
|
View
|
|
3 chunks |
+21 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/arm/instruction-selector-arm-unittest.cc
|
View
|
|
11 chunks |
+357 lines, -54 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/ia32/instruction-selector-ia32-unittest.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/machine-operator-unittest.cc
|
View
|
1
|
1 chunk |
+8 lines, -3 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/x64/instruction-selector-x64-unittest.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
Total messages: 9 (2 generated)
|