From c5680ed072873dddfb520a7ae7c8fb7863c780c0 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Tue, 9 Jun 2015 12:47:50 +0000 Subject: [PATCH] gcc: add patch for aarch64 to not ICE on mysql. --- .../gcc-4.9-aarch64-local-atomic.patch | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 srcpkgs/gcc/patches/gcc-4.9-aarch64-local-atomic.patch diff --git a/srcpkgs/gcc/patches/gcc-4.9-aarch64-local-atomic.patch b/srcpkgs/gcc/patches/gcc-4.9-aarch64-local-atomic.patch new file mode 100644 index 0000000000..eecb2775a2 --- /dev/null +++ b/srcpkgs/gcc/patches/gcc-4.9-aarch64-local-atomic.patch @@ -0,0 +1,71 @@ +https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02209.html +via https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01844.html + +--- gcc/config/aarch64/iterators.md 2014-09-22 10:10:04.520258964 -0700 ++++ gcc/config/aarch64/iterators.md 2014-09-16 14:27:10.459050672 -0700 +@@ -349,6 +349,9 @@ + ;; Attribute to describe constants acceptable in logical operations + (define_mode_attr lconst [(SI "K") (DI "L")]) + ++;; Attribute to describe constants acceptable in atomic logical operations ++(define_mode_attr lconst_atomic [(QI "K") (HI "K") (SI "K") (DI "L")]) ++ + ;; Map a mode to a specific constraint character. + (define_mode_attr cmode [(QI "q") (HI "h") (SI "s") (DI "d")]) + +--- gcc/config/aarch64/atomics.md 2014-07-03 21:55:36.083476668 -0700 ++++ gcc/config/aarch64/atomics.md 2014-09-16 14:27:10.459050672 -0700 +@@ -119,7 +119,7 @@ + [(set (match_operand:ALLI 0 "aarch64_sync_memory_operand" "+Q") + (unspec_volatile:ALLI + [(atomic_op:ALLI (match_dup 0) +- (match_operand:ALLI 1 "" "rn")) ++ (match_operand:ALLI 1 "" "r")) + (match_operand:SI 2 "const_int_operand")] ;; model + UNSPECV_ATOMIC_OP)) + (clobber (reg:CC CC_REGNUM)) +@@ -141,7 +141,7 @@ + (unspec_volatile:ALLI + [(not:ALLI + (and:ALLI (match_dup 0) +- (match_operand:ALLI 1 "aarch64_logical_operand" "rn"))) ++ (match_operand:ALLI 1 "aarch64_logical_operand" "r"))) + (match_operand:SI 2 "const_int_operand")] ;; model + UNSPECV_ATOMIC_OP)) + (clobber (reg:CC CC_REGNUM)) +@@ -164,7 +164,7 @@ + (set (match_dup 1) + (unspec_volatile:ALLI + [(atomic_op:ALLI (match_dup 1) +- (match_operand:ALLI 2 "" "rn")) ++ (match_operand:ALLI 2 "" "r")) + (match_operand:SI 3 "const_int_operand")] ;; model + UNSPECV_ATOMIC_OP)) + (clobber (reg:CC CC_REGNUM)) +@@ -188,7 +188,7 @@ + (unspec_volatile:ALLI + [(not:ALLI + (and:ALLI (match_dup 1) +- (match_operand:ALLI 2 "aarch64_logical_operand" "rn"))) ++ (match_operand:ALLI 2 "aarch64_logical_operand" "r"))) + (match_operand:SI 3 "const_int_operand")] ;; model + UNSPECV_ATOMIC_OP)) + (clobber (reg:CC CC_REGNUM)) +@@ -209,7 +209,7 @@ + [(set (match_operand:ALLI 0 "register_operand" "=&r") + (atomic_op:ALLI + (match_operand:ALLI 1 "aarch64_sync_memory_operand" "+Q") +- (match_operand:ALLI 2 "" "rn"))) ++ (match_operand:ALLI 2 "" "r"))) + (set (match_dup 1) + (unspec_volatile:ALLI + [(match_dup 1) (match_dup 2) +@@ -233,7 +233,7 @@ + (not:ALLI + (and:ALLI + (match_operand:ALLI 1 "aarch64_sync_memory_operand" "+Q") +- (match_operand:ALLI 2 "aarch64_logical_operand" "rn")))) ++ (match_operand:ALLI 2 "aarch64_logical_operand" "r")))) + (set (match_dup 1) + (unspec_volatile:ALLI + [(match_dup 1) (match_dup 2)