From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 87737 invoked by alias); 9 Jul 2015 18:58:42 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 87656 invoked by uid 89); 9 Jul 2015 18:58:41 -0000 Authentication-Results: sourceware.org; auth=none 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-f176.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=pJpyyWSSY8CUMHc0iJOjf6hHXbFQtJ5ZGD/XYHMe+ak=; b=Teq6VNWE0WWm0+nH0NbZFH49Pqy1fldzqu0RiT37/Ethi971xmfJn8ra0PVQ4C0xwf cXvJCmf8mIXXSk0MIa5YfhA/W+tdccYOp8VkzX7bxQhw1a3+pbsVLeZaI1jwQ6XwSTya UO4b00f8NODwq5PCz+ST7ROzwIBvmuVNbtTtcktMFJHRrmUZ2aJnF3pGF5RE75DokAst AqgdLwuURIHFgd9nReGliP8ZyT2lscpblkGPwH7KhPcox9FEt46AmZLMul+auWV/1MFb noeOBj/EIR7GkKQGQJJ13QkvqjGWnBUO33xAXc43NUPSuUb9k2f45KegiNimZOLpGgau oZNg== X-Gm-Message-State: ALoCoQlTap6hYB1u70OjufosxQAlsSp+nSWvdbh8QXgqQ1ClOnJXr6s5IGk6F0qHehjBhXZCjaUq X-Received: by 10.13.241.132 with SMTP id a126mr19593891ywf.72.1436468316928; Thu, 09 Jul 2015 11:58:36 -0700 (PDT) Message-ID: <559EC45A.2040408@linaro.org> Date: Thu, 09 Jul 2015 18:58:00 -0000 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: Re: PATCH] arm: Assembly implementation cleanup References: <559A811D.6030406@linaro.org> In-Reply-To: <559A811D.6030406@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2015-07/txt/msg00317.txt.bz2 Ping. On 06-07-2015 10:22, Adhemerval Zanella wrote: > 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) >