[llvm-commits] [llvm] r80024 - in /llvm/trunk: include/llvm/MC/MCAsmInfo.h lib/MC/MCAsmInfo.cpp lib/MC/MCAsmInfoDarwin.cpp

Bill Wendling isanbard at gmail.com
Tue Aug 25 13:21:18 PDT 2009


Author: void
Date: Tue Aug 25 15:21:17 2009
New Revision: 80024

URL: http://llvm.org/viewvc/llvm-project?rev=80024&view=rev
Log:
Add a target asm info hook to specify that particular bits of data in the FDE
should be forced to 32-bits (.long) even on 64-bit architectures. Darwin wants
these bits to be 64-bits (.quad). However, other platforms may disagree.

This is just the info right now and is part of a work-in-progress which needs
this. We'll add the actual *use* of this soon.

Modified:
    llvm/trunk/include/llvm/MC/MCAsmInfo.h
    llvm/trunk/lib/MC/MCAsmInfo.cpp
    llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp

Modified: llvm/trunk/include/llvm/MC/MCAsmInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAsmInfo.h?rev=80024&r1=80023&r2=80024&view=diff

==============================================================================
--- llvm/trunk/include/llvm/MC/MCAsmInfo.h (original)
+++ llvm/trunk/include/llvm/MC/MCAsmInfo.h Tue Aug 25 15:21:17 2009
@@ -254,52 +254,49 @@
     //===--- Dwarf Emission Directives -----------------------------------===//
 
     /// AbsoluteDebugSectionOffsets - True if we should emit abolute section
-    /// offsets for debug information. Defaults to false.
-    bool AbsoluteDebugSectionOffsets;
+    /// offsets for debug information.
+    bool AbsoluteDebugSectionOffsets;        // Defaults to false.
 
     /// AbsoluteEHSectionOffsets - True if we should emit abolute section
     /// offsets for EH information. Defaults to false.
     bool AbsoluteEHSectionOffsets;
 
     /// HasLEB128 - True if target asm supports leb128 directives.
-    ///
-    bool HasLEB128; // Defaults to false.
+    bool HasLEB128;                          // Defaults to false.
 
     /// hasDotLocAndDotFile - True if target asm supports .loc and .file
     /// directives for emitting debugging information.
-    ///
-    bool HasDotLocAndDotFile; // Defaults to false.
+    bool HasDotLocAndDotFile;                // Defaults to false.
 
     /// SupportsDebugInformation - True if target supports emission of debugging
     /// information.
-    bool SupportsDebugInformation;
+    bool SupportsDebugInformation;           // Defaults to false.
 
-    /// SupportsExceptionHandling - True if target supports
-    /// exception handling.
-    ///
-    // Defaults to None
-    ExceptionHandling::ExceptionsType ExceptionsType;
+    /// SupportsExceptionHandling - True if target supports exception handling.
+    ExceptionHandling::ExceptionsType ExceptionsType; // Defaults to None
 
     /// RequiresFrameSection - true if the Dwarf2 output needs a frame section
-    ///
-    bool DwarfRequiresFrameSection; // Defaults to true.
+    bool DwarfRequiresFrameSection;          // Defaults to true.
 
     /// DwarfUsesInlineInfoSection - True if DwarfDebugInlineSection is used to
     /// encode inline subroutine information.
-    bool DwarfUsesInlineInfoSection; // Defaults to false.
+    bool DwarfUsesInlineInfoSection;         // Defaults to false.
 
     /// Is_EHSymbolPrivate - If set, the "_foo.eh" is made private so that it
     /// doesn't show up in the symbol table of the object file.
-    bool Is_EHSymbolPrivate;                // Defaults to true.
+    bool Is_EHSymbolPrivate;                 // Defaults to true.
+
+    /// ForceEncodingOfFDETo32Bits - If set, the encoding of some of the FDE
+    /// data is forced to 32-bit.
+    bool ForceEncodingOfFDETo32Bits;         // Defaults to true.
 
     /// GlobalEHDirective - This is the directive used to make exception frame
     /// tables globally visible.
-    ///
-    const char *GlobalEHDirective;          // Defaults to NULL.
+    const char *GlobalEHDirective;           // Defaults to NULL.
 
     /// SupportsWeakEmptyEHFrame - True if target assembler and linker will
     /// handle a weak_definition of constant 0 for an omitted EH frame.
-    bool SupportsWeakOmittedEHFrame;  // Defaults to true.
+    bool SupportsWeakOmittedEHFrame;         // Defaults to true.
 
     /// DwarfSectionOffsetDirective - Special section offset directive.
     const char* DwarfSectionOffsetDirective; // Defaults to NULL
@@ -508,6 +505,9 @@
     bool is_EHSymbolPrivate() const {
       return Is_EHSymbolPrivate;
     }
+    bool forceEncodingOfFDETo32Bits() const {
+      return ForceEncodingOfFDETo32Bits;
+    }
     const char *getGlobalEHDirective() const {
       return GlobalEHDirective;
     }

Modified: llvm/trunk/lib/MC/MCAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfo.cpp?rev=80024&r1=80023&r2=80024&view=diff

==============================================================================
--- llvm/trunk/lib/MC/MCAsmInfo.cpp (original)
+++ llvm/trunk/lib/MC/MCAsmInfo.cpp Tue Aug 25 15:21:17 2009
@@ -78,6 +78,7 @@
   DwarfRequiresFrameSection = true;
   DwarfUsesInlineInfoSection = false;
   Is_EHSymbolPrivate = true;
+  ForceEncodingOfFDETo32Bits = true;
   GlobalEHDirective = 0;
   SupportsWeakOmittedEHFrame = true;
   DwarfSectionOffsetDirective = 0;

Modified: llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp?rev=80024&r1=80023&r2=80024&view=diff

==============================================================================
--- llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp (original)
+++ llvm/trunk/lib/MC/MCAsmInfoDarwin.cpp Tue Aug 25 15:21:17 2009
@@ -52,6 +52,7 @@
   // doesn't hurt anything.
   // FIXME: I need to get this from Triple.
   Is_EHSymbolPrivate = false;
+  ForceEncodingOfFDETo32Bits = false;
   GlobalEHDirective = "\t.globl\t";
   SupportsWeakOmittedEHFrame = false;
 





More information about the llvm-commits mailing list