Skip to content

Commit 178c0bf

Browse files
author
git apple-llvm automerger
committed
Merge commit '755a1334468e' from apple/stable/20210107 into swift/rebranch
2 parents fe13307 + 755a133 commit 178c0bf

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

lldb/include/lldb/Utility/ArchSpec.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ class ArchSpec {
125125
eCore_arm_arm64,
126126
eCore_arm_armv8,
127127
eCore_arm_armv8l,
128+
eCore_arm_arm64e,
128129
eCore_arm_arm64_32,
129130
eCore_arm_aarch64,
130131

lldb/source/Utility/ArchSpec.cpp

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@ static const CoreDefinition g_core_definitions[] = {
9999
ArchSpec::eCore_arm_arm64, "arm64"},
100100
{eByteOrderLittle, 8, 4, 4, llvm::Triple::aarch64,
101101
ArchSpec::eCore_arm_armv8, "armv8"},
102-
{eByteOrderLittle, 4, 2, 4, llvm::Triple::arm,
103-
ArchSpec::eCore_arm_armv8l, "armv8l"},
102+
{eByteOrderLittle, 4, 2, 4, llvm::Triple::arm, ArchSpec::eCore_arm_armv8l,
103+
"armv8l"},
104+
{eByteOrderLittle, 8, 4, 4, llvm::Triple::aarch64,
105+
ArchSpec::eCore_arm_arm64e, "arm64e"},
104106
{eByteOrderLittle, 4, 4, 4, llvm::Triple::aarch64_32,
105107
ArchSpec::eCore_arm_arm64_32, "arm64_32"},
106108
{eByteOrderLittle, 8, 4, 4, llvm::Triple::aarch64,
@@ -283,8 +285,7 @@ static const ArchDefinitionEntry g_macho_arch_entries[] = {
283285
{ArchSpec::eCore_arm_armv7k, llvm::MachO::CPU_TYPE_ARM, llvm::MachO::CPU_SUBTYPE_ARM_V7K, UINT32_MAX, SUBTYPE_MASK},
284286
{ArchSpec::eCore_arm_armv7m, llvm::MachO::CPU_TYPE_ARM, llvm::MachO::CPU_SUBTYPE_ARM_V7M, UINT32_MAX, SUBTYPE_MASK},
285287
{ArchSpec::eCore_arm_armv7em, llvm::MachO::CPU_TYPE_ARM, llvm::MachO::CPU_SUBTYPE_ARM_V7EM, UINT32_MAX, SUBTYPE_MASK},
286-
// FIXME: This should be arm64e once the triple exists.
287-
{ArchSpec::eCore_arm_arm64, llvm::MachO::CPU_TYPE_ARM64, llvm::MachO::CPU_SUBTYPE_ARM64E, UINT32_MAX, SUBTYPE_MASK},
288+
{ArchSpec::eCore_arm_arm64e, llvm::MachO::CPU_TYPE_ARM64, llvm::MachO::CPU_SUBTYPE_ARM64E, UINT32_MAX, SUBTYPE_MASK},
288289
{ArchSpec::eCore_arm_arm64, llvm::MachO::CPU_TYPE_ARM64, llvm::MachO::CPU_SUBTYPE_ARM64_V8, UINT32_MAX, SUBTYPE_MASK},
289290
{ArchSpec::eCore_arm_arm64, llvm::MachO::CPU_TYPE_ARM64, llvm::MachO::CPU_SUBTYPE_ARM64_ALL, UINT32_MAX, SUBTYPE_MASK},
290291
{ArchSpec::eCore_arm_arm64, llvm::MachO::CPU_TYPE_ARM64, 13, UINT32_MAX, SUBTYPE_MASK},
@@ -1189,16 +1190,31 @@ static bool cores_match(const ArchSpec::Core core1, const ArchSpec::Core core2,
11891190
return true;
11901191
if (core2 == ArchSpec::eCore_arm_aarch64)
11911192
return true;
1193+
if (core2 == ArchSpec::eCore_arm_arm64e)
1194+
return true;
11921195
try_inverse = false;
11931196
}
11941197
break;
11951198

1199+
case ArchSpec::eCore_arm_arm64e:
1200+
if (!enforce_exact_match) {
1201+
if (core2 == ArchSpec::eCore_arm_arm64)
1202+
return true;
1203+
if (core2 == ArchSpec::eCore_arm_aarch64)
1204+
return true;
1205+
if (core2 == ArchSpec::eCore_arm_armv8)
1206+
return true;
1207+
try_inverse = false;
1208+
}
1209+
break;
11961210
case ArchSpec::eCore_arm_aarch64:
11971211
if (!enforce_exact_match) {
11981212
if (core2 == ArchSpec::eCore_arm_arm64)
11991213
return true;
12001214
if (core2 == ArchSpec::eCore_arm_armv8)
12011215
return true;
1216+
if (core2 == ArchSpec::eCore_arm_arm64e)
1217+
return true;
12021218
try_inverse = false;
12031219
}
12041220
break;
@@ -1209,6 +1225,8 @@ static bool cores_match(const ArchSpec::Core core1, const ArchSpec::Core core2,
12091225
return true;
12101226
if (core2 == ArchSpec::eCore_arm_armv8)
12111227
return true;
1228+
if (core2 == ArchSpec::eCore_arm_arm64e)
1229+
return true;
12121230
try_inverse = false;
12131231
}
12141232
break;

llvm/tools/dsymutil/BinaryHolder.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ Error BinaryHolder::ObjectEntry::load(IntrusiveRefCntPtr<vfs::FileSystem> VFS,
100100
llvm::ErrorOr<vfs::Status> Stat = VFS->status(Filename);
101101
if (!Stat)
102102
return errorCodeToError(Stat.getError());
103-
if (Timestamp != Stat->getLastModificationTime())
103+
if (Timestamp != std::chrono::time_point_cast<std::chrono::seconds>(
104+
Stat->getLastModificationTime()))
104105
WithColor::warning() << Filename
105106
<< ": timestamp mismatch between object file ("
106107
<< Stat->getLastModificationTime()
@@ -192,7 +193,8 @@ BinaryHolder::ArchiveEntry::getObjectEntry(StringRef Filename,
192193
return ModTimeOrErr.takeError();
193194

194195
if (Timestamp != sys::TimePoint<>() &&
195-
Timestamp != ModTimeOrErr.get()) {
196+
Timestamp != std::chrono::time_point_cast<std::chrono::seconds>(
197+
ModTimeOrErr.get())) {
196198
if (Verbose)
197199
WithColor::warning()
198200
<< *NameOrErr

0 commit comments

Comments
 (0)