OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/instruction-selector-impl.h" | 5 #include "src/compiler/instruction-selector-impl.h" |
6 #include "src/compiler/node-matchers.h" | 6 #include "src/compiler/node-matchers.h" |
7 #include "src/compiler/node-properties.h" | 7 #include "src/compiler/node-properties.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 1258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1269 Emit(kArm64Lsr, g.DefineAsRegister(node), g.UseRegister(m.left().node()), | 1269 Emit(kArm64Lsr, g.DefineAsRegister(node), g.UseRegister(m.left().node()), |
1270 g.UseImmediate(m.right().node())); | 1270 g.UseImmediate(m.right().node())); |
1271 return; | 1271 return; |
1272 } | 1272 } |
1273 } | 1273 } |
1274 | 1274 |
1275 Emit(kArm64Mov32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); | 1275 Emit(kArm64Mov32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); |
1276 } | 1276 } |
1277 | 1277 |
1278 | 1278 |
| 1279 void InstructionSelector::VisitBitcastFloat32ToInt32(Node* node) { |
| 1280 VisitRR(this, kArm64Float64ExtractLowWord32, node); |
| 1281 } |
| 1282 |
| 1283 |
| 1284 void InstructionSelector::VisitBitcastFloat64ToInt64(Node* node) { |
| 1285 VisitRR(this, kArm64U64MoveFloat64, node); |
| 1286 } |
| 1287 |
| 1288 |
| 1289 void InstructionSelector::VisitBitcastInt32ToFloat32(Node* node) { |
| 1290 VisitRR(this, kArm64Float64MoveU64, node); |
| 1291 } |
| 1292 |
| 1293 |
| 1294 void InstructionSelector::VisitBitcastInt64ToFloat64(Node* node) { |
| 1295 VisitRR(this, kArm64Float64MoveU64, node); |
| 1296 } |
| 1297 |
| 1298 |
1279 void InstructionSelector::VisitFloat32Add(Node* node) { | 1299 void InstructionSelector::VisitFloat32Add(Node* node) { |
1280 VisitRRR(this, kArm64Float32Add, node); | 1300 VisitRRR(this, kArm64Float32Add, node); |
1281 } | 1301 } |
1282 | 1302 |
1283 | 1303 |
1284 void InstructionSelector::VisitFloat64Add(Node* node) { | 1304 void InstructionSelector::VisitFloat64Add(Node* node) { |
1285 VisitRRR(this, kArm64Float64Add, node); | 1305 VisitRRR(this, kArm64Float64Add, node); |
1286 } | 1306 } |
1287 | 1307 |
1288 | 1308 |
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2083 MachineOperatorBuilder::kFloat64RoundTruncate | | 2103 MachineOperatorBuilder::kFloat64RoundTruncate | |
2084 MachineOperatorBuilder::kFloat64RoundTiesAway | | 2104 MachineOperatorBuilder::kFloat64RoundTiesAway | |
2085 MachineOperatorBuilder::kWord32ShiftIsSafe | | 2105 MachineOperatorBuilder::kWord32ShiftIsSafe | |
2086 MachineOperatorBuilder::kInt32DivIsSafe | | 2106 MachineOperatorBuilder::kInt32DivIsSafe | |
2087 MachineOperatorBuilder::kUint32DivIsSafe; | 2107 MachineOperatorBuilder::kUint32DivIsSafe; |
2088 } | 2108 } |
2089 | 2109 |
2090 } // namespace compiler | 2110 } // namespace compiler |
2091 } // namespace internal | 2111 } // namespace internal |
2092 } // namespace v8 | 2112 } // namespace v8 |
OLD | NEW |