aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Bitcode/LLVMBitCodes.h9
-rw-r--r--include/llvm/Type.h25
2 files changed, 23 insertions, 11 deletions
diff --git a/include/llvm/Bitcode/LLVMBitCodes.h b/include/llvm/Bitcode/LLVMBitCodes.h
index 24e6729..f62af5e 100644
--- a/include/llvm/Bitcode/LLVMBitCodes.h
+++ b/include/llvm/Bitcode/LLVMBitCodes.h
@@ -81,7 +81,14 @@ namespace bitc {
TYPE_CODE_FUNCTION = 9, // FUNCTION: [vararg, retty, paramty x N]
TYPE_CODE_STRUCT = 10, // STRUCT: [ispacked, eltty x N]
TYPE_CODE_ARRAY = 11, // ARRAY: [numelts, eltty]
- TYPE_CODE_VECTOR = 12 // VECTOR: [numelts, eltty]
+ TYPE_CODE_VECTOR = 12, // VECTOR: [numelts, eltty]
+
+ // These are not with the other floating point types because they're
+ // a late addition, and putting them in the right place breaks
+ // binary compatibility.
+ TYPE_CODE_X86_FP80 = 13, // X86 LONG DOUBLE
+ TYPE_CODE_FP128 = 14, // LONG DOUBLE (112 bit mantissa)
+ TYPE_CODE_PPC_FP128= 15 // PPC LONG DOUBLE (2 doubles)
// Any other type code is assumed to be an unknown type.
};
diff --git a/include/llvm/Type.h b/include/llvm/Type.h
index cf1c64f..bd264a0 100644
--- a/include/llvm/Type.h
+++ b/include/llvm/Type.h
@@ -70,18 +70,21 @@ public:
VoidTyID = 0, ///< 0: type with no size
FloatTyID, ///< 1: 32 bit floating point type
DoubleTyID, ///< 2: 64 bit floating point type
- LabelTyID, ///< 3: Labels
+ X86_FP80TyID, ///< 3: 80 bit floating point type (X87)
+ FP128TyID, ///< 4: 128 bit floating point type (112-bit mantissa)
+ PPC_FP128TyID, ///< 5: 128 bit floating point type (two 64-bits)
+ LabelTyID, ///< 6: Labels
// Derived types... see DerivedTypes.h file...
// Make sure FirstDerivedTyID stays up to date!!!
- IntegerTyID, ///< 4: Arbitrary bit width integers
- FunctionTyID, ///< 5: Functions
- StructTyID, ///< 6: Structures
- PackedStructTyID,///< 7: Packed Structure. This is for bitcode only
- ArrayTyID, ///< 8: Arrays
- PointerTyID, ///< 9: Pointers
- OpaqueTyID, ///< 10: Opaque: type with unknown structure
- VectorTyID, ///< 11: SIMD 'packed' format, or other vector type
+ IntegerTyID, ///< 7: Arbitrary bit width integers
+ FunctionTyID, ///< 8: Functions
+ StructTyID, ///< 9: Structures
+ PackedStructTyID,///< 10: Packed Structure. This is for bitcode only
+ ArrayTyID, ///< 11: Arrays
+ PointerTyID, ///< 12: Pointers
+ OpaqueTyID, ///< 13: Opaque: type with unknown structure
+ VectorTyID, ///< 14: SIMD 'packed' format, or other vector type
NumTypeIDs, // Must remain as last defined ID
LastPrimitiveTyID = LabelTyID,
@@ -179,7 +182,8 @@ public:
/// isFloatingPoint - Return true if this is one of the two floating point
/// types
- bool isFloatingPoint() const { return ID == FloatTyID || ID == DoubleTyID; }
+ bool isFloatingPoint() const { return ID == FloatTyID || ID == DoubleTyID ||
+ ID == X86_FP80TyID || ID == FP128TyID || ID == PPC_FP128TyID; }
/// isFPOrFPVector - Return true if this is a FP type or a vector of FP types.
///
@@ -282,6 +286,7 @@ public:
// These are the builtin types that are always available...
//
static const Type *VoidTy, *LabelTy, *FloatTy, *DoubleTy;
+ static const Type *X86_FP80Ty, *FP128Ty, *PPC_FP128Ty;
static const IntegerType *Int1Ty, *Int8Ty, *Int16Ty, *Int32Ty, *Int64Ty;
/// Methods for support type inquiry through isa, cast, and dyn_cast: