@@ -1824,20 +1824,18 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
1824
1824
setOperationAction (ISD::MULHS, MVT::i32 , Expand);
1825
1825
setOperationAction (ISD::MUL, MVT::i32 , Expand);
1826
1826
1827
+ setLibcallImpl (RTLIB::MUL_I32, RTLIB::sparc_umul);
1828
+ setLibcallImpl (RTLIB::SDIV_I32, RTLIB::sparc_div);
1829
+ setLibcallImpl (RTLIB::UDIV_I32, RTLIB::sparc_udiv);
1830
+ setLibcallImpl (RTLIB::SREM_I32, RTLIB::sparc_rem);
1831
+ setLibcallImpl (RTLIB::UREM_I32, RTLIB::sparc_urem);
1832
+
1827
1833
if (Subtarget->useSoftMulDiv ()) {
1828
1834
// .umul works for both signed and unsigned
1829
1835
setOperationAction (ISD::SMUL_LOHI, MVT::i32 , Expand);
1830
1836
setOperationAction (ISD::UMUL_LOHI, MVT::i32 , Expand);
1831
- setLibcallImpl (RTLIB::MUL_I32, RTLIB::sparc_umul);
1832
-
1833
1837
setOperationAction (ISD::SDIV, MVT::i32 , Expand);
1834
- setLibcallImpl (RTLIB::SDIV_I32, RTLIB::sparc_div);
1835
-
1836
1838
setOperationAction (ISD::UDIV, MVT::i32 , Expand);
1837
- setLibcallImpl (RTLIB::UDIV_I32, RTLIB::sparc_udiv);
1838
-
1839
- setLibcallImpl (RTLIB::SREM_I32, RTLIB::sparc_rem);
1840
- setLibcallImpl (RTLIB::UREM_I32, RTLIB::sparc_urem);
1841
1839
}
1842
1840
1843
1841
if (Subtarget->is64Bit ()) {
@@ -1881,6 +1879,13 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
1881
1879
setOperationAction (ISD::STORE, MVT::f128 , Custom);
1882
1880
}
1883
1881
1882
+ if (!Subtarget->is64Bit ()) {
1883
+ setLibcallImpl (RTLIB::FPTOSINT_F128_I64, RTLIB::_Q_qtoll);
1884
+ setLibcallImpl (RTLIB::FPTOUINT_F128_I64, RTLIB::_Q_qtoull);
1885
+ setLibcallImpl (RTLIB::SINTTOFP_I64_F128, RTLIB::_Q_lltoq);
1886
+ setLibcallImpl (RTLIB::UINTTOFP_I64_F128, RTLIB::_Q_ulltoq);
1887
+ }
1888
+
1884
1889
if (Subtarget->hasHardQuad ()) {
1885
1890
setOperationAction (ISD::FADD, MVT::f128 , Legal);
1886
1891
setOperationAction (ISD::FSUB, MVT::f128 , Legal);
@@ -1896,14 +1901,6 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
1896
1901
setOperationAction (ISD::FNEG, MVT::f128 , Custom);
1897
1902
setOperationAction (ISD::FABS, MVT::f128 , Custom);
1898
1903
}
1899
-
1900
- if (!Subtarget->is64Bit ()) {
1901
- setLibcallImpl (RTLIB::FPTOSINT_F128_I64, RTLIB::_Q_qtoll);
1902
- setLibcallImpl (RTLIB::FPTOUINT_F128_I64, RTLIB::_Q_qtoull);
1903
- setLibcallImpl (RTLIB::SINTTOFP_I64_F128, RTLIB::_Q_lltoq);
1904
- setLibcallImpl (RTLIB::UINTTOFP_I64_F128, RTLIB::_Q_ulltoq);
1905
- }
1906
-
1907
1904
} else {
1908
1905
// Custom legalize f128 operations.
1909
1906
@@ -1948,10 +1945,6 @@ SparcTargetLowering::SparcTargetLowering(const TargetMachine &TM,
1948
1945
setLibcallImpl (RTLIB::FPTOUINT_F128_I32, RTLIB::_Q_qtou);
1949
1946
setLibcallImpl (RTLIB::SINTTOFP_I32_F128, RTLIB::_Q_itoq);
1950
1947
setLibcallImpl (RTLIB::UINTTOFP_I32_F128, RTLIB::_Q_utoq);
1951
- setLibcallImpl (RTLIB::FPTOSINT_F128_I64, RTLIB::_Q_qtoll);
1952
- setLibcallImpl (RTLIB::FPTOUINT_F128_I64, RTLIB::_Q_qtoull);
1953
- setLibcallImpl (RTLIB::SINTTOFP_I64_F128, RTLIB::_Q_lltoq);
1954
- setLibcallImpl (RTLIB::UINTTOFP_I64_F128, RTLIB::_Q_ulltoq);
1955
1948
setLibcallImpl (RTLIB::FPEXT_F32_F128, RTLIB::_Q_stoq);
1956
1949
setLibcallImpl (RTLIB::FPEXT_F64_F128, RTLIB::_Q_dtoq);
1957
1950
setLibcallImpl (RTLIB::FPROUND_F128_F32, RTLIB::_Q_qtos);
0 commit comments