From patchwork Mon Jul 6 13:22:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 50752 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-la0-f69.google.com (mail-la0-f69.google.com [209.85.215.69]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id A993A229FC for ; Mon, 6 Jul 2015 13:22:58 +0000 (UTC) Received: by laer2 with SMTP id r2sf47185916lae.3 for ; Mon, 06 Jul 2015 06:22:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:mailing-list:precedence:list-id :list-unsubscribe:list-subscribe:list-archive:list-post:list-help :sender:delivered-to:message-id:date:from:user-agent:mime-version:to :subject:content-type:content-transfer-encoding:x-original-sender :x-original-authentication-results; bh=AAdY57S8erXJqZ89hpyXYZ7/X7QsygS4LCNg9rF0XCc=; b=KJNS041o3TINeadg+WRwOHxt7kb786MiE2bsdoiB3QKKwi7RycR1Jk6gr2PHJg9l6F qqB6p73uQOZVK9CPekofFBQrtALYxsiHqcg8RnrqOy2S+MX/gqzDHDQyYeyMKZE5s9cg q5cPHRU53LN8AIlFhDSoDHSeCGePMYDyXv4cvBv8cr18n7CjvyXFu6PFnlyJPlSHZgkY jSGLj1iHQstxj0BUDnRR/mpJAcOILjbJ39e3OqrRNC8/TFTNQNUlBK6CJNzZqIaLoDqV n9Im8NvjS5sQfa0tZ0G31SrRJDNh4tBzI5X9sfw9Rve1Dqg408/DnNDVsgNThT2VC4R6 Lb0w== X-Gm-Message-State: ALoCoQlsGBEXcFOvTQE4boNMdw43W6UXTyyZl31mp4fMNC7h1kdB30ELWis35vjEZ2MW9jaIQp0q X-Received: by 10.112.142.67 with SMTP id ru3mr30294248lbb.1.1436188977055; Mon, 06 Jul 2015 06:22:57 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.8.111 with SMTP id q15ls588683laa.28.gmail; Mon, 06 Jul 2015 06:22:56 -0700 (PDT) X-Received: by 10.112.180.201 with SMTP id dq9mr15319074lbc.78.1436188976659; Mon, 06 Jul 2015 06:22:56 -0700 (PDT) Received: from mail-la0-x230.google.com (mail-la0-x230.google.com. [2a00:1450:4010:c03::230]) by mx.google.com with ESMTPS id z9si15278929lba.29.2015.07.06.06.22.56 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jul 2015 06:22:56 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 2a00:1450:4010:c03::230 as permitted sender) client-ip=2a00:1450:4010:c03::230; Received: by lagc2 with SMTP id c2so154522813lag.3 for ; Mon, 06 Jul 2015 06:22:56 -0700 (PDT) X-Received: by 10.112.219.70 with SMTP id pm6mr47924164lbc.41.1436188975713; Mon, 06 Jul 2015 06:22:55 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.108.230 with SMTP id hn6csp1723872lbb; Mon, 6 Jul 2015 06:22:54 -0700 (PDT) X-Received: by 10.70.88.43 with SMTP id bd11mr103884485pdb.7.1436188974674; Mon, 06 Jul 2015 06:22:54 -0700 (PDT) Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id bw10si29059155pdb.206.2015.07.06.06.22.53 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jul 2015 06:22:54 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-60671-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Received: (qmail 11619 invoked by alias); 6 Jul 2015 13:22:44 -0000 Mailing-List: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org Precedence: list List-Id: List-Unsubscribe: , List-Subscribe: List-Archive: List-Post: , List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 11606 invoked by uid 89); 6 Jul 2015 13:22:44 -0000 X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-yk0-f173.google.com X-Received: by 10.170.131.198 with SMTP id x189mr10144414ykb.118.1436188960519; Mon, 06 Jul 2015 06:22:40 -0700 (PDT) Message-ID: <559A811D.6030406@linaro.org> Date: Mon, 06 Jul 2015 10:22:37 -0300 From: Adhemerval Zanella User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: GNU C Library Subject: PATCH] arm: Assembly implementation cleanup X-Original-Sender: adhemerval.zanella@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 2a00:1450:4010:c03::230 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org; dkim=pass header.i=@sourceware.org X-Google-Group-Id: 836684582541 This patch removes arm assembly implementation of mmap and mmap64. The new implementation used is the wordsize-32 generic linux one. Tested on armhf. --- * sysdeps/unix/sysv/linux/arm/mmap.c: Add file. * sysdeps/unix/sysv/linux/arm/mmap.S: Remove file. * sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise. -- diff --git a/sysdeps/unix/sysv/linux/arm/mmap.S b/sysdeps/unix/sysv/linux/arm/mmap.S deleted file mode 100644 index 4fb5bf4..0000000 --- a/sysdeps/unix/sysv/linux/arm/mmap.S +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (C) 1998-2015 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - . */ - -#include - -#define EINVAL 22 - - .text - -ENTRY (__mmap) - /* shuffle args */ - push { r5 } - cfi_adjust_cfa_offset (4) - cfi_rel_offset (r5, 0) - ldr r5, [sp, #8] - push { r4 } - cfi_adjust_cfa_offset (4) - cfi_rel_offset (r4, 0) - cfi_remember_state - ldr r4, [sp, #8] - - /* convert offset to pages */ - movs ip, r5, lsl #20 - bne .Linval - mov r5, r5, lsr #12 - - /* do the syscall */ - DO_CALL (mmap2, 0) - - /* restore registers */ -2: - pop { r4 } - cfi_adjust_cfa_offset (-4) - cfi_restore (r4) - pop { r5 } - cfi_adjust_cfa_offset (-4) - cfi_restore (r5) - - cmn r0, $4096 - it cc - RETINSTR(cc, lr) - b PLTJMP(syscall_error) - - cfi_restore_state -.Linval: - mov r0, #-EINVAL - b 2b -PSEUDO_END (__mmap) - -weak_alias (__mmap, mmap) diff --git a/sysdeps/unix/sysv/linux/arm/mmap.c b/sysdeps/unix/sysv/linux/arm/mmap.c new file mode 100644 index 0000000..2cb4907 --- /dev/null +++ b/sysdeps/unix/sysv/linux/arm/mmap.c @@ -0,0 +1,18 @@ +/* Copyright (C) 2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include diff --git a/sysdeps/unix/sysv/linux/arm/mmap64.S b/sysdeps/unix/sysv/linux/arm/mmap64.S deleted file mode 100644 index d574df0..0000000 --- a/sysdeps/unix/sysv/linux/arm/mmap64.S +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (C) 2000-2015 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - . */ - -#include - - .syntax unified - -#define EINVAL 22 - -#ifdef __ARMEB__ -# define LOW_OFFSET 8 + 4 -/* The initial + 4 is for the stack postdecrement. */ -# define HIGH_OFFSET 4 + 8 + 0 -#else -# define LOW_OFFSET 8 + 0 -# define HIGH_OFFSET 4 + 8 + 4 -#endif - - /* The mmap2 system call takes six arguments, all in registers. */ - .text -ENTRY (__mmap64) - ldr ip, [sp, $LOW_OFFSET] - push { r5 } - cfi_adjust_cfa_offset (4) - cfi_rel_offset (r5, 0) - ldr r5, [sp, $HIGH_OFFSET] - push { r4 } - cfi_adjust_cfa_offset (4) - cfi_rel_offset (r4, 0) - cfi_remember_state - movs r4, ip, lsl $20 @ check that offset is page-aligned - mov ip, ip, lsr $12 - it eq - movseq r4, r5, lsr $12 @ check for overflow - bne .Linval - ldr r4, [sp, $8] @ load fd - orr r5, ip, r5, lsl $20 @ compose page offset - DO_CALL (mmap2, 0) - cmn r0, $4096 - pop {r4, r5} - cfi_adjust_cfa_offset (-8) - cfi_restore (r4) - cfi_restore (r5) - it cc - RETINSTR(cc, lr) - b PLTJMP(syscall_error) - - cfi_restore_state -.Linval: - mov r0, $-EINVAL - pop {r4, r5} - cfi_adjust_cfa_offset (-8) - cfi_restore (r4) - cfi_restore (r5) - b PLTJMP(syscall_error) -PSEUDO_END (__mmap64) - -weak_alias (__mmap64, mmap64)