| 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.h" | 5 #include "src/compiler/instruction-selector.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "src/assembler-inl.h" | 9 #include "src/assembler-inl.h" |
| 10 #include "src/base/adapters.h" | 10 #include "src/base/adapters.h" |
| (...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1119 case IrOpcode::kWord32Equal: | 1119 case IrOpcode::kWord32Equal: |
| 1120 return VisitWord32Equal(node); | 1120 return VisitWord32Equal(node); |
| 1121 case IrOpcode::kWord32Clz: | 1121 case IrOpcode::kWord32Clz: |
| 1122 return MarkAsWord32(node), VisitWord32Clz(node); | 1122 return MarkAsWord32(node), VisitWord32Clz(node); |
| 1123 case IrOpcode::kWord32Ctz: | 1123 case IrOpcode::kWord32Ctz: |
| 1124 return MarkAsWord32(node), VisitWord32Ctz(node); | 1124 return MarkAsWord32(node), VisitWord32Ctz(node); |
| 1125 case IrOpcode::kWord32ReverseBits: | 1125 case IrOpcode::kWord32ReverseBits: |
| 1126 return MarkAsWord32(node), VisitWord32ReverseBits(node); | 1126 return MarkAsWord32(node), VisitWord32ReverseBits(node); |
| 1127 case IrOpcode::kWord32ReverseBytes: | 1127 case IrOpcode::kWord32ReverseBytes: |
| 1128 return MarkAsWord32(node), VisitWord32ReverseBytes(node); | 1128 return MarkAsWord32(node), VisitWord32ReverseBytes(node); |
| 1129 case IrOpcode::kInt32AbsWithOverflow: |
| 1130 return MarkAsWord32(node), VisitInt32AbsWithOverflow(node); |
| 1129 case IrOpcode::kWord32Popcnt: | 1131 case IrOpcode::kWord32Popcnt: |
| 1130 return MarkAsWord32(node), VisitWord32Popcnt(node); | 1132 return MarkAsWord32(node), VisitWord32Popcnt(node); |
| 1131 case IrOpcode::kWord64Popcnt: | 1133 case IrOpcode::kWord64Popcnt: |
| 1132 return MarkAsWord32(node), VisitWord64Popcnt(node); | 1134 return MarkAsWord32(node), VisitWord64Popcnt(node); |
| 1133 case IrOpcode::kWord64And: | 1135 case IrOpcode::kWord64And: |
| 1134 return MarkAsWord64(node), VisitWord64And(node); | 1136 return MarkAsWord64(node), VisitWord64And(node); |
| 1135 case IrOpcode::kWord64Or: | 1137 case IrOpcode::kWord64Or: |
| 1136 return MarkAsWord64(node), VisitWord64Or(node); | 1138 return MarkAsWord64(node), VisitWord64Or(node); |
| 1137 case IrOpcode::kWord64Xor: | 1139 case IrOpcode::kWord64Xor: |
| 1138 return MarkAsWord64(node), VisitWord64Xor(node); | 1140 return MarkAsWord64(node), VisitWord64Xor(node); |
| 1139 case IrOpcode::kWord64Shl: | 1141 case IrOpcode::kWord64Shl: |
| 1140 return MarkAsWord64(node), VisitWord64Shl(node); | 1142 return MarkAsWord64(node), VisitWord64Shl(node); |
| 1141 case IrOpcode::kWord64Shr: | 1143 case IrOpcode::kWord64Shr: |
| 1142 return MarkAsWord64(node), VisitWord64Shr(node); | 1144 return MarkAsWord64(node), VisitWord64Shr(node); |
| 1143 case IrOpcode::kWord64Sar: | 1145 case IrOpcode::kWord64Sar: |
| 1144 return MarkAsWord64(node), VisitWord64Sar(node); | 1146 return MarkAsWord64(node), VisitWord64Sar(node); |
| 1145 case IrOpcode::kWord64Ror: | 1147 case IrOpcode::kWord64Ror: |
| 1146 return MarkAsWord64(node), VisitWord64Ror(node); | 1148 return MarkAsWord64(node), VisitWord64Ror(node); |
| 1147 case IrOpcode::kWord64Clz: | 1149 case IrOpcode::kWord64Clz: |
| 1148 return MarkAsWord64(node), VisitWord64Clz(node); | 1150 return MarkAsWord64(node), VisitWord64Clz(node); |
| 1149 case IrOpcode::kWord64Ctz: | 1151 case IrOpcode::kWord64Ctz: |
| 1150 return MarkAsWord64(node), VisitWord64Ctz(node); | 1152 return MarkAsWord64(node), VisitWord64Ctz(node); |
| 1151 case IrOpcode::kWord64ReverseBits: | 1153 case IrOpcode::kWord64ReverseBits: |
| 1152 return MarkAsWord64(node), VisitWord64ReverseBits(node); | 1154 return MarkAsWord64(node), VisitWord64ReverseBits(node); |
| 1153 case IrOpcode::kWord64ReverseBytes: | 1155 case IrOpcode::kWord64ReverseBytes: |
| 1154 return MarkAsWord64(node), VisitWord64ReverseBytes(node); | 1156 return MarkAsWord64(node), VisitWord64ReverseBytes(node); |
| 1157 case IrOpcode::kInt64AbsWithOverflow: |
| 1158 return MarkAsWord64(node), VisitInt64AbsWithOverflow(node); |
| 1155 case IrOpcode::kWord64Equal: | 1159 case IrOpcode::kWord64Equal: |
| 1156 return VisitWord64Equal(node); | 1160 return VisitWord64Equal(node); |
| 1157 case IrOpcode::kInt32Add: | 1161 case IrOpcode::kInt32Add: |
| 1158 return MarkAsWord32(node), VisitInt32Add(node); | 1162 return MarkAsWord32(node), VisitInt32Add(node); |
| 1159 case IrOpcode::kInt32AddWithOverflow: | 1163 case IrOpcode::kInt32AddWithOverflow: |
| 1160 return MarkAsWord32(node), VisitInt32AddWithOverflow(node); | 1164 return MarkAsWord32(node), VisitInt32AddWithOverflow(node); |
| 1161 case IrOpcode::kInt32Sub: | 1165 case IrOpcode::kInt32Sub: |
| 1162 return MarkAsWord32(node), VisitInt32Sub(node); | 1166 return MarkAsWord32(node), VisitInt32Sub(node); |
| 1163 case IrOpcode::kInt32SubWithOverflow: | 1167 case IrOpcode::kInt32SubWithOverflow: |
| 1164 return VisitInt32SubWithOverflow(node); | 1168 return VisitInt32SubWithOverflow(node); |
| (...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2439 case IrOpcode::kTryTruncateFloat32ToInt64: | 2443 case IrOpcode::kTryTruncateFloat32ToInt64: |
| 2440 case IrOpcode::kTryTruncateFloat64ToInt64: | 2444 case IrOpcode::kTryTruncateFloat64ToInt64: |
| 2441 case IrOpcode::kTryTruncateFloat32ToUint64: | 2445 case IrOpcode::kTryTruncateFloat32ToUint64: |
| 2442 case IrOpcode::kTryTruncateFloat64ToUint64: | 2446 case IrOpcode::kTryTruncateFloat64ToUint64: |
| 2443 case IrOpcode::kInt32PairAdd: | 2447 case IrOpcode::kInt32PairAdd: |
| 2444 case IrOpcode::kInt32PairSub: | 2448 case IrOpcode::kInt32PairSub: |
| 2445 case IrOpcode::kInt32PairMul: | 2449 case IrOpcode::kInt32PairMul: |
| 2446 case IrOpcode::kWord32PairShl: | 2450 case IrOpcode::kWord32PairShl: |
| 2447 case IrOpcode::kWord32PairShr: | 2451 case IrOpcode::kWord32PairShr: |
| 2448 case IrOpcode::kWord32PairSar: | 2452 case IrOpcode::kWord32PairSar: |
| 2453 case IrOpcode::kInt32AbsWithOverflow: |
| 2454 case IrOpcode::kInt64AbsWithOverflow: |
| 2449 if (ProjectionIndexOf(node->op()) == 0u) { | 2455 if (ProjectionIndexOf(node->op()) == 0u) { |
| 2450 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); | 2456 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); |
| 2451 } else { | 2457 } else { |
| 2452 DCHECK(ProjectionIndexOf(node->op()) == 1u); | 2458 DCHECK(ProjectionIndexOf(node->op()) == 1u); |
| 2453 MarkAsUsed(value); | 2459 MarkAsUsed(value); |
| 2454 } | 2460 } |
| 2455 break; | 2461 break; |
| 2456 default: | 2462 default: |
| 2457 break; | 2463 break; |
| 2458 } | 2464 } |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2744 return new (instruction_zone()) FrameStateDescriptor( | 2750 return new (instruction_zone()) FrameStateDescriptor( |
| 2745 instruction_zone(), state_info.type(), state_info.bailout_id(), | 2751 instruction_zone(), state_info.type(), state_info.bailout_id(), |
| 2746 state_info.state_combine(), parameters, locals, stack, | 2752 state_info.state_combine(), parameters, locals, stack, |
| 2747 state_info.shared_info(), outer_state); | 2753 state_info.shared_info(), outer_state); |
| 2748 } | 2754 } |
| 2749 | 2755 |
| 2750 | 2756 |
| 2751 } // namespace compiler | 2757 } // namespace compiler |
| 2752 } // namespace internal | 2758 } // namespace internal |
| 2753 } // namespace v8 | 2759 } // namespace v8 |
| OLD | NEW |