[PATCH] [lld][mach-o] binary reader and writer
Michael Spencer
bigcheesegs at gmail.com
Mon Nov 4 18:14:53 PST 2013
Looks good here. Although I know very little about Mach-O :P
================
Comment at: lib/ReaderWriter/MachO/MachOLinkingContext.cpp:75-87
@@ -72,13 +74,15 @@
static ArchInfo archInfos[] = {
- { "x86_64", MachOLinkingContext::arch_x86_64, llvm::MachO::CPU_TYPE_X86_64,
- llvm::MachO::CPU_SUBTYPE_X86_64_ALL },
- { "i386", MachOLinkingContext::arch_x86, llvm::MachO::CPU_TYPE_I386,
- llvm::MachO::CPU_SUBTYPE_X86_ALL },
- { "armv6", MachOLinkingContext::arch_armv6, llvm::MachO::CPU_TYPE_ARM,
- llvm::MachO::CPU_SUBTYPE_ARM_V6 },
- { "armv7", MachOLinkingContext::arch_armv7, llvm::MachO::CPU_TYPE_ARM,
- llvm::MachO::CPU_SUBTYPE_ARM_V7 },
- { "armv7s", MachOLinkingContext::arch_armv7s, llvm::MachO::CPU_TYPE_ARM,
- llvm::MachO::CPU_SUBTYPE_ARM_V7S },
- { StringRef(), MachOLinkingContext::arch_unknown, 0, 0 }
+ { "x86_64", MachOLinkingContext::arch_x86_64, true,
+ llvm::MachO::CPU_TYPE_X86_64, llvm::MachO::CPU_SUBTYPE_X86_64_ALL },
+ { "i386", MachOLinkingContext::arch_x86, true,
+ llvm::MachO::CPU_TYPE_I386, llvm::MachO::CPU_SUBTYPE_X86_ALL },
+ { "ppc", MachOLinkingContext::arch_ppc, false,
+ llvm::MachO::CPU_TYPE_POWERPC, llvm::MachO::CPU_SUBTYPE_POWERPC_ALL },
+ { "armv6", MachOLinkingContext::arch_armv6, true,
+ llvm::MachO::CPU_TYPE_ARM, llvm::MachO::CPU_SUBTYPE_ARM_V6 },
+ { "armv7", MachOLinkingContext::arch_armv7, true,
+ llvm::MachO::CPU_TYPE_ARM, llvm::MachO::CPU_SUBTYPE_ARM_V7 },
+ { "armv7s", MachOLinkingContext::arch_armv7s, true,
+ llvm::MachO::CPU_TYPE_ARM, llvm::MachO::CPU_SUBTYPE_ARM_V7S },
+ { StringRef(), MachOLinkingContext::arch_unknown, false, 0, 0 }
};
----------------
Indentation is weird here.
================
Comment at: lib/ReaderWriter/MachO/MachOLinkingContext.cpp:156-164
@@ +155,11 @@
+
+bool MachOLinkingContext::isOtherEndian(Arch arch) {
+ assert(arch != arch_unknown);
+ for (ArchInfo *info = archInfos; !info->archName.empty(); ++info) {
+ if (info->arch == arch) {
+ return (info->littleEndian != llvm::sys::IsLittleEndianHost);
+ }
+ }
+ llvm_unreachable("Unknown arch type");
+}
+
----------------
This is an odd name for this function. It should mention host.
http://llvm-reviews.chandlerc.com/D2101
BRANCH
svn
ARCANIST PROJECT
lld
More information about the llvm-commits
mailing list