[ARM64] Port over missing subtarget features, and CPU definitions from AArch64.

llvm-svn: 206198
diff --git a/llvm/lib/Target/ARM64/ARM64Subtarget.cpp b/llvm/lib/Target/ARM64/ARM64Subtarget.cpp
index 14b5444..30c1264 100644
--- a/llvm/lib/Target/ARM64/ARM64Subtarget.cpp
+++ b/llvm/lib/Target/ARM64/ARM64Subtarget.cpp
@@ -26,12 +26,15 @@
 
 ARM64Subtarget::ARM64Subtarget(const std::string &TT, const std::string &CPU,
                                const std::string &FS)
-    : ARM64GenSubtargetInfo(TT, CPU, FS), HasZeroCycleRegMove(false),
-      HasZeroCycleZeroing(false), CPUString(CPU), TargetTriple(TT) {
+    : ARM64GenSubtargetInfo(TT, CPU, FS), ARMProcFamily(Others),
+      HasFPARMv8(false), HasNEON(false), HasCrypto(false),
+      HasZeroCycleRegMove(false), HasZeroCycleZeroing(false),
+      CPUString(CPU), TargetTriple(TT) {
   // Determine default and user-specified characteristics
 
+  // FIXME: Make this darwin-only.
   if (CPUString.empty())
-    // We default to Cyclone for now.
+    // We default to Cyclone for now, on Darwin.
     CPUString = "cyclone";
 
   ParseSubtargetFeatures(CPUString, FS);