diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-11-05 18:48:58 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-11-05 18:48:58 +0000 |
commit | 46c2acbcb44d1c5982c05510ff992701cb952d84 (patch) | |
tree | 852ee1132897bb5227ccb1bb913247b67ad79022 /llvm/lib/MC/MachObjectWriter.cpp | |
parent | c75bb744e1c450f514731acff0e84dc2e9085bad (diff) | |
download | bcm5719-llvm-46c2acbcb44d1c5982c05510ff992701cb952d84.tar.gz bcm5719-llvm-46c2acbcb44d1c5982c05510ff992701cb952d84.zip |
Allow targets to specify the MachO CPUType/CPUSubtype information.
llvm-svn: 118288
Diffstat (limited to 'llvm/lib/MC/MachObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index 61df5bb35c7..e98d27d73e2 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/lib/MC/MachObjectWriter.cpp @@ -290,9 +290,14 @@ class MachObjectWriterImpl { unsigned Is64Bit : 1; + uint32_t CPUType; + uint32_t CPUSubtype; + public: - MachObjectWriterImpl(MachObjectWriter *_Writer, bool _Is64Bit) - : Writer(_Writer), OS(Writer->getStream()), Is64Bit(_Is64Bit) { + MachObjectWriterImpl(MachObjectWriter *_Writer, bool _Is64Bit, + uint32_t _CPUType, uint32_t _CPUSubtype) + : Writer(_Writer), OS(Writer->getStream()), Is64Bit(_Is64Bit), + CPUType(_CPUType), CPUSubtype(_CPUSubtype) { } void Write8(uint8_t Value) { Writer->Write8(Value); } @@ -319,10 +324,9 @@ public: Write32(Is64Bit ? Header_Magic64 : Header_Magic32); - // FIXME: Support cputype. - Write32(Is64Bit ? MachO::CPUTypeX86_64 : MachO::CPUTypeI386); - // FIXME: Support cpusubtype. - Write32(MachO::CPUSubType_I386_ALL); + Write32(CPUType); + Write32(CPUSubtype); + Write32(HFT_Object); Write32(NumLoadCommands); // Object files have a single load command, the // segment. @@ -1329,10 +1333,12 @@ public: MachObjectWriter::MachObjectWriter(raw_ostream &OS, bool Is64Bit, + uint32_t CPUType, + uint32_t CPUSubtype, bool IsLittleEndian) : MCObjectWriter(OS, IsLittleEndian) { - Impl = new MachObjectWriterImpl(this, Is64Bit); + Impl = new MachObjectWriterImpl(this, Is64Bit, CPUType, CPUSubtype); } MachObjectWriter::~MachObjectWriter() { |