Index: lib/CodeGen/CGObjCMac.cpp =================================================================== RCS file: /cvsroot/src/external/bsd/llvm/dist/clang/lib/CodeGen/CGObjCMac.cpp,v retrieving revision 1.1.1.8 diff -p -u -u -r1.1.1.8 CGObjCMac.cpp --- lib/CodeGen/CGObjCMac.cpp 27 Feb 2016 22:12:10 -0000 1.1.1.8 +++ lib/CodeGen/CGObjCMac.cpp 19 Oct 2016 19:49:19 -0000 @@ -5154,7 +5154,8 @@ ObjCCommonTypesHelper::ObjCCommonTypesHe // arm64 targets use "int" ivar offset variables. All others, // including OS X x86_64 and Windows x86_64, use "long" ivar offsets. - if (CGM.getTarget().getTriple().getArch() == llvm::Triple::aarch64) + if (CGM.getTarget().getTriple().getArch() == llvm::Triple::aarch64 || + CGM.getTarget().getTriple().getArch() == llvm::Triple::aarch64_be) IvarOffsetVarTy = IntTy; else IvarOffsetVarTy = LongTy; Index: lib/Driver/ToolChain.cpp =================================================================== RCS file: /cvsroot/src/external/bsd/llvm/dist/clang/lib/Driver/ToolChain.cpp,v retrieving revision 1.1.1.9 diff -p -u -u -r1.1.1.9 ToolChain.cpp --- lib/Driver/ToolChain.cpp 27 Feb 2016 22:12:04 -0000 1.1.1.9 +++ lib/Driver/ToolChain.cpp 19 Oct 2016 19:49:19 -0000 @@ -426,6 +426,11 @@ std::string ToolChain::ComputeLLVMTriple } return Triple.getTriple(); } + case llvm::Triple::aarch64_be: { + llvm::Triple Triple = getTriple(); + Triple.setArchName("arm64eb"); + return Triple.getTriple(); + } case llvm::Triple::aarch64: { llvm::Triple Triple = getTriple(); if (!Triple.isOSBinFormatMachO()) Index: lib/Driver/ToolChains.cpp =================================================================== RCS file: /cvsroot/src/external/bsd/llvm/dist/clang/lib/Driver/ToolChains.cpp,v retrieving revision 1.1.1.12 diff -p -u -u -r1.1.1.12 ToolChains.cpp --- lib/Driver/ToolChains.cpp 27 Feb 2016 22:12:05 -0000 1.1.1.12 +++ lib/Driver/ToolChains.cpp 19 Oct 2016 19:49:19 -0000 @@ -3242,6 +3242,7 @@ ToolChain::CXXStdlibType NetBSD::GetCXXS if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 49) || Major == 0) { switch (getArch()) { case llvm::Triple::aarch64: + case llvm::Triple::aarch64_be: case llvm::Triple::arm: case llvm::Triple::armeb: case llvm::Triple::thumb: Index: lib/Driver/Tools.cpp =================================================================== RCS file: /cvsroot/src/external/bsd/llvm/dist/clang/lib/Driver/Tools.cpp,v retrieving revision 1.1.1.12 diff -p -u -u -r1.1.1.12 Tools.cpp --- lib/Driver/Tools.cpp 3 Sep 2016 23:12:03 -0000 1.1.1.12 +++ lib/Driver/Tools.cpp 19 Oct 2016 19:49:19 -0000 @@ -3280,6 +3280,7 @@ ParsePICArgs(const ToolChain &ToolChain, case llvm::Triple::thumb: case llvm::Triple::thumbeb: case llvm::Triple::aarch64: + case llvm::Triple::aarch64_be: case llvm::Triple::mips: case llvm::Triple::mipsel: case llvm::Triple::mips64: @@ -8311,6 +8312,7 @@ void netbsd::Linker::ConstructJob(Compil if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 49) || Major == 0) { switch (getToolChain().getArch()) { case llvm::Triple::aarch64: + case llvm::Triple::aarch64_be: case llvm::Triple::arm: case llvm::Triple::armeb: case llvm::Triple::thumb: Index: lib/Sema/SemaChecking.cpp =================================================================== RCS file: /cvsroot/src/external/bsd/llvm/dist/clang/lib/Sema/SemaChecking.cpp,v retrieving revision 1.1.1.10 diff -p -u -u -r1.1.1.10 SemaChecking.cpp --- lib/Sema/SemaChecking.cpp 27 Feb 2016 22:11:57 -0000 1.1.1.10 +++ lib/Sema/SemaChecking.cpp 19 Oct 2016 19:49:19 -0000 @@ -716,7 +716,8 @@ bool Sema::CheckNeonBuiltinFunctionCall( QualType RHSTy = RHS.get()->getType(); llvm::Triple::ArchType Arch = Context.getTargetInfo().getTriple().getArch(); - bool IsPolyUnsigned = Arch == llvm::Triple::aarch64; + bool IsPolyUnsigned = Arch == llvm::Triple::aarch64 || + Arch == llvm::Triple::aarch64_be; bool IsInt64Long = Context.getTargetInfo().getInt64Type() == TargetInfo::SignedLong; QualType EltTy =