1 //===-- PTXRegisterInfo.td - PTX Register defs -------------*- 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 //===----------------------------------------------------------------------===// 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 // The generated register info code throws warnings for empty register classes 23 // (e.g. zero-length arrays), so we use a dummy register here just to prevent 24 // these warnings. 25 def DUMMY_REG : PTXReg<"R0">; 26 27 //===----------------------------------------------------------------------===// 28 // Register classes 29 //===----------------------------------------------------------------------===// 30 def RegPred : RegisterClass<"PTX", [i1], 8, (add DUMMY_REG)>; 31 def RegI16 : RegisterClass<"PTX", [i16], 16, (add DUMMY_REG)>; 32 def RegI32 : RegisterClass<"PTX", [i32], 32, (add DUMMY_REG)>; 33 def RegI64 : RegisterClass<"PTX", [i64], 64, (add DUMMY_REG)>; 34 def RegF32 : RegisterClass<"PTX", [f32], 32, (add DUMMY_REG)>; 35 def RegF64 : RegisterClass<"PTX", [f64], 64, (add DUMMY_REG)>; 36 37