Changeset 65303 in webkit for trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
- Timestamp:
- Aug 12, 2010, 11:49:16 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/MacroAssemblerARM.h
r63228 r65303 796 796 void addDouble(FPRegisterID src, FPRegisterID dest) 797 797 { 798 m_assembler. faddd_r(dest, dest, src);798 m_assembler.vadd_f64_r(dest, dest, src); 799 799 } 800 800 … … 807 807 void divDouble(FPRegisterID src, FPRegisterID dest) 808 808 { 809 m_assembler. fdivd_r(dest, dest, src);809 m_assembler.vdiv_f64_r(dest, dest, src); 810 810 } 811 811 … … 819 819 void subDouble(FPRegisterID src, FPRegisterID dest) 820 820 { 821 m_assembler. fsubd_r(dest, dest, src);821 m_assembler.vsub_f64_r(dest, dest, src); 822 822 } 823 823 … … 830 830 void mulDouble(FPRegisterID src, FPRegisterID dest) 831 831 { 832 m_assembler. fmuld_r(dest, dest, src);832 m_assembler.vmul_f64_r(dest, dest, src); 833 833 } 834 834 … … 841 841 void sqrtDouble(FPRegisterID src, FPRegisterID dest) 842 842 { 843 m_assembler. fsqrtd_r(dest, src);843 m_assembler.vsqrt_f64_r(dest, src); 844 844 } 845 845 846 846 void convertInt32ToDouble(RegisterID src, FPRegisterID dest) 847 847 { 848 m_assembler. fmsr_r(dest, src);849 m_assembler. fsitod_r(dest, dest);848 m_assembler.vmov_vfp_r(dest << 1, src); 849 m_assembler.vcvt_f64_s32_r(dest, dest << 1); 850 850 } 851 851 … … 869 869 Jump branchDouble(DoubleCondition cond, FPRegisterID left, FPRegisterID right) 870 870 { 871 m_assembler. fcmpd_r(left, right);872 m_assembler. fmstat();871 m_assembler.vcmp_f64_r(left, right); 872 m_assembler.vmrs_apsr(); 873 873 if (cond & DoubleConditionBitSpecial) 874 874 m_assembler.cmp_r(ARMRegisters::S0, ARMRegisters::S0, ARMAssembler::VS); … … 894 894 void branchConvertDoubleToInt32(FPRegisterID src, RegisterID dest, JumpList& failureCases, FPRegisterID fpTemp) 895 895 { 896 m_assembler. ftosid_r(ARMRegisters::SD0, src);897 m_assembler. fmrs_r(dest, ARMRegisters::SD0);896 m_assembler.vcvt_s32_f64_r(ARMRegisters::SD0 << 1, src); 897 m_assembler.vmov_arm_r(dest, ARMRegisters::SD0 << 1); 898 898 899 899 // Convert the integer result back to float & compare to the original value - if not equal or unordered (NaN) then jump. 900 m_assembler. fsitod_r(ARMRegisters::SD0, ARMRegisters::SD0);900 m_assembler.vcvt_f64_s32_r(ARMRegisters::SD0, ARMRegisters::SD0 << 1); 901 901 failureCases.append(branchDouble(DoubleNotEqualOrUnordered, src, ARMRegisters::SD0)); 902 902
Note:
See TracChangeset
for help on using the changeset viewer.