mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-03 16:21:41 +00:00
Add support for 64-bit object files to Path.
llvm-svn: 129975
This commit is contained in:
parent
f030d7f487
commit
2c662fa29e
@ -92,15 +92,21 @@ sys::IdentifyFileType(const char *magic, unsigned length) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// The two magic numbers for mach-o are:
|
||||||
|
// 0xfeedface - 32-bit mach-o
|
||||||
|
// 0xfeedfacf - 64-bit mach-o
|
||||||
case 0xFE:
|
case 0xFE:
|
||||||
case 0xCE: {
|
case 0xCE:
|
||||||
|
case 0xCF: {
|
||||||
uint16_t type = 0;
|
uint16_t type = 0;
|
||||||
if (magic[0] == char(0xFE) && magic[1] == char(0xED) &&
|
if (magic[0] == char(0xFE) && magic[1] == char(0xED) &&
|
||||||
magic[2] == char(0xFA) && magic[3] == char(0xCE)) {
|
magic[2] == char(0xFA) &&
|
||||||
|
(magic[3] == char(0xCE) || magic[3] == char(0xCF))) {
|
||||||
/* Native endian */
|
/* Native endian */
|
||||||
if (length >= 16) type = magic[14] << 8 | magic[15];
|
if (length >= 16) type = magic[14] << 8 | magic[15];
|
||||||
} else if (magic[0] == char(0xCE) && magic[1] == char(0xFA) &&
|
} else if ((magic[0] == char(0xCE) || magic[0] == char(0xCF)) &&
|
||||||
magic[2] == char(0xED) && magic[3] == char(0xFE)) {
|
magic[1] == char(0xFA) && magic[2] == char(0xED) &&
|
||||||
|
magic[3] == char(0xFE)) {
|
||||||
/* Reverse endian */
|
/* Reverse endian */
|
||||||
if (length >= 14) type = magic[13] << 8 | magic[12];
|
if (length >= 14) type = magic[13] << 8 | magic[12];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user