Changeset 46832 in webkit for trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
- Timestamp:
- Aug 5, 2009, 10:33:27 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
r46831 r46832 58 58 59 59 enum DoubleCondition { 60 DoubleEqual, //FIXME 61 DoubleNotEqual, //FIXME 62 DoubleGreaterThan, //FIXME 63 DoubleGreaterThanOrEqual, //FIXME 64 DoubleLessThan, //FIXME 65 DoubleLessThanOrEqual, //FIXME 60 DoubleEqual = ARMAssembler::EQ, 61 DoubleGreaterThan = ARMAssembler::GT, 62 DoubleGreaterThanOrEqual = ARMAssembler::GE, 63 DoubleLessThan = ARMAssembler::LT, 64 DoubleLessThanOrEqual = ARMAssembler::LE, 66 65 }; 67 66 … … 641 640 bool supportsFloatingPoint() const 642 641 { 642 // FIXME: should be a dynamic test: VFP, FPA, or nothing 643 643 return false; 644 644 } … … 651 651 void loadDouble(ImplicitAddress address, FPRegisterID dest) 652 652 { 653 UNUSED_PARAM(address); 654 UNUSED_PARAM(dest); 655 ASSERT_NOT_REACHED(); 653 m_assembler.doubleTransfer(true, dest, address.base, address.offset); 656 654 } 657 655 658 656 void storeDouble(FPRegisterID src, ImplicitAddress address) 659 657 { 660 UNUSED_PARAM(src); 661 UNUSED_PARAM(address); 662 ASSERT_NOT_REACHED(); 658 m_assembler.doubleTransfer(false, src, address.base, address.offset); 663 659 } 664 660 665 661 void addDouble(FPRegisterID src, FPRegisterID dest) 666 662 { 667 UNUSED_PARAM(src); 668 UNUSED_PARAM(dest); 669 ASSERT_NOT_REACHED(); 663 m_assembler.faddd_r(dest, dest, src); 670 664 } 671 665 672 666 void addDouble(Address src, FPRegisterID dest) 673 667 { 674 UNUSED_PARAM(src); 675 UNUSED_PARAM(dest); 676 ASSERT_NOT_REACHED(); 668 loadDouble(src, ARM::SD0); 669 addDouble(ARM::SD0, dest); 677 670 } 678 671 679 672 void subDouble(FPRegisterID src, FPRegisterID dest) 680 673 { 681 UNUSED_PARAM(src); 682 UNUSED_PARAM(dest); 683 ASSERT_NOT_REACHED(); 674 m_assembler.fsubd_r(dest, dest, src); 684 675 } 685 676 686 677 void subDouble(Address src, FPRegisterID dest) 687 678 { 688 UNUSED_PARAM(src); 689 UNUSED_PARAM(dest); 690 ASSERT_NOT_REACHED(); 679 loadDouble(src, ARM::SD0); 680 subDouble(ARM::SD0, dest); 691 681 } 692 682 693 683 void mulDouble(FPRegisterID src, FPRegisterID dest) 694 684 { 695 UNUSED_PARAM(src); 696 UNUSED_PARAM(dest); 697 ASSERT_NOT_REACHED(); 685 m_assembler.fmuld_r(dest, dest, src); 698 686 } 699 687 700 688 void mulDouble(Address src, FPRegisterID dest) 701 689 { 702 UNUSED_PARAM(src); 703 UNUSED_PARAM(dest); 704 ASSERT_NOT_REACHED(); 690 loadDouble(src, ARM::SD0); 691 mulDouble(ARM::SD0, dest); 705 692 } 706 693 707 694 void convertInt32ToDouble(RegisterID src, FPRegisterID dest) 708 695 { 709 UNUSED_PARAM(src); 710 UNUSED_PARAM(dest); 711 ASSERT_NOT_REACHED(); 696 m_assembler.fmsr_r(dest, src); 697 m_assembler.fsitod_r(dest, dest); 712 698 } 713 699 714 700 Jump branchDouble(DoubleCondition cond, FPRegisterID left, FPRegisterID right) 715 701 { 716 UNUSED_PARAM(cond); 717 UNUSED_PARAM(left); 718 UNUSED_PARAM(right); 719 ASSERT_NOT_REACHED(); 720 return jump(); 702 m_assembler.fcmpd_r(left, right); 703 m_assembler.fmstat(); 704 return Jump(m_assembler.jmp(static_cast<ARMAssembler::Condition>(cond))); 721 705 } 722 706
Note:
See TracChangeset
for help on using the changeset viewer.