From patchwork Tue Jun 6 19:10:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Palmer Dabbelt X-Patchwork-Id: 9769735 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 23F2560364 for ; Tue, 6 Jun 2017 19:14:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1074823B23 for ; Tue, 6 Jun 2017 19:14:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 03553251F4; Tue, 6 Jun 2017 19:14:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5C6C523B23 for ; Tue, 6 Jun 2017 19:14:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751588AbdFFTN7 (ORCPT ); Tue, 6 Jun 2017 15:13:59 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:32931 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751792AbdFFTKq (ORCPT ); Tue, 6 Jun 2017 15:10:46 -0400 Received: by mail-pf0-f196.google.com with SMTP id f27so25182109pfe.0 for ; Tue, 06 Jun 2017 12:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=from:to:to:to:to:to:to:to:to:to:to:to:to:to:cc:subject:date :message-id:in-reply-to:references; bh=I+fr6Mm21zrgIPp4UTkPmjaP4fWEqHvdA+EeHaFptok=; b=EU4egGBbMk/10/XqIOExtI8K3a3nJ8RiMOnbnxJliXWXjJEuntIx+PeMnFyk5b+YHT AMz3DCDvArAcC5AATzBadCaBPsBwZAjMQD1Q525egGBcL2sCSWcqbSuhnFq5Pfu6sqgr dZvx3pxM1i9hqZbBPHEYPgYtCCvhUL8+wNbVYmDdPtkjgxIgJqXz7erN9H4QRIdiwk22 zxXyX8XXsuZR5vN0mmq9fgP/yyyupOyvmpfZDjxOqnjGePP0pLVJQlKW15afCl260LGT GlzVOeRGbpkFczVW3ZVXfc7xEeBStU5tnN8mbwmqiOwp5UvMAt/l2a0wgGu5yPMFBY7K /Uyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:to:to:to:to:to:to:to:to:to:to:to:to:cc :subject:date:message-id:in-reply-to:references; bh=I+fr6Mm21zrgIPp4UTkPmjaP4fWEqHvdA+EeHaFptok=; b=Q6LevrIiWzpKnFjS4fx2v4SibotXWnH/fRwxvetxU/OaqPbCWyjekhF4xD3E3Bcx83 BgNcRn6Rq/9Ah9PdjpYnc3d1cC/q9nWWndDRXrmQ7AXSY32pUuRGONQeamFK4qkvG7W3 x/DJu5x0pFZUZBa60ZzV5xN0I5CykSkxw0/vInAezxpWGbrmrsjAAb3qT71WekCh3Atq t9BS+43AZaQihUHV4AOyEo8PpMq1ARwkinYgEh9WVf/p4YJTCbraNzHTxvf5LKGY5sxm rsK70cpyJQHl5PRfP0Kj3ak1Kei5fbIOjzaAOnTfHuroYPogCLR0CIujTXGN8Dp7MRva 0ayQ== X-Gm-Message-State: AODbwcCLcXruUpIaUhApqQh7/9duQ9SxFC6o+Ec3Brf+LDWpbQONb+yv p5H5kXy/XLDt3B/1 X-Received: by 10.98.68.2 with SMTP id r2mr27079980pfa.45.1496776235242; Tue, 06 Jun 2017 12:10:35 -0700 (PDT) Received: from localhost ([216.38.154.21]) by smtp.gmail.com with ESMTPSA id c23sm56892065pfh.131.2017.06.06.12.10.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Jun 2017 12:10:34 -0700 (PDT) From: Palmer Dabbelt To: monstr@monstr.eu To: ralf@linux-mips.org To: liqin.linux@gmail.com To: lennox.wu@gmail.com To: ysato@users.sourceforge.jp To: dalias@libc.org To: davem@davemloft.net To: linux-mips@linux-mips.org To: linux-sh@vger.kernel.org To: sparclinux@vger.kernel.org To: geert@linux-m68k.org To: linux-kernel@vger.kernel.org To: linux-arch@vger.kernel.org Cc: Palmer Dabbelt Subject: [PATCH 5/7] sh: Use lib/ashldi3,ashrdi3,lshrdi3}.c Date: Tue, 6 Jun 2017 12:10:21 -0700 Message-Id: <20170606191023.24581-6-palmer@dabbelt.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170606191023.24581-1-palmer@dabbelt.com> References: <20170523220546.16758-1-palmer@dabbelt.com> <20170606191023.24581-1-palmer@dabbelt.com> Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP These files are functionally identical to the shared copies that I recently added. Signed-off-by: Palmer Dabbelt Reviewed-by: Geert Uytterhoeven --- arch/sh/Kconfig | 3 +++ arch/sh/boot/compressed/Makefile | 6 +++--- arch/sh/lib/Makefile | 4 +--- arch/sh/lib/ashldi3.c | 29 ----------------------------- arch/sh/lib/ashrdi3.c | 31 ------------------------------- arch/sh/lib/libgcc.h | 25 ------------------------- arch/sh/lib/lshrdi3.c | 29 ----------------------------- 7 files changed, 7 insertions(+), 120 deletions(-) delete mode 100644 arch/sh/lib/ashldi3.c delete mode 100644 arch/sh/lib/ashrdi3.c delete mode 100644 arch/sh/lib/libgcc.h delete mode 100644 arch/sh/lib/lshrdi3.c diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index ee086958b2b2..49b98f74d7a0 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -48,6 +48,9 @@ config SUPERH select HAVE_ARCH_AUDITSYSCALL select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_NMI + select GENERIC_ASHLDI3 + select GENERIC_ASHRDI3 + select GENERIC_LSHRDI3 help The SuperH is a RISC processor targeted for use in embedded systems and consumer electronics; it was also used in the Sega Dreamcast diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile index c4c47ea9fa94..45a8e1349103 100644 --- a/arch/sh/boot/compressed/Makefile +++ b/arch/sh/boot/compressed/Makefile @@ -38,10 +38,10 @@ LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \ # # Pull in the necessary libgcc bits from the in-kernel implementation. # -lib1funcs-$(CONFIG_SUPERH32) := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S \ - lshrsi3.S +lib1funcs-$(CONFIG_SUPERH32) := ashiftrt.S ashrsi3.S ashlsi3.S lshrsi3.S lib1funcs-obj := \ - $(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y)))) + $(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y)))) \ + $(srctree)/lib/ashldi3.o lib1funcs-dir := $(srctree)/arch/$(SRCARCH)/lib ifeq ($(BITS),64) diff --git a/arch/sh/lib/Makefile b/arch/sh/lib/Makefile index 3baff31e58cf..971d9ac1e068 100644 --- a/arch/sh/lib/Makefile +++ b/arch/sh/lib/Makefile @@ -6,9 +6,7 @@ lib-y = delay.o memmove.o memchr.o \ checksum.o strlen.o div64.o div64-generic.o # Extracted from libgcc -obj-y += movmem.o ashldi3.o ashrdi3.o lshrdi3.o \ - ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o \ - udiv_qrnnd.o +obj-y += movmem.o ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o udiv_qrnnd.o udivsi3-y := udivsi3_i4i-Os.o diff --git a/arch/sh/lib/ashldi3.c b/arch/sh/lib/ashldi3.c deleted file mode 100644 index beb80f316095..000000000000 --- a/arch/sh/lib/ashldi3.c +++ /dev/null @@ -1,29 +0,0 @@ -#include - -#include "libgcc.h" - -long long __ashldi3(long long u, word_type b) -{ - DWunion uu, w; - word_type bm; - - if (b == 0) - return u; - - uu.ll = u; - bm = 32 - b; - - if (bm <= 0) { - w.s.low = 0; - w.s.high = (unsigned int) uu.s.low << -bm; - } else { - const unsigned int carries = (unsigned int) uu.s.low >> bm; - - w.s.low = (unsigned int) uu.s.low << b; - w.s.high = ((unsigned int) uu.s.high << b) | carries; - } - - return w.ll; -} - -EXPORT_SYMBOL(__ashldi3); diff --git a/arch/sh/lib/ashrdi3.c b/arch/sh/lib/ashrdi3.c deleted file mode 100644 index c884a912b660..000000000000 --- a/arch/sh/lib/ashrdi3.c +++ /dev/null @@ -1,31 +0,0 @@ -#include - -#include "libgcc.h" - -long long __ashrdi3(long long u, word_type b) -{ - DWunion uu, w; - word_type bm; - - if (b == 0) - return u; - - uu.ll = u; - bm = 32 - b; - - if (bm <= 0) { - /* w.s.high = 1..1 or 0..0 */ - w.s.high = - uu.s.high >> 31; - w.s.low = uu.s.high >> -bm; - } else { - const unsigned int carries = (unsigned int) uu.s.high << bm; - - w.s.high = uu.s.high >> b; - w.s.low = ((unsigned int) uu.s.low >> b) | carries; - } - - return w.ll; -} - -EXPORT_SYMBOL(__ashrdi3); diff --git a/arch/sh/lib/libgcc.h b/arch/sh/lib/libgcc.h deleted file mode 100644 index 05909d58e2fe..000000000000 --- a/arch/sh/lib/libgcc.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __ASM_LIBGCC_H -#define __ASM_LIBGCC_H - -#include - -typedef int word_type __attribute__ ((mode (__word__))); - -#ifdef __BIG_ENDIAN -struct DWstruct { - int high, low; -}; -#elif defined(__LITTLE_ENDIAN) -struct DWstruct { - int low, high; -}; -#else -#error I feel sick. -#endif - -typedef union { - struct DWstruct s; - long long ll; -} DWunion; - -#endif /* __ASM_LIBGCC_H */ diff --git a/arch/sh/lib/lshrdi3.c b/arch/sh/lib/lshrdi3.c deleted file mode 100644 index dcf8d6810b7c..000000000000 --- a/arch/sh/lib/lshrdi3.c +++ /dev/null @@ -1,29 +0,0 @@ -#include - -#include "libgcc.h" - -long long __lshrdi3(long long u, word_type b) -{ - DWunion uu, w; - word_type bm; - - if (b == 0) - return u; - - uu.ll = u; - bm = 32 - b; - - if (bm <= 0) { - w.s.high = 0; - w.s.low = (unsigned int) uu.s.high >> -bm; - } else { - const unsigned int carries = (unsigned int) uu.s.high << bm; - - w.s.high = (unsigned int) uu.s.high >> b; - w.s.low = ((unsigned int) uu.s.low >> b) | carries; - } - - return w.ll; -} - -EXPORT_SYMBOL(__lshrdi3);