Adding the MicroBlaze backend.
[oota-llvm.git] / lib / Target / MBlaze / MBlazeIntrinsics.td
1 //===- IntrinsicsMBlaze.td - Defines MBlaze intrinsics -----*- tablegen -*-===//
2 // 
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 // 
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines all of the MicroBlaze-specific intrinsics.
11 //
12 //===----------------------------------------------------------------------===//
13
14 //===----------------------------------------------------------------------===//
15 // Definitions for all MBlaze intrinsics.
16 //
17
18 // MBlaze intrinsic classes.
19 let TargetPrefix = "mblaze", isTarget = 1 in { 
20   class MBFSL_Get_Intrinsic : Intrinsic<[llvm_i32_ty],
21                                         [llvm_i32_ty],
22                                         [IntrWriteMem]>;
23
24   class MBFSL_Put_Intrinsic : Intrinsic<[llvm_void_ty],
25                                         [llvm_i32_ty, llvm_i32_ty],
26                                         [IntrWriteMem]>;
27
28   class MBFSL_PutT_Intrinsic : Intrinsic<[llvm_void_ty],
29                                          [llvm_i32_ty],
30                                          [IntrWriteMem]>;
31 }
32
33 //===----------------------------------------------------------------------===//
34 // MicroBlaze FSL Get Intrinsic Definitions.
35 //
36
37 def int_mblaze_fsl_get      : GCCBuiltin<"__builtin_mblaze_fsl_get">,
38                               MBFSL_Get_Intrinsic;
39 def int_mblaze_fsl_aget     : GCCBuiltin<"__builtin_mblaze_fsl_aget">,
40                               MBFSL_Get_Intrinsic;
41 def int_mblaze_fsl_cget     : GCCBuiltin<"__builtin_mblaze_fsl_cget">,
42                               MBFSL_Get_Intrinsic;
43 def int_mblaze_fsl_caget    : GCCBuiltin<"__builtin_mblaze_fsl_caget">,
44                               MBFSL_Get_Intrinsic;
45 def int_mblaze_fsl_eget     : GCCBuiltin<"__builtin_mblaze_fsl_eget">,
46                               MBFSL_Get_Intrinsic;
47 def int_mblaze_fsl_eaget    : GCCBuiltin<"__builtin_mblaze_fsl_eaget">,
48                               MBFSL_Get_Intrinsic;
49 def int_mblaze_fsl_ecget    : GCCBuiltin<"__builtin_mblaze_fsl_ecget">,
50                               MBFSL_Get_Intrinsic;
51 def int_mblaze_fsl_ecaget   : GCCBuiltin<"__builtin_mblaze_fsl_ecaget">,
52                               MBFSL_Get_Intrinsic;
53 def int_mblaze_fsl_nget     : GCCBuiltin<"__builtin_mblaze_fsl_nget">,
54                               MBFSL_Get_Intrinsic;
55 def int_mblaze_fsl_naget    : GCCBuiltin<"__builtin_mblaze_fsl_naget">,
56                               MBFSL_Get_Intrinsic;
57 def int_mblaze_fsl_ncget    : GCCBuiltin<"__builtin_mblaze_fsl_ncget">,
58                               MBFSL_Get_Intrinsic;
59 def int_mblaze_fsl_ncaget   : GCCBuiltin<"__builtin_mblaze_fsl_ncaget">,
60                               MBFSL_Get_Intrinsic;
61 def int_mblaze_fsl_neget    : GCCBuiltin<"__builtin_mblaze_fsl_neget">,
62                               MBFSL_Get_Intrinsic;
63 def int_mblaze_fsl_neaget   : GCCBuiltin<"__builtin_mblaze_fsl_neaget">,
64                               MBFSL_Get_Intrinsic;
65 def int_mblaze_fsl_necget   : GCCBuiltin<"__builtin_mblaze_fsl_necget">,
66                               MBFSL_Get_Intrinsic;
67 def int_mblaze_fsl_necaget  : GCCBuiltin<"__builtin_mblaze_fsl_necaget">,
68                               MBFSL_Get_Intrinsic;
69 def int_mblaze_fsl_tget     : GCCBuiltin<"__builtin_mblaze_fsl_tget">,
70                               MBFSL_Get_Intrinsic;
71 def int_mblaze_fsl_taget    : GCCBuiltin<"__builtin_mblaze_fsl_taget">,
72                               MBFSL_Get_Intrinsic;
73 def int_mblaze_fsl_tcget    : GCCBuiltin<"__builtin_mblaze_fsl_tcget">,
74                               MBFSL_Get_Intrinsic;
75 def int_mblaze_fsl_tcaget   : GCCBuiltin<"__builtin_mblaze_fsl_tcaget">,
76                               MBFSL_Get_Intrinsic;
77 def int_mblaze_fsl_teget    : GCCBuiltin<"__builtin_mblaze_fsl_teget">,
78                               MBFSL_Get_Intrinsic;
79 def int_mblaze_fsl_teaget   : GCCBuiltin<"__builtin_mblaze_fsl_teaget">,
80                               MBFSL_Get_Intrinsic;
81 def int_mblaze_fsl_tecget   : GCCBuiltin<"__builtin_mblaze_fsl_tecget">,
82                               MBFSL_Get_Intrinsic;
83 def int_mblaze_fsl_tecaget  : GCCBuiltin<"__builtin_mblaze_fsl_tecaget">,
84                               MBFSL_Get_Intrinsic;
85 def int_mblaze_fsl_tnget    : GCCBuiltin<"__builtin_mblaze_fsl_tnget">,
86                               MBFSL_Get_Intrinsic;
87 def int_mblaze_fsl_tnaget   : GCCBuiltin<"__builtin_mblaze_fsl_tnaget">,
88                               MBFSL_Get_Intrinsic;
89 def int_mblaze_fsl_tncget   : GCCBuiltin<"__builtin_mblaze_fsl_tncget">,
90                               MBFSL_Get_Intrinsic;
91 def int_mblaze_fsl_tncaget  : GCCBuiltin<"__builtin_mblaze_fsl_tncaget">,
92                               MBFSL_Get_Intrinsic;
93 def int_mblaze_fsl_tneget   : GCCBuiltin<"__builtin_mblaze_fsl_tneget">,
94                               MBFSL_Get_Intrinsic;
95 def int_mblaze_fsl_tneaget  : GCCBuiltin<"__builtin_mblaze_fsl_tneaget">,
96                               MBFSL_Get_Intrinsic;
97 def int_mblaze_fsl_tnecget  : GCCBuiltin<"__builtin_mblaze_fsl_tnecget">,
98                               MBFSL_Get_Intrinsic;
99 def int_mblaze_fsl_tnecaget : GCCBuiltin<"__builtin_mblaze_fsl_tnecaget">,
100                               MBFSL_Get_Intrinsic;
101
102 //===----------------------------------------------------------------------===//
103 // MicroBlaze FSL Put Intrinsic Definitions.
104 //
105
106 def int_mblaze_fsl_put     : GCCBuiltin<"__builtin_mblaze_fsl_put">,
107                              MBFSL_Put_Intrinsic;
108 def int_mblaze_fsl_aput    : GCCBuiltin<"__builtin_mblaze_fsl_aput">,
109                              MBFSL_Put_Intrinsic;
110 def int_mblaze_fsl_cput    : GCCBuiltin<"__builtin_mblaze_fsl_cput">,
111                              MBFSL_Put_Intrinsic;
112 def int_mblaze_fsl_caput   : GCCBuiltin<"__builtin_mblaze_fsl_caput">,
113                              MBFSL_Put_Intrinsic;
114 def int_mblaze_fsl_nput    : GCCBuiltin<"__builtin_mblaze_fsl_nput">,
115                              MBFSL_Put_Intrinsic;
116 def int_mblaze_fsl_naput   : GCCBuiltin<"__builtin_mblaze_fsl_naput">,
117                              MBFSL_Put_Intrinsic;
118 def int_mblaze_fsl_ncput   : GCCBuiltin<"__builtin_mblaze_fsl_ncput">,
119                              MBFSL_Put_Intrinsic;
120 def int_mblaze_fsl_ncaput  : GCCBuiltin<"__builtin_mblaze_fsl_ncaput">,
121                              MBFSL_Put_Intrinsic;
122 def int_mblaze_fsl_tput    : GCCBuiltin<"__builtin_mblaze_fsl_tput">,
123                              MBFSL_PutT_Intrinsic;
124 def int_mblaze_fsl_taput   : GCCBuiltin<"__builtin_mblaze_fsl_taput">,
125                              MBFSL_PutT_Intrinsic;
126 def int_mblaze_fsl_tcput   : GCCBuiltin<"__builtin_mblaze_fsl_tcput">,
127                              MBFSL_PutT_Intrinsic;
128 def int_mblaze_fsl_tcaput  : GCCBuiltin<"__builtin_mblaze_fsl_tcaput">,
129                              MBFSL_PutT_Intrinsic;
130 def int_mblaze_fsl_tnput   : GCCBuiltin<"__builtin_mblaze_fsl_tnput">,
131                              MBFSL_PutT_Intrinsic;
132 def int_mblaze_fsl_tnaput  : GCCBuiltin<"__builtin_mblaze_fsl_tnaput">,
133                              MBFSL_PutT_Intrinsic;
134 def int_mblaze_fsl_tncput  : GCCBuiltin<"__builtin_mblaze_fsl_tncput">,
135                              MBFSL_PutT_Intrinsic;
136 def int_mblaze_fsl_tncaput : GCCBuiltin<"__builtin_mblaze_fsl_tncaput">,
137                              MBFSL_PutT_Intrinsic;