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/simplified-lowering.h" | 5 #include "src/compiler/simplified-lowering.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 StoreRepresentation rep = OpParameter<StoreRepresentation>(node); | 719 StoreRepresentation rep = OpParameter<StoreRepresentation>(node); |
720 ProcessInput(node, 0, tBase); // pointer or object | 720 ProcessInput(node, 0, tBase); // pointer or object |
721 ProcessInput(node, 1, kMachInt32); // index | 721 ProcessInput(node, 1, kMachInt32); // index |
722 ProcessInput(node, 2, rep.machine_type()); | 722 ProcessInput(node, 2, rep.machine_type()); |
723 ProcessRemainingInputs(node, 3); | 723 ProcessRemainingInputs(node, 3); |
724 SetOutput(node, 0); | 724 SetOutput(node, 0); |
725 break; | 725 break; |
726 } | 726 } |
727 case IrOpcode::kWord32Shr: | 727 case IrOpcode::kWord32Shr: |
728 // We output unsigned int32 for shift right because JavaScript. | 728 // We output unsigned int32 for shift right because JavaScript. |
729 return VisitBinop(node, kRepWord32, kRepWord32 | kTypeUint32); | 729 return VisitBinop(node, kMachUint32, kMachUint32); |
730 case IrOpcode::kWord32And: | 730 case IrOpcode::kWord32And: |
731 case IrOpcode::kWord32Or: | 731 case IrOpcode::kWord32Or: |
732 case IrOpcode::kWord32Xor: | 732 case IrOpcode::kWord32Xor: |
733 case IrOpcode::kWord32Shl: | 733 case IrOpcode::kWord32Shl: |
734 case IrOpcode::kWord32Sar: | 734 case IrOpcode::kWord32Sar: |
735 // We use signed int32 as the output type for these word32 operations, | 735 // We use signed int32 as the output type for these word32 operations, |
736 // though the machine bits are the same for either signed or unsigned, | 736 // though the machine bits are the same for either signed or unsigned, |
737 // because JavaScript considers the result from these operations signed. | 737 // because JavaScript considers the result from these operations signed. |
738 return VisitBinop(node, kRepWord32, kRepWord32 | kTypeInt32); | 738 return VisitBinop(node, kRepWord32, kRepWord32 | kTypeInt32); |
739 case IrOpcode::kWord32Equal: | 739 case IrOpcode::kWord32Equal: |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1133 void SimplifiedLowering::DoStringLessThanOrEqual(Node* node) { | 1133 void SimplifiedLowering::DoStringLessThanOrEqual(Node* node) { |
1134 node->set_op(machine()->IntLessThanOrEqual()); | 1134 node->set_op(machine()->IntLessThanOrEqual()); |
1135 node->ReplaceInput(0, StringComparison(node, true)); | 1135 node->ReplaceInput(0, StringComparison(node, true)); |
1136 node->ReplaceInput(1, jsgraph()->SmiConstant(EQUAL)); | 1136 node->ReplaceInput(1, jsgraph()->SmiConstant(EQUAL)); |
1137 } | 1137 } |
1138 | 1138 |
1139 | 1139 |
1140 } // namespace compiler | 1140 } // namespace compiler |
1141 } // namespace internal | 1141 } // namespace internal |
1142 } // namespace v8 | 1142 } // namespace v8 |
OLD | NEW |