diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2017-06-06 01:49:30 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2017-06-06 01:49:30 +0200 |
commit | 30eeae75b90510af732cfe072efa74aaaeef1a04 (patch) | |
tree | 37a36497f62e00b4062e66c2c36c662420a4eaf6 | |
parent | 91cffd95d9b6ed2a4853b637d89b89ae89db4329 (diff) |
sparc64: fix compile with gcc 7.1
-rw-r--r-- | target/linux/patches/4.11.3/0001-sparc64.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/target/linux/patches/4.11.3/0001-sparc64.patch b/target/linux/patches/4.11.3/0001-sparc64.patch new file mode 100644 index 000000000..f75eb5a23 --- /dev/null +++ b/target/linux/patches/4.11.3/0001-sparc64.patch @@ -0,0 +1,70 @@ +From 1b4af13ff2cc6897557bb0b8d9e2fad4fa4d67aa Mon Sep 17 00:00:00 2001 +From: "David S. Miller" <davem@davemloft.net> +Date: Mon, 5 Jun 2017 11:28:57 -0700 +Subject: [PATCH] sparc64: Add __multi3 for gcc 7.x and later. + +Reported-by: Waldemar Brodkorb <wbx@openadk.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + arch/sparc/lib/Makefile | 1 + + arch/sparc/lib/multi3.S | 35 +++++++++++++++++++++++++++++++++++ + 2 files changed, 36 insertions(+) + create mode 100644 arch/sparc/lib/multi3.S + +diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile +index 69912d2..07c03e7 100644 +--- a/arch/sparc/lib/Makefile ++++ b/arch/sparc/lib/Makefile +@@ -15,6 +15,7 @@ lib-$(CONFIG_SPARC32) += copy_user.o locks.o + lib-$(CONFIG_SPARC64) += atomic_64.o + lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o + lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ++lib-$(CONFIG_SPARC64) += multi3.o + + lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o + lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o +diff --git a/arch/sparc/lib/multi3.S b/arch/sparc/lib/multi3.S +new file mode 100644 +index 0000000..d6b6c97 +--- /dev/null ++++ b/arch/sparc/lib/multi3.S +@@ -0,0 +1,35 @@ ++#include <linux/linkage.h> ++#include <asm/export.h> ++ ++ .text ++ .align 4 ++ENTRY(__multi3) /* %o0 = u, %o1 = v */ ++ mov %o1, %g1 ++ srl %o3, 0, %g4 ++ mulx %g4, %g1, %o1 ++ srlx %g1, 0x20, %g3 ++ mulx %g3, %g4, %g5 ++ sllx %g5, 0x20, %o5 ++ srl %g1, 0, %g4 ++ sub %o1, %o5, %o5 ++ srlx %o5, 0x20, %o5 ++ addcc %g5, %o5, %g5 ++ srlx %o3, 0x20, %o5 ++ mulx %g4, %o5, %g4 ++ mulx %g3, %o5, %o5 ++ sethi %hi(0x80000000), %g3 ++ addcc %g5, %g4, %g5 ++ srlx %g5, 0x20, %g5 ++ add %g3, %g3, %g3 ++ movcc %xcc, %g0, %g3 ++ addcc %o5, %g5, %o5 ++ sllx %g4, 0x20, %g4 ++ add %o1, %g4, %o1 ++ add %o5, %g3, %g2 ++ mulx %g1, %o2, %g1 ++ add %g1, %g2, %g1 ++ mulx %o0, %o3, %o0 ++ retl ++ add %g1, %o0, %o0 ++ENDPROC(__multi3) ++EXPORT_SYMBOL(__multi3) +-- +2.1.2.532.g19b5d50 + + |