PTX: Rename register classes for readability and combine int and fp registers
[oota-llvm.git] / lib / Target / PTX / PTXRegisterInfo.td
1 //===- PTXRegisterInfo.td - PTX Register defs ----------------*- tblgen -*-===//
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 //===----------------------------------------------------------------------===//
11 //  Declarations that describe the PTX register file
12 //===----------------------------------------------------------------------===//
13
14 class PTXReg<string n> : Register<n> {
15   let Namespace = "PTX";
16 }
17
18 //===----------------------------------------------------------------------===//
19 //  Registers
20 //===----------------------------------------------------------------------===//
21
22 ///===- Predicate Registers -----------------------------------------------===//
23
24 def P0  : PTXReg<"p0">;
25 def P1  : PTXReg<"p1">;
26 def P2  : PTXReg<"p2">;
27 def P3  : PTXReg<"p3">;
28 def P4  : PTXReg<"p4">;
29 def P5  : PTXReg<"p5">;
30 def P6  : PTXReg<"p6">;
31 def P7  : PTXReg<"p7">;
32
33 ///===- 16-bit Integer Registers ------------------------------------------===//
34
35 def RH0  : PTXReg<"rh0">;
36 def RH1  : PTXReg<"rh1">;
37 def RH2  : PTXReg<"rh2">;
38 def RH3  : PTXReg<"rh3">;
39 def RH4  : PTXReg<"rh4">;
40 def RH5  : PTXReg<"rh5">;
41 def RH6  : PTXReg<"rh6">;
42 def RH7  : PTXReg<"rh7">;
43
44 ///===- 32-bit Integer Registers ------------------------------------------===//
45
46 def R0  : PTXReg<"r0">;
47 def R1  : PTXReg<"r1">;
48 def R2  : PTXReg<"r2">;
49 def R3  : PTXReg<"r3">;
50 def R4  : PTXReg<"r4">;
51 def R5  : PTXReg<"r5">;
52 def R6  : PTXReg<"r6">;
53 def R7  : PTXReg<"r7">;
54
55 ///===- 64-bit Integer Registers ------------------------------------------===//
56
57 def RD0  : PTXReg<"rd0">;
58 def RD1  : PTXReg<"rd1">;
59 def RD2  : PTXReg<"rd2">;
60 def RD3  : PTXReg<"rd3">;
61 def RD4  : PTXReg<"rd4">;
62 def RD5  : PTXReg<"rd5">;
63 def RD6  : PTXReg<"rd6">;
64 def RD7  : PTXReg<"rd7">;
65
66 //===----------------------------------------------------------------------===//
67 //  Register classes
68 //===----------------------------------------------------------------------===//
69
70 def RegPred : RegisterClass<"PTX", [i1], 8, (sequence "P%u", 0, 7)>;
71 def RegI16  : RegisterClass<"PTX", [i16], 16, (sequence "RH%u", 0, 7)>;
72 def RegI32  : RegisterClass<"PTX", [i32], 32, (sequence "R%u",  0, 7)>;
73 def RegI64  : RegisterClass<"PTX", [i64], 64, (sequence "RD%u", 0, 7)>;
74 def RegF32  : RegisterClass<"PTX", [f32], 32, (sequence "R%u",  0, 7)>;
75 def RegF64  : RegisterClass<"PTX", [f64], 64, (sequence "RD%u", 0, 7)>;