OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 | 6 |
7 #include "src/address-map.h" | 7 #include "src/address-map.h" |
8 #include "src/compiler/code-generator-impl.h" | 8 #include "src/compiler/code-generator-impl.h" |
9 #include "src/compiler/linkage.h" | 9 #include "src/compiler/linkage.h" |
10 #include "src/compiler/pipeline.h" | 10 #include "src/compiler/pipeline.h" |
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 } else if (op->IsDoubleRegister()) { | 625 } else if (op->IsDoubleRegister()) { |
626 DCHECK((type & (kRepFloat32 | kRepFloat64)) != 0); | 626 DCHECK((type & (kRepFloat32 | kRepFloat64)) != 0); |
627 InstructionOperandConverter converter(this, instr); | 627 InstructionOperandConverter converter(this, instr); |
628 translation->StoreDoubleRegister(converter.ToDoubleRegister(op)); | 628 translation->StoreDoubleRegister(converter.ToDoubleRegister(op)); |
629 } else if (op->IsImmediate()) { | 629 } else if (op->IsImmediate()) { |
630 InstructionOperandConverter converter(this, instr); | 630 InstructionOperandConverter converter(this, instr); |
631 Constant constant = converter.ToConstant(op); | 631 Constant constant = converter.ToConstant(op); |
632 Handle<Object> constant_object; | 632 Handle<Object> constant_object; |
633 switch (constant.type()) { | 633 switch (constant.type()) { |
634 case Constant::kInt32: | 634 case Constant::kInt32: |
635 DCHECK(type == kMachInt32 || type == kMachUint32 || type == kRepBit); | 635 DCHECK(type == kMachInt32 || type == kMachUint32 || type == kMachBool || |
| 636 type == kRepBit); |
636 constant_object = | 637 constant_object = |
637 isolate()->factory()->NewNumberFromInt(constant.ToInt32()); | 638 isolate()->factory()->NewNumberFromInt(constant.ToInt32()); |
638 break; | 639 break; |
639 case Constant::kFloat32: | 640 case Constant::kFloat32: |
640 DCHECK((type & (kRepFloat32 | kRepTagged)) != 0); | 641 DCHECK((type & (kRepFloat32 | kRepTagged)) != 0); |
641 constant_object = isolate()->factory()->NewNumber(constant.ToFloat32()); | 642 constant_object = isolate()->factory()->NewNumber(constant.ToFloat32()); |
642 break; | 643 break; |
643 case Constant::kFloat64: | 644 case Constant::kFloat64: |
644 DCHECK((type & (kRepFloat64 | kRepTagged)) != 0); | 645 DCHECK((type & (kRepFloat64 | kRepTagged)) != 0); |
645 constant_object = isolate()->factory()->NewNumber(constant.ToFloat64()); | 646 constant_object = isolate()->factory()->NewNumber(constant.ToFloat64()); |
(...skipping 26 matching lines...) Expand all Loading... |
672 : frame_(gen->frame()), masm_(gen->masm()), next_(gen->ools_) { | 673 : frame_(gen->frame()), masm_(gen->masm()), next_(gen->ools_) { |
673 gen->ools_ = this; | 674 gen->ools_ = this; |
674 } | 675 } |
675 | 676 |
676 | 677 |
677 OutOfLineCode::~OutOfLineCode() {} | 678 OutOfLineCode::~OutOfLineCode() {} |
678 | 679 |
679 } // namespace compiler | 680 } // namespace compiler |
680 } // namespace internal | 681 } // namespace internal |
681 } // namespace v8 | 682 } // namespace v8 |
OLD | NEW |