diff options
Diffstat (limited to 'include/llvm/MC/MCContext.h')
| -rw-r--r-- | include/llvm/MC/MCContext.h | 29 | 
1 files changed, 28 insertions, 1 deletions
diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 4434341f5295..03b5fb0c1fe4 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -20,6 +20,7 @@ namespace llvm {    class MCExpr;    class MCSection;    class MCSymbol; +  class MCLabel;    class StringRef;    class Twine;    class MCSectionMachO; @@ -43,6 +44,15 @@ namespace llvm {      /// NextUniqueID - The next ID to dole out to an unnamed assembler temporary      /// symbol.      unsigned NextUniqueID; + +    /// Instances of directional local labels. +    DenseMap<unsigned, MCLabel *> Instances; +    /// NextInstance() creates the next instance of the directional local label +    /// for the LocalLabelVal and adds it to the map if needed. +    unsigned NextInstance(int64_t LocalLabelVal); +    /// GetInstance() gets the current instance of the directional local label +    /// for the LocalLabelVal and adds it to the map if needed. +    unsigned GetInstance(int64_t LocalLabelVal);      /// Allocator - Allocator object used for creating machine code objects.      /// @@ -50,7 +60,7 @@ namespace llvm {      /// objects.      BumpPtrAllocator Allocator; -    void *MachOUniquingMap, *ELFUniquingMap; +    void *MachOUniquingMap, *ELFUniquingMap, *COFFUniquingMap;    public:      explicit MCContext(const MCAsmInfo &MAI);      ~MCContext(); @@ -64,6 +74,14 @@ namespace llvm {      /// with a unique but unspecified name.      MCSymbol *CreateTempSymbol(); +    /// CreateDirectionalLocalSymbol - Create the defintion of a directional +    /// local symbol for numbered label (used for "1:" defintions). +    MCSymbol *CreateDirectionalLocalSymbol(int64_t LocalLabelVal); + +    /// GetDirectionalLocalSymbol - Create and return a directional local +    /// symbol for numbered label (used for "1b" or 1f" references). +    MCSymbol *GetDirectionalLocalSymbol(int64_t LocalLabelVal, int bORf); +      /// GetOrCreateSymbol - Lookup the symbol inside with the specified      /// @p Name.  If it exists, return it.  If not, create a forward      /// reference and return it. @@ -97,6 +115,15 @@ namespace llvm {      const MCSection *getELFSection(StringRef Section, unsigned Type,                                     unsigned Flags, SectionKind Kind,                                     bool IsExplicit = false); + +    const MCSection *getCOFFSection(StringRef Section, unsigned Characteristics, +                                    int Selection, SectionKind Kind); + +    const MCSection *getCOFFSection(StringRef Section, unsigned Characteristics, +                                    SectionKind Kind) { +      return getCOFFSection (Section, Characteristics, 0, Kind); +    } +      /// @}  | 
