summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MachObjectWriter.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-11-05 18:48:58 +0000
committerJim Grosbach <grosbach@apple.com>2010-11-05 18:48:58 +0000
commit46c2acbcb44d1c5982c05510ff992701cb952d84 (patch)
tree852ee1132897bb5227ccb1bb913247b67ad79022 /llvm/lib/MC/MachObjectWriter.cpp
parentc75bb744e1c450f514731acff0e84dc2e9085bad (diff)
downloadbcm5719-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.cpp20
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() {
OpenPOWER on IntegriCloud