add a getSignBit method, elimiante virtual method from getBitMask()
authorChris Lattner <sabre@nondot.org>
Sun, 4 Mar 2007 23:33:19 +0000 (23:33 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 4 Mar 2007 23:33:19 +0000 (23:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34916 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/DerivedTypes.h

index 29d7ede8232ac3e8d6564211dc4bbeba5b816586..dadbdcc3add37de15eb4dd348a1c6964743446bf 100644 (file)
@@ -106,9 +106,15 @@ public:
   /// that can be set by an unsigned version of this type.  This is 0xFF for
   /// sbyte/ubyte, 0xFFFF for shorts, etc.
   uint64_t getBitMask() const {
-    return ~uint64_t(0UL) >> (64-getPrimitiveSizeInBits());
+    return ~uint64_t(0UL) >> (64-getBitWidth());
   }
 
+  /// getSignBit - Return a uint64_t with just the most significant bit set (the
+  /// sign bit, if the value is treated as a signed number).
+  uint64_t getSignBit() const {
+    return 1ULL << (getBitWidth()-1);
+  }
+  
   /// For example, this is 0xFF for an 8 bit integer, 0xFFFF for i16, etc.
   /// @returns a bit mask with ones set for all the bits of this type.
   /// @brief Get a bit mask for this type.