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/address-map.h" | 9 #include "src/address-map.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 2552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2563 return; | 2563 return; |
2564 } | 2564 } |
2565 case IrOpcode::kObjectIsString: { | 2565 case IrOpcode::kObjectIsString: { |
2566 VisitObjectIs(node, Type::String(), lowering); | 2566 VisitObjectIs(node, Type::String(), lowering); |
2567 return; | 2567 return; |
2568 } | 2568 } |
2569 case IrOpcode::kObjectIsUndetectable: { | 2569 case IrOpcode::kObjectIsUndetectable: { |
2570 VisitObjectIs(node, Type::Undetectable(), lowering); | 2570 VisitObjectIs(node, Type::Undetectable(), lowering); |
2571 return; | 2571 return; |
2572 } | 2572 } |
2573 case IrOpcode::kNewRestParameterElements: | 2573 case IrOpcode::kArgumentsFrame: { |
| 2574 SetOutput(node, MachineType::PointerRepresentation()); |
| 2575 return; |
| 2576 } |
| 2577 case IrOpcode::kArgumentsLength: { |
| 2578 VisitUnop(node, UseInfo::PointerInt(), |
| 2579 MachineRepresentation::kTaggedSigned); |
| 2580 return; |
| 2581 } |
2574 case IrOpcode::kNewUnmappedArgumentsElements: { | 2582 case IrOpcode::kNewUnmappedArgumentsElements: { |
2575 ProcessRemainingInputs(node, 0); | 2583 VisitBinop(node, UseInfo::PointerInt(), UseInfo::TaggedSigned(), |
2576 SetOutput(node, MachineRepresentation::kTaggedPointer); | 2584 MachineRepresentation::kTaggedPointer); |
2577 return; | 2585 return; |
2578 } | 2586 } |
2579 case IrOpcode::kArrayBufferWasNeutered: { | 2587 case IrOpcode::kArrayBufferWasNeutered: { |
2580 VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit); | 2588 VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit); |
2581 return; | 2589 return; |
2582 } | 2590 } |
2583 case IrOpcode::kCheckFloat64Hole: { | 2591 case IrOpcode::kCheckFloat64Hole: { |
2584 CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op()); | 2592 CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op()); |
2585 ProcessInput(node, 0, UseInfo::TruncatingFloat64()); | 2593 ProcessInput(node, 0, UseInfo::TruncatingFloat64()); |
2586 ProcessRemainingInputs(node, 1); | 2594 ProcessRemainingInputs(node, 1); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2680 case IrOpcode::kEffectPhi: | 2688 case IrOpcode::kEffectPhi: |
2681 case IrOpcode::kTerminate: | 2689 case IrOpcode::kTerminate: |
2682 case IrOpcode::kFrameState: | 2690 case IrOpcode::kFrameState: |
2683 case IrOpcode::kCheckpoint: | 2691 case IrOpcode::kCheckpoint: |
2684 case IrOpcode::kLoop: | 2692 case IrOpcode::kLoop: |
2685 case IrOpcode::kMerge: | 2693 case IrOpcode::kMerge: |
2686 case IrOpcode::kThrow: | 2694 case IrOpcode::kThrow: |
2687 case IrOpcode::kBeginRegion: | 2695 case IrOpcode::kBeginRegion: |
2688 case IrOpcode::kProjection: | 2696 case IrOpcode::kProjection: |
2689 case IrOpcode::kOsrValue: | 2697 case IrOpcode::kOsrValue: |
2690 case IrOpcode::kArgumentsObjectState: | 2698 case IrOpcode::kArgumentsElementsState: |
2691 // All JavaScript operators except JSToNumber have uniform handling. | 2699 // All JavaScript operators except JSToNumber have uniform handling. |
2692 #define OPCODE_CASE(name) case IrOpcode::k##name: | 2700 #define OPCODE_CASE(name) case IrOpcode::k##name: |
2693 JS_SIMPLE_BINOP_LIST(OPCODE_CASE) | 2701 JS_SIMPLE_BINOP_LIST(OPCODE_CASE) |
2694 JS_OTHER_UNOP_LIST(OPCODE_CASE) | 2702 JS_OTHER_UNOP_LIST(OPCODE_CASE) |
2695 JS_OBJECT_OP_LIST(OPCODE_CASE) | 2703 JS_OBJECT_OP_LIST(OPCODE_CASE) |
2696 JS_CONTEXT_OP_LIST(OPCODE_CASE) | 2704 JS_CONTEXT_OP_LIST(OPCODE_CASE) |
2697 JS_OTHER_OP_LIST(OPCODE_CASE) | 2705 JS_OTHER_OP_LIST(OPCODE_CASE) |
2698 #undef OPCODE_CASE | 2706 #undef OPCODE_CASE |
2699 case IrOpcode::kJSToInteger: | 2707 case IrOpcode::kJSToInteger: |
2700 case IrOpcode::kJSToLength: | 2708 case IrOpcode::kJSToLength: |
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3532 isolate(), graph()->zone(), callable.descriptor(), 0, flags, | 3540 isolate(), graph()->zone(), callable.descriptor(), 0, flags, |
3533 Operator::kNoProperties); | 3541 Operator::kNoProperties); |
3534 to_number_operator_.set(common()->Call(desc)); | 3542 to_number_operator_.set(common()->Call(desc)); |
3535 } | 3543 } |
3536 return to_number_operator_.get(); | 3544 return to_number_operator_.get(); |
3537 } | 3545 } |
3538 | 3546 |
3539 } // namespace compiler | 3547 } // namespace compiler |
3540 } // namespace internal | 3548 } // namespace internal |
3541 } // namespace v8 | 3549 } // namespace v8 |
OLD | NEW |