diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0cf0edbd36e7d644579de0673d259fefd47ef483..daaa8c8f7c5dc35bee137692176937dffc70c65b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+	PR target/90588
+	* common/config/aarch64/aarch64-common.c
+	(aarch64_rewrite_selected_cpu): Change local temporary variable
+	type from unsigned long to uint64_t.
+	* config/aarch64/aarch64-protos.h (aarch64_parse_extension,
+	aarch64_get_extension_string_for_isa_flags): Change declaration to
+	match new definition by replacing unsigned long with uint64_t.
+
 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
 
 	PR target/90568
diff --git a/gcc/common/config/aarch64/aarch64-common.c b/gcc/common/config/aarch64/aarch64-common.c
index f9051056589861ce0ffe1bae4fa04cf44d34b9a2..07c032539513eec8c9e7f800c35454d81d627301 100644
--- a/gcc/common/config/aarch64/aarch64-common.c
+++ b/gcc/common/config/aarch64/aarch64-common.c
@@ -541,7 +541,7 @@ aarch64_rewrite_selected_cpu (const char *name)
       || a_to_an->arch == aarch64_no_arch)
     fatal_error (input_location, "unknown value %qs for %<-mcpu%>", name);
 
-  unsigned long extensions = p_to_a->flags;
+  uint64_t extensions = p_to_a->flags;
   aarch64_parse_extension (extension_str.c_str (), &extensions, NULL);
 
   std::string outstr = a_to_an->arch_name
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index b6c0d0a8eb6c1bbc6d0524fbf98686fa9ef9613d..a0723266f22454ce3d4d57830573acdebc96489c 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -624,11 +624,10 @@ bool aarch64_handle_option (struct gcc_options *, struct gcc_options *,
 			     const struct cl_decoded_option *, location_t);
 const char *aarch64_rewrite_selected_cpu (const char *name);
 enum aarch64_parse_opt_result aarch64_parse_extension (const char *,
-						       unsigned long *,
+						       uint64_t *,
 						       std::string *);
 void aarch64_get_all_extension_candidates (auto_vec<const char *> *candidates);
-std::string aarch64_get_extension_string_for_isa_flags (unsigned long,
-							unsigned long);
+std::string aarch64_get_extension_string_for_isa_flags (uint64_t, uint64_t);
 
 /* Defined in aarch64-d.c  */
 extern void aarch64_d_target_versions (void);