1 //===-- PTXBaseInfo.h - Top level definitions for PTX -------- --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains small standalone helper functions and enum definitions for
11 // the PTX target useful for the compiler back-end and the MC libraries.
12 // As such, it deliberately does not include references to LLVM core
13 // code gen types, passes, etc..
15 //===----------------------------------------------------------------------===//
20 #include "llvm/Support/ErrorHandling.h"
21 #include "llvm/Support/raw_ostream.h"
22 #include "PTXMCTargetDesc.h"
25 namespace PTXStateSpace {
27 Global = 0, // default to global state space
33 } // namespace PTXStateSpace
35 namespace PTXPredicate {
41 } // namespace PTXPredicate
43 /// Namespace to hold all target-specific flags.
44 namespace PTXRoundingMode {
47 // Rounding Mode Flags
49 RndDefault = 0, // ---
50 RndNone = 1, // <NONE>
51 RndNearestEven = 2, // .rn
52 RndTowardsZero = 3, // .rz
55 RndApprox = 6, // .approx
56 RndNearestEvenInt = 7, // .rni
57 RndTowardsZeroInt = 8, // .rzi
58 RndNegInfInt = 9, // .rmi
59 RndPosInfInt = 10 // .rpi
63 namespace PTXRegisterType {
64 // Register type encoded in MCOperands
73 } // namespace PTXRegisterType
75 namespace PTXRegisterSpace {
76 // Register space encoded in MCOperands
86 inline static void decodeRegisterName(raw_ostream &OS,
87 unsigned EncodedReg) {
90 unsigned RegSpace = EncodedReg & 0x7;
91 unsigned RegType = (EncodedReg >> 3) & 0x7;
92 unsigned RegOffset = EncodedReg >> 6;
96 llvm_unreachable("Unknown register space!");
97 case PTXRegisterSpace::Reg:
100 llvm_unreachable("Unknown register type!");
101 case PTXRegisterType::Pred:
104 case PTXRegisterType::B16:
107 case PTXRegisterType::B32:
110 case PTXRegisterType::B64:
113 case PTXRegisterType::F32:
116 case PTXRegisterType::F64:
121 case PTXRegisterSpace::Return:
124 case PTXRegisterSpace::Argument: