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 2529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2540 return; | 2540 return; |
2541 } | 2541 } |
2542 case IrOpcode::kObjectIsString: { | 2542 case IrOpcode::kObjectIsString: { |
2543 VisitObjectIs(node, Type::String(), lowering); | 2543 VisitObjectIs(node, Type::String(), lowering); |
2544 return; | 2544 return; |
2545 } | 2545 } |
2546 case IrOpcode::kObjectIsUndetectable: { | 2546 case IrOpcode::kObjectIsUndetectable: { |
2547 VisitObjectIs(node, Type::Undetectable(), lowering); | 2547 VisitObjectIs(node, Type::Undetectable(), lowering); |
2548 return; | 2548 return; |
2549 } | 2549 } |
2550 case IrOpcode::kNewRestParameterElements: | 2550 case IrOpcode::kArgumentsFrame: { |
| 2551 SetOutput(node, MachineType::PointerRepresentation()); |
| 2552 return; |
| 2553 } |
| 2554 case IrOpcode::kArgumentsLength: { |
| 2555 VisitUnop(node, UseInfo::PointerInt(), |
| 2556 MachineRepresentation::kTaggedSigned); |
| 2557 return; |
| 2558 } |
2551 case IrOpcode::kNewUnmappedArgumentsElements: { | 2559 case IrOpcode::kNewUnmappedArgumentsElements: { |
2552 ProcessRemainingInputs(node, 0); | 2560 VisitBinop(node, UseInfo::PointerInt(), UseInfo::TaggedSigned(), |
2553 SetOutput(node, MachineRepresentation::kTaggedPointer); | 2561 MachineRepresentation::kTaggedPointer); |
2554 return; | 2562 return; |
2555 } | 2563 } |
2556 case IrOpcode::kArrayBufferWasNeutered: { | 2564 case IrOpcode::kArrayBufferWasNeutered: { |
2557 VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit); | 2565 VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit); |
2558 return; | 2566 return; |
2559 } | 2567 } |
2560 case IrOpcode::kCheckFloat64Hole: { | 2568 case IrOpcode::kCheckFloat64Hole: { |
2561 CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op()); | 2569 CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op()); |
2562 ProcessInput(node, 0, UseInfo::TruncatingFloat64()); | 2570 ProcessInput(node, 0, UseInfo::TruncatingFloat64()); |
2563 ProcessRemainingInputs(node, 1); | 2571 ProcessRemainingInputs(node, 1); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2657 case IrOpcode::kEffectPhi: | 2665 case IrOpcode::kEffectPhi: |
2658 case IrOpcode::kTerminate: | 2666 case IrOpcode::kTerminate: |
2659 case IrOpcode::kFrameState: | 2667 case IrOpcode::kFrameState: |
2660 case IrOpcode::kCheckpoint: | 2668 case IrOpcode::kCheckpoint: |
2661 case IrOpcode::kLoop: | 2669 case IrOpcode::kLoop: |
2662 case IrOpcode::kMerge: | 2670 case IrOpcode::kMerge: |
2663 case IrOpcode::kThrow: | 2671 case IrOpcode::kThrow: |
2664 case IrOpcode::kBeginRegion: | 2672 case IrOpcode::kBeginRegion: |
2665 case IrOpcode::kProjection: | 2673 case IrOpcode::kProjection: |
2666 case IrOpcode::kOsrValue: | 2674 case IrOpcode::kOsrValue: |
2667 case IrOpcode::kArgumentsObjectState: | 2675 case IrOpcode::kArgumentsElementsState: |
2668 // All JavaScript operators except JSToNumber have uniform handling. | 2676 // All JavaScript operators except JSToNumber have uniform handling. |
2669 #define OPCODE_CASE(name) case IrOpcode::k##name: | 2677 #define OPCODE_CASE(name) case IrOpcode::k##name: |
2670 JS_SIMPLE_BINOP_LIST(OPCODE_CASE) | 2678 JS_SIMPLE_BINOP_LIST(OPCODE_CASE) |
2671 JS_OTHER_UNOP_LIST(OPCODE_CASE) | 2679 JS_OTHER_UNOP_LIST(OPCODE_CASE) |
2672 JS_OBJECT_OP_LIST(OPCODE_CASE) | 2680 JS_OBJECT_OP_LIST(OPCODE_CASE) |
2673 JS_CONTEXT_OP_LIST(OPCODE_CASE) | 2681 JS_CONTEXT_OP_LIST(OPCODE_CASE) |
2674 JS_OTHER_OP_LIST(OPCODE_CASE) | 2682 JS_OTHER_OP_LIST(OPCODE_CASE) |
2675 #undef OPCODE_CASE | 2683 #undef OPCODE_CASE |
2676 case IrOpcode::kJSToInteger: | 2684 case IrOpcode::kJSToInteger: |
2677 case IrOpcode::kJSToLength: | 2685 case IrOpcode::kJSToLength: |
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3510 isolate(), graph()->zone(), callable.descriptor(), 0, flags, | 3518 isolate(), graph()->zone(), callable.descriptor(), 0, flags, |
3511 Operator::kNoProperties); | 3519 Operator::kNoProperties); |
3512 to_number_operator_.set(common()->Call(desc)); | 3520 to_number_operator_.set(common()->Call(desc)); |
3513 } | 3521 } |
3514 return to_number_operator_.get(); | 3522 return to_number_operator_.get(); |
3515 } | 3523 } |
3516 | 3524 |
3517 } // namespace compiler | 3525 } // namespace compiler |
3518 } // namespace internal | 3526 } // namespace internal |
3519 } // namespace v8 | 3527 } // namespace v8 |
OLD | NEW |