[llvm] r271497 - [CodeView] Use the right type index for long long

David Majnemer via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 2 00:02:32 PDT 2016


Author: majnemer
Date: Thu Jun  2 02:02:32 2016
New Revision: 271497

URL: http://llvm.org/viewvc/llvm-project?rev=271497&view=rev
Log:
[CodeView] Use the right type index for long long

We used T_INT8 instead of T_QUAD.

Modified:
    llvm/trunk/include/llvm/DebugInfo/CodeView/TypeIndex.h
    llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
    llvm/trunk/test/DebugInfo/COFF/types-basic.ll

Modified: llvm/trunk/include/llvm/DebugInfo/CodeView/TypeIndex.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeIndex.h?rev=271497&r1=271496&r2=271497&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/CodeView/TypeIndex.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/CodeView/TypeIndex.h Thu Jun  2 02:02:32 2016
@@ -44,6 +44,8 @@ enum class SimpleTypeKind : uint32_t {
   UInt64Quad = 0x0023,  // 64 bit unsigned
   Int64 = 0x0076,       // 64 bit signed int
   UInt64 = 0x0077,      // 64 bit unsigned int
+  Int128Oct = 0x0014,   // 128 bit signed int
+  UInt128Oct = 0x0024,  // 128 bit unsigned int
   Int128 = 0x0078,      // 128 bit signed int
   UInt128 = 0x0079,     // 128 bit unsigned int
 
@@ -55,15 +57,19 @@ enum class SimpleTypeKind : uint32_t {
   Float80 = 0x0042,                 // 80 bit real
   Float128 = 0x0043,                // 128 bit real
 
-  Complex32 = 0x0050,  // 32 bit complex
-  Complex64 = 0x0051,  // 64 bit complex
-  Complex80 = 0x0052,  // 80 bit complex
-  Complex128 = 0x0053, // 128 bit complex
+  Complex16 = 0x0056,                 // 16 bit complex
+  Complex32 = 0x0050,                 // 32 bit complex
+  Complex32PartialPrecision = 0x0055, // 32 bit PP complex
+  Complex48 = 0x0054,                 // 48 bit complex
+  Complex64 = 0x0051,                 // 64 bit complex
+  Complex80 = 0x0052,                 // 80 bit complex
+  Complex128 = 0x0053,                // 128 bit complex
 
-  Boolean8 = 0x0030,  // 8 bit boolean
-  Boolean16 = 0x0031, // 16 bit boolean
-  Boolean32 = 0x0032, // 32 bit boolean
-  Boolean64 = 0x0033  // 64 bit boolean
+  Boolean8 = 0x0030,   // 8 bit boolean
+  Boolean16 = 0x0031,  // 16 bit boolean
+  Boolean32 = 0x0032,  // 32 bit boolean
+  Boolean64 = 0x0033,  // 64 bit boolean
+  Boolean128 = 0x0034, // 128 bit boolean
 };
 
 enum class SimpleTypeMode : uint32_t {

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp?rev=271497&r1=271496&r2=271497&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Thu Jun  2 02:02:32 2016
@@ -775,14 +775,16 @@ TypeIndex CodeViewDebug::lowerTypeBasic(
     break;
   case dwarf::DW_ATE_boolean:
     switch (ByteSize) {
-    case 1: STK = SimpleTypeKind::Boolean8;  break;
-    case 2: STK = SimpleTypeKind::Boolean16; break;
-    case 4: STK = SimpleTypeKind::Boolean32; break;
-    case 8: STK = SimpleTypeKind::Boolean64; break;
+    case 1:  STK = SimpleTypeKind::Boolean8;   break;
+    case 2:  STK = SimpleTypeKind::Boolean16;  break;
+    case 4:  STK = SimpleTypeKind::Boolean32;  break;
+    case 8:  STK = SimpleTypeKind::Boolean64;  break;
+    case 16: STK = SimpleTypeKind::Boolean128; break;
     }
     break;
   case dwarf::DW_ATE_complex_float:
     switch (ByteSize) {
+    case 2:  STK = SimpleTypeKind::Complex16;  break;
     case 4:  STK = SimpleTypeKind::Complex32;  break;
     case 8:  STK = SimpleTypeKind::Complex64;  break;
     case 10: STK = SimpleTypeKind::Complex80;  break;
@@ -791,6 +793,7 @@ TypeIndex CodeViewDebug::lowerTypeBasic(
     break;
   case dwarf::DW_ATE_float:
     switch (ByteSize) {
+    case 2:  STK = SimpleTypeKind::Float16;  break;
     case 4:  STK = SimpleTypeKind::Float32;  break;
     case 6:  STK = SimpleTypeKind::Float48;  break;
     case 8:  STK = SimpleTypeKind::Float64;  break;
@@ -800,18 +803,20 @@ TypeIndex CodeViewDebug::lowerTypeBasic(
     break;
   case dwarf::DW_ATE_signed:
     switch (ByteSize) {
-    case 1: STK = SimpleTypeKind::SByte;      break;
-    case 2: STK = SimpleTypeKind::Int16Short; break;
-    case 4: STK = SimpleTypeKind::Int32;      break;
-    case 8: STK = SimpleTypeKind::Int64;      break;
+    case 1:  STK = SimpleTypeKind::SByte;      break;
+    case 2:  STK = SimpleTypeKind::Int16Short; break;
+    case 4:  STK = SimpleTypeKind::Int32;      break;
+    case 8:  STK = SimpleTypeKind::Int64Quad;  break;
+    case 16: STK = SimpleTypeKind::Int128Oct;  break;
     }
     break;
   case dwarf::DW_ATE_unsigned:
     switch (ByteSize) {
-    case 1: STK = SimpleTypeKind::Byte;        break;
-    case 2: STK = SimpleTypeKind::UInt16Short; break;
-    case 4: STK = SimpleTypeKind::UInt32;      break;
-    case 8: STK = SimpleTypeKind::UInt64;      break;
+    case 1:  STK = SimpleTypeKind::Byte;        break;
+    case 2:  STK = SimpleTypeKind::UInt16Short; break;
+    case 4:  STK = SimpleTypeKind::UInt32;      break;
+    case 8:  STK = SimpleTypeKind::UInt64Quad;  break;
+    case 16: STK = SimpleTypeKind::UInt128Oct;  break;
     }
     break;
   case dwarf::DW_ATE_UTF:

Modified: llvm/trunk/test/DebugInfo/COFF/types-basic.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/types-basic.ll?rev=271497&r1=271496&r2=271497&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/types-basic.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/types-basic.ll Thu Jun  2 02:02:32 2016
@@ -92,7 +92,7 @@
 ; CHECK:       LinkageName: ?f@@YAXMN_J at Z
 ; CHECK:     }
 ; CHECK:     Local {
-; CHECK:       Type: __int64 (0x76)
+; CHECK:       Type: __int64 (0x13)
 ; CHECK:       Flags [ (0x1)
 ; CHECK:         IsParameter (0x1)
 ; CHECK:       ]




More information about the llvm-commits mailing list