Commits
Jeremy Huddleston Sequoia authored 53ae4562466
1 + | From 3b3932ac16c4ce7d21e0801efef9e1c73d4e0c20 Mon Sep 17 00:00:00 2001 |
2 + | From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> |
3 + | Date: Sat, 17 Jan 2015 09:03:43 -0800 |
4 + | Subject: [PATCH 1/4] Set the Mach-O CPU Subtype to ppc7400 when targeting |
5 + | Leopard |
6 + | |
7 + | http://llvm.org/bugs/show_bug.cgi?id=18463 |
8 + | |
9 + | Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> |
10 + | --- |
11 + | lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp | 13 ++++++++++--- |
12 + | 1 file changed, 10 insertions(+), 3 deletions(-) |
13 + | |
14 + | diff --git llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp |
15 + | index a405dd70c30..b1b62146d3b 100644 |
16 + | --- llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp |
17 + | +++ macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp |
18 + | |
19 + | // FIXME: This should be in a separate file. |
20 + | namespace { |
21 + | class DarwinPPCAsmBackend : public PPCAsmBackend { |
22 + | + Triple TheTriple; |
23 + | public: |
24 + | - DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, support::big) { } |
25 + | + DarwinPPCAsmBackend(const Target &T, const Triple &TT) : PPCAsmBackend(T, support::big), TheTriple(TT) { } |
26 + | |
27 + | std::unique_ptr<MCObjectTargetWriter> |
28 + | createObjectTargetWriter() const override { |
29 + | bool is64 = getPointerSize() == 8; |
30 + | + MachO::CPUSubTypePowerPC CS = MachO::CPU_SUBTYPE_POWERPC_ALL; |
31 + | + |
32 + | + if (TheTriple.isOSDarwin() && !TheTriple.isMacOSXVersionLT(10,5)) { |
33 + | + CS = MachO::CPU_SUBTYPE_POWERPC_7400; |
34 + | + } |
35 + | + |
36 + | return createPPCMachObjectWriter( |
37 + | /*Is64Bit=*/is64, |
38 + | (is64 ? MachO::CPU_TYPE_POWERPC64 : MachO::CPU_TYPE_POWERPC), |
39 + | - MachO::CPU_SUBTYPE_POWERPC_ALL); |
40 + | + CS); |
41 + | } |
42 + | }; |
43 + | |
44 + | |
45 + | const MCTargetOptions &Options) { |
46 + | const Triple &TT = STI.getTargetTriple(); |
47 + | if (TT.isOSDarwin()) |
48 + | - return new DarwinPPCAsmBackend(T); |
49 + | + return new DarwinPPCAsmBackend(T, TT); |
50 + | |
51 + | uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS()); |
52 + | bool IsLittleEndian = TT.getArch() == Triple::ppc64le; |
53 + | -- |
54 + | 2.17.1 (Apple Git-112) |
55 + | |