More long double fixes. x86_64 should build now.
[oota-llvm.git] / include / llvm / CodeGen / RuntimeLibcalls.h
1 //===-- CodeGen/RuntimeLibcall.h - Runtime Library Calls --------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the Evan Cheng and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines the enum representing the list of runtime library calls
11 // the backend may emit during code generation.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef LLVM_CODEGEN_RUNTIMELIBCALLS_H
16 #define LLVM_CODEGEN_RUNTIMELIBCALLS_H
17
18 namespace llvm {
19 namespace RTLIB {
20   /// RTLIB::Libcall enum - This enum defines all of the runtime library calls
21   /// the backend can emit.
22   ///
23   enum Libcall {
24     // Integer
25     SHL_I32,
26     SHL_I64,
27     SRL_I32,
28     SRL_I64,
29     SRA_I32,
30     SRA_I64,
31     MUL_I32,
32     MUL_I64,
33     SDIV_I32,
34     SDIV_I64,
35     UDIV_I32,
36     UDIV_I64,
37     SREM_I32,
38     SREM_I64,
39     UREM_I32,
40     UREM_I64,
41     NEG_I32,
42     NEG_I64,
43
44     // FLOATING POINT
45     ADD_F32,
46     ADD_F64,
47     SUB_F32,
48     SUB_F64,
49     MUL_F32,
50     MUL_F64,
51     DIV_F32,
52     DIV_F64,
53     REM_F32,
54     REM_F64,
55     NEG_F32,
56     NEG_F64,
57     POWI_F32,
58     POWI_F64,
59     SQRT_F32,
60     SQRT_F64,
61     SIN_F32,
62     SIN_F64,
63     COS_F32,
64     COS_F64,
65
66     // CONVERSION
67     FPEXT_F32_F64,
68     FPROUND_F64_F32,
69     FPTOSINT_F32_I32,
70     FPTOSINT_F32_I64,
71     FPTOSINT_F64_I32,
72     FPTOSINT_F64_I64,
73     FPTOSINT_LD_I64,
74     FPTOUINT_F32_I32,
75     FPTOUINT_F32_I64,
76     FPTOUINT_F64_I32,
77     FPTOUINT_F64_I64,
78     FPTOUINT_LD_I32,
79     FPTOUINT_LD_I64,
80     SINTTOFP_I32_F32,
81     SINTTOFP_I32_F64,
82     SINTTOFP_I64_F32,
83     SINTTOFP_I64_F64,
84     SINTTOFP_I64_LD,
85     UINTTOFP_I32_F32,
86     UINTTOFP_I32_F64,
87     UINTTOFP_I64_F32,
88     UINTTOFP_I64_F64,
89
90     // COMPARISON
91     OEQ_F32,
92     OEQ_F64,
93     UNE_F32,
94     UNE_F64,
95     OGE_F32,
96     OGE_F64,
97     OLT_F32,
98     OLT_F64,
99     OLE_F32,
100     OLE_F64,
101     OGT_F32,
102     OGT_F64,
103     UO_F32,
104     UO_F64,
105     O_F32,
106     O_F64,
107
108     UNKNOWN_LIBCALL
109   };
110 }
111 }
112
113 #endif