Don't attribute in file headers anymore. See llvmdev for the
[oota-llvm.git] / include / llvm / CodeGen / RuntimeLibcalls.h
index 011fc2df0fa3a51b62b2e25b4536a78b7f43e20a..77d008eda36fd7ef710c7cb17e25281800f66086 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the Evan Cheng and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
 namespace llvm {
 namespace RTLIB {
   /// RTLIB::Libcall enum - This enum defines all of the runtime library calls
-  /// the backend can emit.
+  /// the backend can emit.  The various long double types cannot be merged,
+  /// because 80-bit library functions use "xf" and 128-bit use "tf".
+  /// 
+  /// When adding PPCF128 functions here, note that their names generally need
+  /// to be overridden for Darwin with the xxx$LDBL128 form.  See
+  /// PPCISelLowering.cpp.
   ///
   enum Libcall {
     // Integer
@@ -44,24 +49,37 @@ namespace RTLIB {
     // FLOATING POINT
     ADD_F32,
     ADD_F64,
+    ADD_PPCF128,
     SUB_F32,
     SUB_F64,
+    SUB_PPCF128,
     MUL_F32,
     MUL_F64,
+    MUL_PPCF128,
     DIV_F32,
     DIV_F64,
+    DIV_PPCF128,
     REM_F32,
     REM_F64,
+    REM_PPCF128,
     NEG_F32,
     NEG_F64,
     POWI_F32,
     POWI_F64,
+    POWI_F80,
+    POWI_PPCF128,
     SQRT_F32,
     SQRT_F64,
+    SQRT_F80,
+    SQRT_PPCF128,
     SIN_F32,
     SIN_F64,
     COS_F32,
     COS_F64,
+    POW_F32,
+    POW_F64,
+    POW_F80,
+    POW_PPCF128,
 
     // CONVERSION
     FPEXT_F32_F64,
@@ -70,14 +88,21 @@ namespace RTLIB {
     FPTOSINT_F32_I64,
     FPTOSINT_F64_I32,
     FPTOSINT_F64_I64,
+    FPTOSINT_F80_I64,
+    FPTOSINT_PPCF128_I64,
     FPTOUINT_F32_I32,
     FPTOUINT_F32_I64,
     FPTOUINT_F64_I32,
     FPTOUINT_F64_I64,
+    FPTOUINT_F80_I32,
+    FPTOUINT_F80_I64,
+    FPTOUINT_PPCF128_I64,
     SINTTOFP_I32_F32,
     SINTTOFP_I32_F64,
     SINTTOFP_I64_F32,
     SINTTOFP_I64_F64,
+    SINTTOFP_I64_F80,
+    SINTTOFP_I64_PPCF128,
     UINTTOFP_I32_F32,
     UINTTOFP_I32_F64,
     UINTTOFP_I64_F32,
@@ -98,6 +123,8 @@ namespace RTLIB {
     OGT_F64,
     UO_F32,
     UO_F64,
+    O_F32,
+    O_F64,
 
     UNKNOWN_LIBCALL
   };