[llvm-commits] [llvm] r111172 - in /llvm/trunk: include/llvm/MC/MCSectionELF.h include/llvm/MC/MCStreamer.h include/llvm/Support/ELF.h lib/MC/CMakeLists.txt lib/MC/MCContext.cpp
Eli Friedman
eli.friedman at gmail.com
Mon Aug 16 11:56:23 PDT 2010
Incomplete commit?
-Eli
On Mon, Aug 16, 2010 at 11:35 AM, Matt Fleming <matt at console-pimps.org> wrote:
> Author: mfleming
> Date: Mon Aug 16 13:35:43 2010
> New Revision: 111172
>
> URL: http://llvm.org/viewvc/llvm-project?rev=111172&view=rev
> Log:
> Add ELF ObjectWriter and Streamer support.
>
> Modified:
> llvm/trunk/include/llvm/MC/MCSectionELF.h
> llvm/trunk/include/llvm/MC/MCStreamer.h
> llvm/trunk/include/llvm/Support/ELF.h
> llvm/trunk/lib/MC/CMakeLists.txt
> llvm/trunk/lib/MC/MCContext.cpp
>
> Modified: llvm/trunk/include/llvm/MC/MCSectionELF.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCSectionELF.h?rev=111172&r1=111171&r2=111172&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCSectionELF.h (original)
> +++ llvm/trunk/include/llvm/MC/MCSectionELF.h Mon Aug 16 13:35:43 2010
> @@ -44,9 +44,9 @@
> private:
> friend class MCContext;
> MCSectionELF(StringRef Section, unsigned type, unsigned flags,
> - SectionKind K, bool isExplicit)
> + SectionKind K, bool isExplicit, unsigned entrySize)
> : MCSection(SV_ELF, K), SectionName(Section), Type(type), Flags(flags),
> - IsExplicit(isExplicit) {}
> + IsExplicit(isExplicit), EntrySize(entrySize) {}
> ~MCSectionELF();
> public:
>
> @@ -174,6 +174,7 @@
> StringRef getSectionName() const { return SectionName; }
> unsigned getType() const { return Type; }
> unsigned getFlags() const { return Flags; }
> + unsigned getEntrySize() const { return EntrySize; }
>
> void PrintSwitchToSection(const MCAsmInfo &MAI,
> raw_ostream &OS) const;
>
> Modified: llvm/trunk/include/llvm/MC/MCStreamer.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCStreamer.h?rev=111172&r1=111171&r2=111172&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCStreamer.h (original)
> +++ llvm/trunk/include/llvm/MC/MCStreamer.h Mon Aug 16 13:35:43 2010
> @@ -359,6 +359,12 @@
> MCCodeEmitter &CE, raw_ostream &OS,
> bool RelaxAll = false);
>
> + /// createELFStreamer - Create a machine code streamer which will generate
> + /// ELF format object files.
> + MCStreamer *createELFStreamer(MCContext &Ctx, TargetAsmBackend &TAB,
> + raw_ostream &OS, MCCodeEmitter *CE,
> + bool RelaxAll = false);
> +
> /// createLoggingStreamer - Create a machine code streamer which just logs the
> /// API calls and then dispatches to another streamer.
> ///
>
> Modified: llvm/trunk/include/llvm/Support/ELF.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/ELF.h?rev=111172&r1=111171&r2=111172&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/ELF.h (original)
> +++ llvm/trunk/include/llvm/Support/ELF.h Mon Aug 16 13:35:43 2010
> @@ -330,6 +330,12 @@
> }
> };
>
> +// The size (in bytes) of symbol table entries.
> +enum {
> + SYMENTRY_SIZE32 = 16, // 32-bit symbol entry size
> + SYMENTRY_SIZE64 = 24 // 64-bit symbol entry size.
> +};
> +
> // Symbol bindings.
> enum {
> STB_LOCAL = 0, // Local symbol, not visible outside obj file containing def
>
> Modified: llvm/trunk/lib/MC/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/CMakeLists.txt?rev=111172&r1=111171&r2=111172&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/CMakeLists.txt (original)
> +++ llvm/trunk/lib/MC/CMakeLists.txt Mon Aug 16 13:35:43 2010
> @@ -1,4 +1,5 @@
> add_llvm_library(LLVMMC
> + ELFObjectWriter.cpp
> MCAsmInfo.cpp
> MCAsmInfoCOFF.cpp
> MCAsmInfoDarwin.cpp
> @@ -7,6 +8,7 @@
> MCCodeEmitter.cpp
> MCContext.cpp
> MCDisassembler.cpp
> + MCELFStreamer.cpp
> MCExpr.cpp
> MCInst.cpp
> MCInstPrinter.cpp
>
> Modified: llvm/trunk/lib/MC/MCContext.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCContext.cpp?rev=111172&r1=111171&r2=111172&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCContext.cpp (original)
> +++ llvm/trunk/lib/MC/MCContext.cpp Mon Aug 16 13:35:43 2010
> @@ -148,7 +148,7 @@
>
> const MCSection *MCContext::
> getELFSection(StringRef Section, unsigned Type, unsigned Flags,
> - SectionKind Kind, bool IsExplicit) {
> + SectionKind Kind, bool IsExplicit, unsigned EntrySize) {
> if (ELFUniquingMap == 0)
> ELFUniquingMap = new ELFUniqueMapTy();
> ELFUniqueMapTy &Map = *(ELFUniqueMapTy*)ELFUniquingMap;
> @@ -158,7 +158,7 @@
> if (Entry.getValue()) return Entry.getValue();
>
> MCSectionELF *Result = new (*this) MCSectionELF(Entry.getKey(), Type, Flags,
> - Kind, IsExplicit);
> + Kind, IsExplicit, EntrySize);
> Entry.setValue(Result);
> return Result;
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list